/* Options: Date: 2024-04-19 00:26:21 Version: 8.13 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://techstacks.io //GlobalNamespace: //MakePropertiesOptional: True //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //IncludeTypes: //ExcludeTypes: //DefaultImports: */ interface IReturn { } interface IReturnVoid { } interface IHasSessionId { sessionId?: string; } interface IHasBearerToken { bearerToken?: string; } interface IGet { } interface IPost { } interface IPut { } interface IDelete { } // @DataContract interface QueryBase { // @DataMember(Order=1) skip?: number; // @DataMember(Order=2) take?: number; // @DataMember(Order=3) orderBy?: string; // @DataMember(Order=4) orderByDesc?: string; // @DataMember(Order=5) include?: string; // @DataMember(Order=6) fields?: string; // @DataMember(Order=7) meta?: { [index: string]: string; }; } interface QueryDb_1 extends QueryBase { // @DataMember(Order=1) skip?: number; // @DataMember(Order=2) take?: number; // @DataMember(Order=3) orderBy?: string; // @DataMember(Order=4) orderByDesc?: string; // @DataMember(Order=5) include?: string; // @DataMember(Order=6) fields?: string; // @DataMember(Order=7) meta?: { [index: string]: string; }; } type PostType = "Announcement" | "Post" | "Showcase" | "Question" | "Request"; interface Post { id?: number; organizationId?: number; userId?: number; type?: PostType; categoryId?: number; title?: string; slug?: string; url?: string; imageUrl?: string; // @StringLength(2147483647) content?: string; // @StringLength(2147483647) contentHtml?: string; pinCommentId?: number; technologyIds?: number[]; fromDate?: string; toDate?: string; location?: string; metaType?: string; meta?: string; approved?: boolean; upVotes?: number; downVotes?: number; points?: number; views?: number; favorites?: number; subscribers?: number; replyCount?: number; commentsCount?: number; wordCount?: number; reportCount?: number; linksCount?: number; linkedToCount?: number; score?: number; rank?: number; labels?: string[]; refUserIds?: number[]; refLinks?: string[]; muteUserIds?: number[]; lastCommentDate?: string; lastCommentId?: number; lastCommentUserId?: number; deleted?: string; deletedBy?: string; locked?: string; lockedBy?: string; hidden?: string; hiddenBy?: string; status?: string; statusDate?: string; statusBy?: string; archived?: boolean; bumped?: string; created?: string; createdBy?: string; modified?: string; modifiedBy?: string; refId?: number; refSource?: string; refUrn?: string; } type ReportAction = "Dismiss" | "Delete"; type FlagType = "Violation" | "Spam" | "Abusive" | "Confidential" | "OffTopic" | "Other"; type Frequency = "Daily" | "Weekly" | "Monthly" | "Quarterly"; interface QueryDb_2 extends QueryBase { // @DataMember(Order=1) skip?: number; // @DataMember(Order=2) take?: number; // @DataMember(Order=3) orderBy?: string; // @DataMember(Order=4) orderByDesc?: string; // @DataMember(Order=5) include?: string; // @DataMember(Order=6) fields?: string; // @DataMember(Order=7) meta?: { [index: string]: string; }; } type TechnologyTier = "ProgrammingLanguage" | "Client" | "Http" | "Server" | "Data" | "SoftwareInfrastructure" | "OperatingSystem" | "HardwareInfrastructure" | "ThirdPartyServices"; interface TechnologyBase { id?: number; name?: string; vendorName?: string; vendorUrl?: string; productUrl?: string; logoUrl?: string; description?: string; created?: string; createdBy?: string; lastModified?: string; lastModifiedBy?: string; ownerId?: string; slug?: string; logoApproved?: boolean; isLocked?: boolean; tier?: TechnologyTier; lastStatusUpdate?: string; organizationId?: number; commentsPostId?: number; viewCount?: number; favCount?: number; } interface Technology extends TechnologyBase { id?: number; name?: string; vendorName?: string; vendorUrl?: string; productUrl?: string; logoUrl?: string; description?: string; created?: string; createdBy?: string; lastModified?: string; lastModifiedBy?: string; ownerId?: string; slug?: string; logoApproved?: boolean; isLocked?: boolean; tier?: TechnologyTier; lastStatusUpdate?: string; organizationId?: number; commentsPostId?: number; viewCount?: number; favCount?: number; } interface TechnologyView { id?: number; name?: string; vendorName?: string; vendorUrl?: string; productUrl?: string; logoUrl?: string; description?: string; created?: string; createdBy?: string; lastModified?: string; lastModifiedBy?: string; ownerId?: string; slug?: string; logoApproved?: boolean; isLocked?: boolean; tier?: TechnologyTier; lastStatusUpdate?: string; organizationId?: number; commentsPostId?: number; viewCount?: number; favCount?: number; } interface IRegisterStats { } interface TechnologyStackBase { id?: number; name?: string; vendorName?: string; description?: string; appUrl?: string; screenshotUrl?: string; created?: string; createdBy?: string; lastModified?: string; lastModifiedBy?: string; isLocked?: boolean; ownerId?: string; slug?: string; // @StringLength(2147483647) details?: string; // @StringLength(2147483647) detailsHtml?: string; lastStatusUpdate?: string; organizationId?: number; commentsPostId?: number; viewCount?: number; favCount?: number; } interface TechnologyStack extends TechnologyStackBase { id?: number; name?: string; vendorName?: string; description?: string; appUrl?: string; screenshotUrl?: string; created?: string; createdBy?: string; lastModified?: string; lastModifiedBy?: string; isLocked?: boolean; ownerId?: string; slug?: string; // @StringLength(2147483647) details?: string; // @StringLength(2147483647) detailsHtml?: string; lastStatusUpdate?: string; organizationId?: number; commentsPostId?: number; viewCount?: number; favCount?: number; } interface TechnologyStackView { id?: number; name?: string; vendorName?: string; description?: string; appUrl?: string; screenshotUrl?: string; created?: string; createdBy?: string; lastModified?: string; lastModifiedBy?: string; isLocked?: boolean; ownerId?: string; slug?: string; details?: string; detailsHtml?: string; lastStatusUpdate?: string; organizationId?: number; commentsPostId?: number; viewCount?: number; favCount?: number; } interface PostComment { id?: number; postId?: number; userId?: number; replyId?: number; // @StringLength(2147483647) content?: string; // @StringLength(2147483647) contentHtml?: string; score?: number; rank?: number; upVotes?: number; downVotes?: number; favorites?: number; wordCount?: number; reportCount?: number; deleted?: string; hidden?: string; modified?: string; created?: string; createdBy?: string; refId?: number; refSource?: string; refUrn?: string; } // @DataContract interface ResponseError { // @DataMember(Order=1) errorCode?: string; // @DataMember(Order=2) fieldName?: string; // @DataMember(Order=3) message?: string; // @DataMember(Order=4) meta?: { [index: string]: string; }; } // @DataContract interface ResponseStatus { // @DataMember(Order=1) errorCode?: string; // @DataMember(Order=2) message?: string; // @DataMember(Order=3) stackTrace?: string; // @DataMember(Order=4) errors?: ResponseError[]; // @DataMember(Order=5) meta?: { [index: string]: string; }; } interface Organization { id?: number; name?: string; slug?: string; description?: string; descriptionHtml?: string; color?: string; textColor?: string; linkColor?: string; backgroundColor?: string; backgroundUrl?: string; logoUrl?: string; heroUrl?: string; lang?: string; defaultPostType?: string; defaultSubscriptionPostTypes?: string[]; postTypes?: string[]; moderatorPostTypes?: string[]; deletePostsWithReportCount?: number; disableInvites?: boolean; upVotes?: number; downVotes?: number; views?: number; favorites?: number; subscribers?: number; commentsCount?: number; postsCount?: number; score?: number; rank?: number; refId?: number; refSource?: string; hidden?: string; hiddenBy?: string; locked?: string; lockedBy?: string; deleted?: string; deletedBy?: string; created?: string; createdBy?: string; modified?: string; modifiedBy?: string; } interface OrganizationLabel { slug?: string; organizationId?: number; description?: string; color?: string; } interface Category { id?: number; organizationId?: number; name?: string; slug?: string; description?: string; color?: string; technologyIds?: number[]; commentsCount?: number; postsCount?: number; score?: number; rank?: number; } interface OrganizationMember { id?: number; organizationId?: number; userId?: number; userName?: string; isOwner?: boolean; isModerator?: boolean; denyAll?: boolean; denyPosts?: boolean; denyComments?: boolean; notes?: string; } interface OrganizationMemberInvite { id?: number; organizationId?: number; userId?: number; userName?: string; dismissed?: string; } interface PostReportInfo { id?: number; organizationId?: number; postId?: number; userId?: number; userName?: string; flagType?: FlagType; reportNotes?: string; created?: string; acknowledged?: string; acknowledgedBy?: string; dismissed?: string; dismissedBy?: string; title?: string; reportCount?: number; createdBy?: string; } interface PostCommentReportInfo { id?: number; organizationId?: number; postId?: number; postCommentId?: number; userId?: number; userName?: string; flagType?: FlagType; reportNotes?: string; created?: string; acknowledged?: string; acknowledgedBy?: string; dismissed?: string; dismissedBy?: string; contentHtml?: string; reportCount?: number; createdBy?: string; } interface UserRef { id?: number; userName?: string; email?: string; refId?: number; refSource?: string; refUrn?: string; } interface OrganizationSubscription { id?: number; organizationId?: number; userId?: number; userName?: string; postTypes?: string[]; frequencyDays?: number; lastSyncedId?: number; lastSynced?: string; created?: string; } interface UserActivity { id?: number; userName?: string; karma?: number; technologyCount?: number; techStacksCount?: number; postsCount?: number; postUpVotes?: number; postDownVotes?: number; commentUpVotes?: number; commentDownVotes?: number; postCommentsCount?: number; pinnedCommentCount?: number; postReportCount?: number; postCommentReportCount?: number; created?: string; modified?: string; } interface TechnologyHistory extends TechnologyBase { technologyId?: number; operation?: string; id?: number; name?: string; vendorName?: string; vendorUrl?: string; productUrl?: string; logoUrl?: string; description?: string; created?: string; createdBy?: string; lastModified?: string; lastModifiedBy?: string; ownerId?: string; slug?: string; logoApproved?: boolean; isLocked?: boolean; tier?: TechnologyTier; lastStatusUpdate?: string; organizationId?: number; commentsPostId?: number; viewCount?: number; favCount?: number; } interface TechnologyStackHistory extends TechnologyStackBase { technologyStackId?: number; operation?: string; technologyIds?: number[]; id?: number; name?: string; vendorName?: string; description?: string; appUrl?: string; screenshotUrl?: string; created?: string; createdBy?: string; lastModified?: string; lastModifiedBy?: string; isLocked?: boolean; ownerId?: string; slug?: string; // @StringLength(2147483647) details?: string; // @StringLength(2147483647) detailsHtml?: string; lastStatusUpdate?: string; organizationId?: number; commentsPostId?: number; viewCount?: number; favCount?: number; } interface UserInfo { userName?: string; avatarUrl?: string; stacksCount?: number; } interface TechnologyInfo { tier?: TechnologyTier; slug?: string; name?: string; logoUrl?: string; stacksCount?: number; } interface TechnologyInStack extends TechnologyBase { technologyId?: number; technologyStackId?: number; justification?: string; id?: number; name?: string; vendorName?: string; vendorUrl?: string; productUrl?: string; logoUrl?: string; description?: string; created?: string; createdBy?: string; lastModified?: string; lastModifiedBy?: string; ownerId?: string; slug?: string; logoApproved?: boolean; isLocked?: boolean; tier?: TechnologyTier; lastStatusUpdate?: string; organizationId?: number; commentsPostId?: number; viewCount?: number; favCount?: number; } interface TechStackDetails extends TechnologyStackBase { technologyChoices?: TechnologyInStack[]; id?: number; name?: string; vendorName?: string; description?: string; appUrl?: string; screenshotUrl?: string; created?: string; createdBy?: string; lastModified?: string; lastModifiedBy?: string; isLocked?: boolean; ownerId?: string; slug?: string; // @StringLength(2147483647) details?: string; // @StringLength(2147483647) detailsHtml?: string; lastStatusUpdate?: string; organizationId?: number; commentsPostId?: number; viewCount?: number; favCount?: number; } interface LabelInfo { slug?: string; color?: string; } interface CategoryInfo { id?: number; name?: string; slug?: string; } interface OrganizationInfo { id?: number; name?: string; slug?: string; refId?: number; refSource?: string; upVotes?: number; downVotes?: number; membersCount?: number; rank?: number; disableInvites?: boolean; lang?: string; postTypes?: string[]; moderatorPostTypes?: string[]; locked?: string; labels?: LabelInfo[]; categories?: CategoryInfo[]; } // @DataContract interface Option { // @DataMember(Name="name") name?: string; // @DataMember(Name="title") title?: string; // @DataMember(Name="value") value?: TechnologyTier; } interface HelloResponse { result?: string; responseStatus?: ResponseStatus; } interface GetOrganizationResponse { cache?: number; id?: number; slug?: string; organization?: Organization; labels?: OrganizationLabel[]; categories?: Category[]; owners?: OrganizationMember[]; moderators?: OrganizationMember[]; membersCount?: number; responseStatus?: ResponseStatus; } interface GetOrganizationMembersResponse { organizationId?: number; results?: OrganizationMember[]; responseStatus?: ResponseStatus; } interface GetOrganizationAdminResponse { labels?: OrganizationLabel[]; members?: OrganizationMember[]; memberInvites?: OrganizationMemberInvite[]; reportedPosts?: PostReportInfo[]; reportedPostComments?: PostCommentReportInfo[]; responseStatus?: ResponseStatus; } interface CreateOrganizationForTechnologyResponse { organizationId?: number; organizationSlug?: string; commentsPostId?: number; commentsPostSlug?: string; responseStatus?: ResponseStatus; } interface CreateOrganizationResponse { id?: number; slug?: string; responseStatus?: ResponseStatus; } interface UpdateOrganizationResponse { responseStatus?: ResponseStatus; } interface OrganizationLabelResponse { responseStatus?: ResponseStatus; } interface AddOrganizationCategoryResponse { id?: number; slug?: string; responseStatus?: ResponseStatus; } interface UpdateOrganizationCategoryResponse { responseStatus?: ResponseStatus; } interface AddOrganizationMemberResponse { responseStatus?: ResponseStatus; } interface UpdateOrganizationMemberResponse { responseStatus?: ResponseStatus; } interface SetOrganizationMembersResponse { userIdsAdded?: number[]; userIdsRemoved?: number[]; responseStatus?: ResponseStatus; } interface GetOrganizationMemberInvitesResponse { results?: OrganizationMemberInvite[]; responseStatus?: ResponseStatus; } interface RequestOrganizationMemberInviteResponse { organizationId?: number; responseStatus?: ResponseStatus; } interface UpdateOrganizationMemberInviteResponse { responseStatus?: ResponseStatus; } // @DataContract interface QueryResponse { // @DataMember(Order=1) offset?: number; // @DataMember(Order=2) total?: number; // @DataMember(Order=3) results?: Post[]; // @DataMember(Order=4) meta?: { [index: string]: string; }; // @DataMember(Order=5) responseStatus?: ResponseStatus; } interface GetPostResponse { cache?: number; post?: Post; comments?: PostComment[]; responseStatus?: ResponseStatus; } interface CreatePostResponse { id?: number; slug?: string; responseStatus?: ResponseStatus; } interface UpdatePostResponse { responseStatus?: ResponseStatus; } interface DeletePostResponse { id?: number; responseStatus?: ResponseStatus; } interface CreatePostCommentResponse { id?: number; postId?: number; responseStatus?: ResponseStatus; } interface UpdatePostCommentResponse { responseStatus?: ResponseStatus; } interface DeletePostCommentResponse { id?: number; postId?: number; responseStatus?: ResponseStatus; } interface GetUserPostCommentVotesResponse { postId?: number; upVotedCommentIds?: number[]; downVotedCommentIds?: number[]; } interface PinPostCommentResponse { responseStatus?: ResponseStatus; } interface GetUsersByEmailsResponse { results?: UserRef[]; responseStatus?: ResponseStatus; } interface GetUserPostActivityResponse { upVotedPostIds?: number[]; downVotedPostIds?: number[]; favoritePostIds?: number[]; responseStatus?: ResponseStatus; } interface GetUserOrganizationsResponse { members?: OrganizationMember[]; memberInvites?: OrganizationMemberInvite[]; subscriptions?: OrganizationSubscription[]; } interface UserPostVoteResponse { responseStatus?: ResponseStatus; } interface UserPostFavoriteResponse { responseStatus?: ResponseStatus; } interface UserPostReportResponse { responseStatus?: ResponseStatus; } interface UserPostCommentVoteResponse { responseStatus?: ResponseStatus; } interface UserPostCommentReportResponse { responseStatus?: ResponseStatus; } interface SessionInfoResponse { created?: string; id?: string; referrerUrl?: string; userAuthId?: string; userAuthName?: string; userName?: string; displayName?: string; firstName?: string; lastName?: string; email?: string; createdAt?: string; lastModified?: string; roles?: string[]; permissions?: string[]; isAuthenticated?: boolean; authProvider?: string; profileUrl?: string; githubProfileUrl?: string; twitterProfileUrl?: string; accessToken?: string; avatarUrl?: string; techStacks?: TechnologyStack[]; favoriteTechStacks?: TechnologyStack[]; favoriteTechnologies?: Technology[]; userActivity?: UserActivity; members?: OrganizationMember[]; memberInvites?: OrganizationMemberInvite[]; subscriptions?: OrganizationSubscription[]; responseStatus?: ResponseStatus; } interface GetTechnologyPreviousVersionsResponse { results?: TechnologyHistory[]; } interface GetAllTechnologiesResponse { results?: Technology[]; total?: number; } interface GetTechnologyResponse { created?: string; technology?: Technology; technologyStacks?: TechnologyStack[]; responseStatus?: ResponseStatus; } interface GetTechnologyFavoriteDetailsResponse { users?: string[]; favoriteCount?: number; } interface CreateTechnologyResponse { result?: Technology; responseStatus?: ResponseStatus; } interface UpdateTechnologyResponse { result?: Technology; responseStatus?: ResponseStatus; } interface DeleteTechnologyResponse { result?: Technology; responseStatus?: ResponseStatus; } interface GetTechnologyStackPreviousVersionsResponse { results?: TechnologyStackHistory[]; } interface GetPageStatsResponse { type?: string; slug?: string; viewCount?: number; favCount?: number; } interface OverviewResponse { created?: string; topUsers?: UserInfo[]; topTechnologies?: TechnologyInfo[]; latestTechStacks?: TechStackDetails[]; popularTechStacks?: TechnologyStack[]; allOrganizations?: OrganizationInfo[]; topTechnologiesByTier?: { [index: string]: TechnologyInfo[]; }; responseStatus?: ResponseStatus; } interface AppOverviewResponse { created?: string; allTiers?: Option[]; topTechnologies?: TechnologyInfo[]; responseStatus?: ResponseStatus; } interface GetAllTechnologyStacksResponse { results?: TechnologyStack[]; total?: number; } interface GetTechnologyStackResponse { created?: string; result?: TechStackDetails; responseStatus?: ResponseStatus; } interface GetTechnologyStackFavoriteDetailsResponse { users?: string[]; favoriteCount?: number; } interface GetConfigResponse { allTiers?: Option[]; allPostTypes?: Option[]; allFlagTypes?: Option[]; } interface CreateTechnologyStackResponse { result?: TechStackDetails; responseStatus?: ResponseStatus; } interface UpdateTechnologyStackResponse { result?: TechStackDetails; responseStatus?: ResponseStatus; } interface DeleteTechnologyStackResponse { result?: TechStackDetails; responseStatus?: ResponseStatus; } interface GetFavoriteTechStackResponse { results?: TechnologyStack[]; } interface FavoriteTechStackResponse { result?: TechnologyStack; } interface GetFavoriteTechnologiesResponse { results?: Technology[]; } interface FavoriteTechnologyResponse { result?: Technology; } interface GetUserFeedResponse { results?: TechStackDetails[]; } interface GetUsersKarmaResponse { results?: { [index: number]: number; }; responseStatus?: ResponseStatus; } interface GetUserInfoResponse { id?: number; userName?: string; created?: string; avatarUrl?: string; techStacks?: TechnologyStack[]; favoriteTechStacks?: TechnologyStack[]; favoriteTechnologies?: Technology[]; userActivity?: UserActivity; responseStatus?: ResponseStatus; } interface LogoUrlApprovalResponse { result?: Technology; } interface LockStackResponse { } interface EmailTestResponse { responseStatus?: ResponseStatus; } // @DataContract interface AuthenticateResponse extends IHasSessionId, IHasBearerToken { // @DataMember(Order=1) userId?: string; // @DataMember(Order=2) sessionId?: string; // @DataMember(Order=3) userName?: string; // @DataMember(Order=4) displayName?: string; // @DataMember(Order=5) referrerUrl?: string; // @DataMember(Order=6) bearerToken?: string; // @DataMember(Order=7) refreshToken?: string; // @DataMember(Order=8) refreshTokenExpiry?: string; // @DataMember(Order=9) profileUrl?: string; // @DataMember(Order=10) roles?: string[]; // @DataMember(Order=11) permissions?: string[]; // @DataMember(Order=12) responseStatus?: ResponseStatus; // @DataMember(Order=13) meta?: { [index: string]: string; }; } // @Route("/ping") interface Ping extends IGet { } // @Route("/hello/{Name}") interface Hello extends IReturn, IGet { name?: string; } // @Route("/orgs/{Id}", "GET") interface GetOrganization extends IReturn, IGet { id?: number; } // @Route("/organizations/{Slug}", "GET") interface GetOrganizationBySlug extends IReturn, IGet { slug?: string; } // @Route("/orgs/{Id}/members", "GET") interface GetOrganizationMembers extends IReturn, IGet { id?: number; } // @Route("/orgs/{Id}/admin", "GET") interface GetOrganizationAdmin extends IReturn, IGet { id?: number; } // @Route("/orgs/posts/new", "POST") interface CreateOrganizationForTechnology extends IReturn, IPost { technologyId?: number; techStackId?: number; } // @Route("/orgs", "POST") interface CreateOrganization extends IReturn, IPost { name?: string; slug?: string; description?: string; refId?: number; refSource?: string; refUrn?: string; } // @Route("/orgs/{Id}", "PUT") interface UpdateOrganization extends IReturn, IPut { id?: number; slug?: string; name?: string; description?: string; color?: string; textColor?: string; linkColor?: string; backgroundColor?: string; backgroundUrl?: string; logoUrl?: string; heroUrl?: string; lang?: string; deletePostsWithReportCount?: number; disableInvites?: boolean; defaultPostType?: string; defaultSubscriptionPostTypes?: string[]; postTypes?: string[]; moderatorPostTypes?: string[]; technologyIds?: number[]; } // @Route("/orgs/{Id}", "DELETE") interface DeleteOrganization extends IReturnVoid, IDelete { id?: number; } // @Route("/orgs/{Id}/lock", "PUT") interface LockOrganization extends IReturnVoid, IPut { id?: number; lock?: boolean; reason?: string; } // @Route("/orgs/{OrganizationId}/labels", "POST") interface AddOrganizationLabel extends IReturn, IPost { organizationId?: number; slug?: string; description?: string; color?: string; } // @Route("/orgs/{OrganizationId}/members/{Slug}", "PUT") interface UpdateOrganizationLabel extends IReturn, IPut { organizationId?: number; slug?: string; description?: string; color?: string; } // @Route("/orgs/{OrganizationId}/labels/{Slug}", "DELETE") interface RemoveOrganizationLabel extends IReturnVoid, IDelete { organizationId?: number; slug?: string; } // @Route("/orgs/{OrganizationId}/categories", "POST") interface AddOrganizationCategory extends IReturn, IPost { organizationId?: number; slug?: string; name?: string; description?: string; technologyIds?: number[]; } // @Route("/orgs/{OrganizationId}/categories/{Id}", "PUT") interface UpdateOrganizationCategory extends IReturn, IPut { organizationId?: number; id?: number; name?: string; slug?: string; description?: string; technologyIds?: number[]; } // @Route("/orgs/{OrganizationId}/categories/{Id}", "DELETE") interface DeleteOrganizationCategory extends IReturnVoid, IDelete { organizationId?: number; id?: number; } // @Route("/orgs/{OrganizationId}/members", "POST") interface AddOrganizationMember extends IReturn, IPost { organizationId?: number; userName?: string; isOwner?: boolean; isModerator?: boolean; denyPosts?: boolean; denyComments?: boolean; denyAll?: boolean; notes?: string; } // @Route("/orgs/{OrganizationId}/members/{Id}", "PUT") interface UpdateOrganizationMember extends IReturn, IPut { organizationId?: number; userId?: number; isOwner?: boolean; isModerator?: boolean; denyPosts?: boolean; denyComments?: boolean; denyAll?: boolean; notes?: string; } // @Route("/orgs/{OrganizationId}/members/{UserId}", "DELETE") interface RemoveOrganizationMember extends IReturnVoid, IDelete { organizationId?: number; userId?: number; } // @Route("/orgs/{OrganizationId}/members/set", "POST") interface SetOrganizationMembers extends IReturn, IPost { organizationId?: number; githubUserNames?: string[]; twitterUserNames?: string[]; emails?: string[]; removeUnspecifiedMembers?: boolean; isOwner?: boolean; isModerator?: boolean; denyPosts?: boolean; denyComments?: boolean; denyAll?: boolean; } // @Route("/orgs/{OrganizationId}/invites", "GET") interface GetOrganizationMemberInvites extends IReturn, IGet { organizationId?: number; } // @Route("/orgs/{OrganizationId}/invites", "POST") interface RequestOrganizationMemberInvite extends IReturn, IPost { organizationId?: number; } // @Route("/orgs/{OrganizationId}/invites/{UserId}", "PUT") interface UpdateOrganizationMemberInvite extends IReturn, IPut { organizationId?: number; userName?: string; approve?: boolean; dismiss?: boolean; } // @Route("/posts", "GET") interface QueryPosts extends QueryDb_1, IReturn> { ids?: number[]; organizationId?: number; organizationIds?: number[]; types?: string[]; anyTechnologyIds?: number[]; is?: string[]; // @DataMember(Order=1) skip?: number; // @DataMember(Order=2) take?: number; // @DataMember(Order=3) orderBy?: string; // @DataMember(Order=4) orderByDesc?: string; // @DataMember(Order=5) include?: string; // @DataMember(Order=6) fields?: string; // @DataMember(Order=7) meta?: { [index: string]: string; }; } // @Route("/posts/{Id}", "GET") interface GetPost extends IReturn, IGet { id?: number; include?: string; } // @Route("/posts", "POST") interface CreatePost extends IReturn, IPost { organizationId?: number; type?: PostType; categoryId?: number; title?: string; url?: string; imageUrl?: string; content?: string; lock?: boolean; technologyIds?: number[]; labels?: string[]; fromDate?: string; toDate?: string; metaType?: string; meta?: string; refId?: number; refSource?: string; refUrn?: string; } // @Route("/posts/{Id}", "PUT") interface UpdatePost extends IReturn, IPut { id?: number; organizationId?: number; type?: PostType; categoryId?: number; title?: string; url?: string; imageUrl?: string; content?: string; lock?: boolean; technologyIds?: number[]; labels?: string[]; fromDate?: string; toDate?: string; metaType?: string; meta?: string; } // @Route("/posts/{Id}", "DELETE") interface DeletePost extends IReturn, IDelete { id?: number; } // @Route("/posts/{Id}/lock", "PUT") interface LockPost extends IReturnVoid, IPut { id?: number; lock?: boolean; reason?: string; } // @Route("/posts/{Id}/hide", "PUT") interface HidePost extends IReturnVoid, IPut { id?: number; hide?: boolean; reason?: string; } // @Route("/posts/{Id}/status/{Status}", "PUT") interface ChangeStatusPost extends IReturnVoid, IPut { id?: number; status?: string; reason?: string; } // @Route("/posts/{PostId}/report/{Id}", "POST") interface ActionPostReport extends IReturnVoid, IPost { postId?: number; id?: number; reportAction?: ReportAction; } // @Route("/posts/{PostId}/comments", "POST") interface CreatePostComment extends IReturn, IPost { postId?: number; replyId?: number; content?: string; } // @Route("/posts/{PostId}/comments/{Id}", "PUT") interface UpdatePostComment extends IReturn, IPut { id?: number; postId?: number; content?: string; } // @Route("/posts/{PostId}/comments/{Id}", "DELETE") interface DeletePostComment extends IReturn, IDelete { id?: number; postId?: number; } // @Route("/posts/{PostId}/comments/{PostCommentId}/report/{Id}", "POST") interface ActionPostCommentReport extends IReturnVoid, IPost { id?: number; postCommentId?: number; postId?: number; reportAction?: ReportAction; } // @Route("/user/comments/votes") interface GetUserPostCommentVotes extends IReturn, IGet { postId?: number; } // @Route("/posts/{PostId}/comments/{Id}/pin", "PUT") interface PinPostComment extends IReturn, IPut { id?: number; postId?: number; pin?: boolean; } // @Route("/users/by-email") interface GetUsersByEmails extends IReturn, IGet { emails?: string[]; } // @Route("/user/posts/activity") interface GetUserPostActivity extends IReturn, IGet { } // @Route("/user/organizations") interface GetUserOrganizations extends IReturn, IGet { } // @Route("/posts/{Id}/vote", "PUT") interface UserPostVote extends IReturn, IPut { id?: number; weight?: number; } // @Route("/posts/{Id}/favorite", "PUT") interface UserPostFavorite extends IReturn, IPut { id?: number; } // @Route("/posts/{Id}/report", "PUT") interface UserPostReport extends IReturn, IPut { id?: number; flagType?: FlagType; reportNotes?: string; } // @Route("/posts/{PostId}/comments/{Id}", "GET") interface UserPostCommentVote extends IReturn, IGet { id?: number; postId?: number; weight?: number; } // @Route("/posts/{PostId}/comments/{Id}/report", "PUT") interface UserPostCommentReport extends IReturn, IPut { id?: number; postId?: number; flagType?: FlagType; reportNotes?: string; } // @Route("/prerender/{**Path}", "PUT") interface StorePreRender extends IReturnVoid, IPut { path?: string; requestStream?: string; } // @Route("/prerender/{**Path}", "GET") interface GetPreRender extends IReturn, IGet { path?: string; } // @Route("/my-session") // @ValidateRequest(Validator="IsAuthenticated") interface SessionInfo extends IReturn, IGet { } // @Route("/orgs/{OrganizationId}/subscribe", "PUT") interface SubscribeToOrganization extends IReturnVoid, IPut { organizationId?: number; postTypes?: PostType[]; frequency?: Frequency; } // @Route("/posts/{PostId}/subscribe", "PUT") interface SubscribeToPost extends IReturnVoid, IPut { postId?: number; } // @Route("/orgs/{OrganizationId}/subscribe", "DELETE") interface DeleteOrganizationSubscription extends IReturnVoid, IDelete { organizationId?: number; } // @Route("/posts/{PostId}/subscribe", "DELETE") interface DeletePostSubscription extends IReturnVoid, IDelete { postId?: number; } // @Route("/technology/{Slug}/previous-versions", "GET") interface GetTechnologyPreviousVersions extends IReturn, IGet { slug?: string; } // @Route("/technology", "GET") interface GetAllTechnologies extends IReturn, IGet { } // @Route("/technology/search") // @AutoQueryViewer(DefaultSearchField="Tier", DefaultSearchText="Data", DefaultSearchType="=", Description="Explore different Technologies", IconUrl="octicon:database", Title="Find Technologies") interface FindTechnologies extends QueryDb_2, IReturn> { ids?: number[]; name?: string; vendorName?: string; nameContains?: string; vendorNameContains?: string; descriptionContains?: string; // @DataMember(Order=1) skip?: number; // @DataMember(Order=2) take?: number; // @DataMember(Order=3) orderBy?: string; // @DataMember(Order=4) orderByDesc?: string; // @DataMember(Order=5) include?: string; // @DataMember(Order=6) fields?: string; // @DataMember(Order=7) meta?: { [index: string]: string; }; } // @Route("/technology/query") interface QueryTechnology extends QueryDb_2, IReturn> { ids?: number[]; name?: string; vendorName?: string; nameContains?: string; vendorNameContains?: string; descriptionContains?: string; // @DataMember(Order=1) skip?: number; // @DataMember(Order=2) take?: number; // @DataMember(Order=3) orderBy?: string; // @DataMember(Order=4) orderByDesc?: string; // @DataMember(Order=5) include?: string; // @DataMember(Order=6) fields?: string; // @DataMember(Order=7) meta?: { [index: string]: string; }; } // @Route("/technology/{Slug}") interface GetTechnology extends IReturn, IRegisterStats, IGet { slug?: string; } // @Route("/technology/{Slug}/favorites") interface GetTechnologyFavoriteDetails extends IReturn, IGet { slug?: string; } // @Route("/technology", "POST") interface CreateTechnology extends IReturn, IPost { name?: string; slug?: string; vendorName?: string; vendorUrl?: string; productUrl?: string; logoUrl?: string; description?: string; isLocked?: boolean; tier?: TechnologyTier; } // @Route("/technology/{Id}", "PUT") interface UpdateTechnology extends IReturn, IPut { id?: number; name?: string; vendorName?: string; vendorUrl?: string; productUrl?: string; logoUrl?: string; description?: string; isLocked?: boolean; tier?: TechnologyTier; } // @Route("/technology/{Id}", "DELETE") interface DeleteTechnology extends IReturn, IDelete { id?: number; } // @Route("/techstacks/{Slug}/previous-versions", "GET") interface GetTechnologyStackPreviousVersions extends IReturn, IGet { slug?: string; } // @Route("/pagestats/{Type}/{Slug}") interface GetPageStats extends IReturn, IGet { type?: string; slug?: string; id?: number; } // @Route("/techstacks/search") // @AutoQueryViewer(DefaultSearchField="Description", DefaultSearchText="ServiceStack", DefaultSearchType="Contains", Description="Explore different Technology Stacks", IconUrl="material-icons:cloud", Title="Find Technology Stacks") interface FindTechStacks extends QueryDb_2, IReturn> { ids?: number[]; name?: string; vendorName?: string; nameContains?: string; vendorNameContains?: string; descriptionContains?: string; // @DataMember(Order=1) skip?: number; // @DataMember(Order=2) take?: number; // @DataMember(Order=3) orderBy?: string; // @DataMember(Order=4) orderByDesc?: string; // @DataMember(Order=5) include?: string; // @DataMember(Order=6) fields?: string; // @DataMember(Order=7) meta?: { [index: string]: string; }; } // @Route("/techstacks/query") interface QueryTechStacks extends QueryDb_2, IReturn> { ids?: number[]; name?: string; vendorName?: string; nameContains?: string; vendorNameContains?: string; descriptionContains?: string; // @DataMember(Order=1) skip?: number; // @DataMember(Order=2) take?: number; // @DataMember(Order=3) orderBy?: string; // @DataMember(Order=4) orderByDesc?: string; // @DataMember(Order=5) include?: string; // @DataMember(Order=6) fields?: string; // @DataMember(Order=7) meta?: { [index: string]: string; }; } // @Route("/overview") interface Overview extends IReturn, IGet { reload?: boolean; } // @Route("/app-overview") interface AppOverview extends IReturn, IGet { reload?: boolean; } // @Route("/techstacks", "GET") interface GetAllTechnologyStacks extends IReturn, IGet { } // @Route("/techstacks/{Slug}", "GET") interface GetTechnologyStack extends IReturn, IRegisterStats, IGet { slug?: string; } // @Route("/techstacks/{Slug}/favorites") interface GetTechnologyStackFavoriteDetails extends IReturn, IGet { slug?: string; } // @Route("/config") interface GetConfig extends IReturn, IGet { } // @Route("/techstacks", "POST") interface CreateTechnologyStack extends IReturn, IPost { name?: string; slug?: string; vendorName?: string; appUrl?: string; screenshotUrl?: string; description?: string; details?: string; isLocked?: boolean; technologyIds?: number[]; } // @Route("/techstacks/{Id}", "PUT") interface UpdateTechnologyStack extends IReturn, IPut { id?: number; name?: string; vendorName?: string; appUrl?: string; screenshotUrl?: string; description?: string; details?: string; isLocked?: boolean; technologyIds?: number[]; } // @Route("/techstacks/{Id}", "DELETE") interface DeleteTechnologyStack extends IReturn, IDelete { id?: number; } // @Route("/favorites/techtacks", "GET") interface GetFavoriteTechStack extends IReturn, IGet { technologyStackId?: number; } // @Route("/favorites/techtacks/{TechnologyStackId}", "PUT") interface AddFavoriteTechStack extends IReturn, IPut { technologyStackId?: number; } // @Route("/favorites/techtacks/{TechnologyStackId}", "DELETE") interface RemoveFavoriteTechStack extends IReturn, IDelete { technologyStackId?: number; } // @Route("/favorites/technology", "GET") interface GetFavoriteTechnologies extends IReturn, IGet { technologyId?: number; } // @Route("/favorites/technology/{TechnologyId}", "PUT") interface AddFavoriteTechnology extends IReturn, IPut { technologyId?: number; } // @Route("/favorites/technology/{TechnologyId}", "DELETE") interface RemoveFavoriteTechnology extends IReturn, IDelete { technologyId?: number; } // @Route("/my-feed") // @ValidateRequest(Validator="IsAuthenticated") interface GetUserFeed extends IReturn, IGet { } // @Route("/users/karma", "GET") interface GetUsersKarma extends IReturn, IGet { userIds?: number[]; } // @Route("/userinfo/{Id}") interface GetUserInfo extends IReturn, IGet { id?: number; userName?: string; } // @Route("/users/{UserId}/avatar", "GET") interface UserAvatar extends IGet { userId?: number; } // @Route("/mq/start") interface MqStart extends IReturn { } // @Route("/mq/stop") interface MqStop extends IReturn { } // @Route("/mq/stats") interface MqStats extends IReturn { } // @Route("/mq/status") interface MqStatus extends IReturn { } // @Route("/admin/technology/{TechnologyId}/logo") interface LogoUrlApproval extends IReturn, IPut { technologyId?: number; approved?: boolean; } /** @description Limit updates to TechStack to Owner or Admin users */ // @Route("/admin/techstacks/{TechnologyStackId}/lock") interface LockTechStack extends IReturn, IPut { // @Validate(Validator="GreaterThan(0)") technologyStackId?: number; isLocked?: boolean; } /** @description Limit updates to Technology to Owner or Admin users */ // @Route("/admin/technology/{TechnologyId}/lock") // @Api(Description="Limit updates to Technology to Owner or Admin users") interface LockTech extends IReturn, IPut { // @Validate(Validator="GreaterThan(0)") technologyId?: number; isLocked?: boolean; } interface DummyTypes { post?: Post[]; } // @Route("/email/post/{PostId}") // @ValidateRequest(Validator="IsAdmin") interface EmailTest extends IReturn { postId?: number; } /** @description Sign In */ // @Route("/auth", "GET,POST") // @Route("/auth/{provider}", "POST") // @Api(Description="Sign In") // @DataContract interface Authenticate extends IReturn, IPost { /** @description AuthProvider, e.g. credentials */ // @DataMember(Order=1) provider?: string; // @DataMember(Order=2) userName?: string; // @DataMember(Order=3) password?: string; // @DataMember(Order=4) rememberMe?: boolean; // @DataMember(Order=5) accessToken?: string; // @DataMember(Order=6) accessTokenSecret?: string; // @DataMember(Order=7) returnUrl?: string; // @DataMember(Order=8) errorView?: string; // @DataMember(Order=9) meta?: { [index: string]: string; }; } // @Route("/posts/comment", "GET") interface QueryPostComments extends QueryDb_1, IReturn> { id?: number; userId?: number; postId?: number; contentContains?: string; upVotesAbove?: number; upVotesBelow?: number; downVotesAbove?: number; downVotes?: number; favoritesAbove?: number; favoritesBelow?: number; wordCountAbove?: number; wordCountBelow?: number; reportCountAbove?: number; reportCountBelow?: number; // @DataMember(Order=1) skip?: number; // @DataMember(Order=2) take?: number; // @DataMember(Order=3) orderBy?: string; // @DataMember(Order=4) orderByDesc?: string; // @DataMember(Order=5) include?: string; // @DataMember(Order=6) fields?: string; // @DataMember(Order=7) meta?: { [index: string]: string; }; }