/* Options:
Date: 2026-01-26 23:50:39
Version: 10.04
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
{
}
type PostType = "Announcement" | "Post" | "Showcase" | "Question" | "Request";
interface Post
{
id?: number;
organizationId?: number;
userId?: number;
// @Ignore()
userProfileUrl?: string;
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
{
}
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
{
}
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
{
}
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;
// @Ignore()
userProfileUrl?: string;
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;
}
// @DataContract
interface QueryResponse
{
// @DataMember(Order=1)
offset?: number;
// @DataMember(Order=2)
total?: number;
// @DataMember(Order=3)
results?: T[] = [];
// @DataMember(Order=4)
meta?: { [index:string]: string; };
// @DataMember(Order=5)
responseStatus?: ResponseStatus;
}
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;
}
interface TechnologyStackHistory extends TechnologyStackBase
{
technologyStackId?: number;
operation?: string;
technologyIds?: 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;
}
interface TechStackDetails extends TechnologyStackBase
{
technologyChoices?: TechnologyInStack[] = [];
}
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;
}
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)
authProvider?: string;
// @DataMember(Order=13)
responseStatus?: ResponseStatus;
// @DataMember(Order=14)
meta?: { [index:string]: string; };
}
// @DataContract
interface RegisterResponse extends IHasSessionId, IHasBearerToken
{
// @DataMember(Order=1)
userId?: string;
// @DataMember(Order=2)
sessionId?: string;
// @DataMember(Order=3)
userName?: string;
// @DataMember(Order=4)
referrerUrl?: string;
// @DataMember(Order=5)
bearerToken?: string;
// @DataMember(Order=6)
refreshToken?: string;
// @DataMember(Order=7)
refreshTokenExpiry?: string;
// @DataMember(Order=8)
roles?: string[];
// @DataMember(Order=9)
permissions?: string[];
// @DataMember(Order=10)
redirectUrl?: string;
// @DataMember(Order=11)
responseStatus?: ResponseStatus;
// @DataMember(Order=12)
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;
}
interface QueryPosts extends QueryDb_1, IReturn>
{
ids?: number[];
organizationId?: number;
organizationIds?: number[];
types?: string[];
anyTechnologyIds?: number[];
is?: string[];
userId?: number;
}
interface GetPost extends IReturn, IGet
{
id?: number;
include?: string;
}
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;
}
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;
}
interface DeletePost extends IReturn, IDelete
{
id?: number;
}
interface LockPost extends IReturnVoid, IPut
{
id?: number;
lock?: boolean;
reason?: string;
}
interface HidePost extends IReturnVoid, IPut
{
id?: number;
hide?: boolean;
reason?: string;
}
interface ChangeStatusPost extends IReturnVoid, IPut
{
id?: number;
status?: string;
reason?: string;
}
interface ActionPostReport extends IReturnVoid, IPost
{
postId?: number;
id?: number;
reportAction?: ReportAction;
}
interface CreatePostComment extends IReturn, IPost
{
postId?: number;
replyId?: number;
content?: string;
}
interface UpdatePostComment extends IReturn, IPut
{
id?: number;
postId?: number;
content?: string;
}
interface DeletePostComment extends IReturn, IDelete
{
id?: number;
postId?: number;
}
interface ActionPostCommentReport extends IReturnVoid, IPost
{
id?: number;
postCommentId?: number;
postId?: number;
reportAction?: ReportAction;
}
interface GetUserPostCommentVotes extends IReturn, IGet
{
postId?: number;
}
interface PinPostComment extends IReturn, IPut
{
id?: number;
postId?: number;
pin?: boolean;
}
// @Route("/users/by-email")
interface GetUsersByEmails extends IReturn, IGet
{
emails?: string[] = [];
}
interface GetUserPostActivity extends IReturn, IGet
{
}
interface GetUserOrganizations extends IReturn, IGet
{
}
interface UserPostVote extends IReturn, IPut
{
id?: number;
weight?: number;
}
interface UserPostFavorite extends IReturn, IPut
{
id?: number;
}
interface UserPostReport extends IReturn, IPut
{
id?: number;
flagType?: FlagType;
reportNotes?: string;
}
interface UserPostCommentVote extends IReturn, IPut
{
id?: number;
postId?: number;
weight?: number;
}
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;
}
// @Route("/technology/query")
interface QueryTechnology extends QueryDb_2, IReturn>
{
ids?: number[];
name?: string;
vendorName?: string;
nameContains?: string;
vendorNameContains?: string;
descriptionContains?: 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;
}
// @Route("/techstacks/query")
interface QueryTechStacks extends QueryDb_2, IReturn>
{
ids?: number[];
name?: string;
vendorName?: string;
nameContains?: string;
vendorNameContains?: string;
descriptionContains?: 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("/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; };
}
/** @description Sign Up */
// @Route("/register", "POST")
// @Api(Description="Sign Up")
// @DataContract
interface Register extends IReturn, IPost
{
// @DataMember(Order=1)
userName?: string;
// @DataMember(Order=2)
firstName?: string;
// @DataMember(Order=3)
lastName?: string;
// @DataMember(Order=4)
displayName?: string;
// @DataMember(Order=5)
email?: string;
// @DataMember(Order=6)
password?: string;
// @DataMember(Order=7)
confirmPassword?: string;
// @DataMember(Order=8)
autoLogin?: boolean;
// @DataMember(Order=10)
errorView?: string;
// @DataMember(Order=11)
meta?: { [index:string]: string; };
}
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;
}