@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Convex Management API
@base https://api.convex.dev/v1
@version 1.0.0
@auth Bearer bearer | Bearer bearer | Bearer bearer | Bearer bearer
@endpoints 34
@hint download_for_search
@toc teams(12), projects(8), deployments(10), list_personal_access_tokens(1), create_personal_access_token(1), delete_personal_access_token(1), token_details(1)

@group teams
@endpoint POST /teams/{team_id}/create_project
@required {team_id: int(int64), projectName: str}
@optional {deploymentClass: str, deploymentRegion: any, deploymentType: any}
@returns(200) {deploymentName: str?, deploymentUrl: str?, projectId: int(int64)}

@endpoint GET /teams/{team_id}/list_projects
@required {team_id: int(int64)}
@returns(200)

@endgroup

@group projects
@endpoint GET /projects/{project_id}/list_deployments
@required {project_id: int(int64)}
@optional {includeLocal: bool, isDefault: bool, deploymentType: any}
@returns(200)

@endpoint GET /projects/{project_id}/deployment
@required {project_id: int(int64)}
@optional {reference: any, defaultProd: bool, defaultDev: bool}
@returns(200)

@endgroup

@group teams
@endpoint GET /teams/{team_id_or_slug}/projects/{project_slug}/deployment
@required {team_id_or_slug: str, project_slug: str}
@optional {reference: any, defaultProd: bool, defaultDev: bool}
@returns(200)

@endgroup

@group projects
@endpoint POST /projects/{project_id}/delete
@required {project_id: int(int64)}
@returns(200)

@endpoint GET /projects/{project_id}
@required {project_id: int(int64)}
@returns(200) {createTime: int(int64), id: int(int64), name: str, slug: str, teamId: int(int64), teamSlug: str}

@endgroup

@group teams
@endpoint GET /teams/{team_id_or_slug}/projects/{project_slug}
@required {team_id_or_slug: str, project_slug: str}
@returns(200) {createTime: int(int64), id: int(int64), name: str, slug: str, teamId: int(int64), teamSlug: str}

@endgroup

@group projects
@endpoint POST /projects/{project_id}/create_deployment
@required {project_id: int(int64), type: str(dev/prod/preview/custom)}
@optional {class: str, expiresAt: int(int64), isDefault: bool, reference: str, region: any}
@returns(200)

@endgroup

@group deployments
@endpoint POST /deployments/{deployment_name}/delete
@required {deployment_name: any}
@returns(200)

@endpoint GET /deployments/{deployment_name}
@required {deployment_name: str}
@returns(200)

@endpoint PATCH /deployments/{deployment_name}
@required {deployment_name: str}
@optional {dashboardEditConfirmation: bool, expiresAt: int(int64), reference: str, sendLogsToClient: bool}
@returns(200)

@endpoint POST /deployments/{deployment_name}/transfer
@required {deployment_name: str, destinationProjectId: int(int64)}
@returns(204)

@endgroup

@group teams
@endpoint GET /teams/{team_id}/list_deployment_classes
@required {team_id: any}
@returns(200) {items: [map]}

@endpoint GET /teams/{team_id}/list_deployment_regions
@required {team_id: any}
@returns(200) {items: [map]}

@endpoint GET /teams/{team_id}/list_deployments
@required {team_id: int(int64)}
@optional {cursor: str, limit: int(int64), sortBy: str, sortOrder: str, deploymentType: str, q: str, projectId: int(int64), creator: int(int64), isDefault: bool}
@returns(200) {items: [any], pagination: map{hasMore: bool, nextCursor: str?}}

@endpoint GET /teams/{team_id}/list_local_deployments
@required {team_id: int(int64)}
@returns(200) {items: [any]}

@endgroup

@group deployments
@endpoint POST /deployments/{deployment_name}/create_deploy_key
@required {deployment_name: any, name: str}
@returns(200) {deployKey: str}

@endpoint GET /deployments/{deployment_name}/list_deploy_keys
@required {deployment_name: any}
@returns(200)

@endpoint POST /deployments/{deployment_name}/delete_deploy_key
@required {deployment_name: any, id: str}
@returns(200)

@endgroup

@group projects
@endpoint POST /projects/{project_id}/create_preview_deploy_key
@required {project_id: int(int64), name: str}
@returns(200) {previewDeployKey: str}

@endpoint GET /projects/{project_id}/list_preview_deploy_keys
@required {project_id: int(int64)}
@optional {includeManaged: bool}
@returns(200) {items: [map]}

@endpoint POST /projects/{project_id}/delete_preview_deploy_key
@required {project_id: int(int64), id: str}
@returns(200)

@endgroup

@group list_personal_access_tokens
@endpoint GET /list_personal_access_tokens
@optional {cursor: str, limit: int(int64)}
@returns(200) {items: [map], pagination: map{hasMore: bool, nextCursor: str?}}

@endgroup

@group create_personal_access_token
@endpoint POST /create_personal_access_token
@required {name: str}
@returns(200) {accessToken: str}

@endgroup

@group delete_personal_access_token
@endpoint POST /delete_personal_access_token
@required {id: str}
@returns(200)

@endgroup

@group token_details
@endpoint GET /token_details
@returns(200)

@endgroup

@group deployments
@endpoint POST /deployments/{deployment_name}/create_custom_domain
@required {deployment_name: any, domain: str, requestDestination: str(convexCloud/convexSite)}
@returns(200)

@endpoint POST /deployments/{deployment_name}/delete_custom_domain
@required {deployment_name: any, domain: str, requestDestination: str(convexCloud/convexSite)}
@returns(200)

@endpoint GET /deployments/{deployment_name}/custom_domains
@required {deployment_name: any}
@returns(200) {domains: [map]}

@endgroup

@group teams
@endpoint GET /teams/{team_id}/list_members
@required {team_id: any}
@returns(200) {items: [map]}

@endpoint POST /teams/create_team
@required {defaultRegion: str(aws-us-east-1/aws-eu-west-1), name: str}
@returns(201) {creator: any, defaultRegion: any, id: int(int64), managedBy: any, managedByUrl: str?, name: str, referralCode: str, referredBy: any, slug: str, ssoLoginId: str?, suspended: bool}
@errors {403}

@endpoint POST /teams/{team_id}/create_access_token
@required {team_id: any}
@returns(201) {accessToken: str, tokenType: str}
@errors {403}

@endpoint POST /teams/{team_id}/invite_team_member
@required {team_id: any, email: str, role: str(admin/developer)}
@returns(200)

@endgroup

@end
