openapi: 3.0.0 info: termsOfService: 'https://quay.io/tos' version: v1 contact: email: support@quay.io description: >- This API allows you to perform many of the operations required to work with Quay repositories, users, and organizations. You can find out more at Quay. title: Quay Frontend paths: '/api/v1/organization/{orgname}/invoices': x-name: endpoints.api.billing.OrganizationInvoiceList parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string x-tag: billing x-path: '/api/v1/organization/{orgname}/invoices' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string tags: - billing security: - oauth2_implicit: - 'org:admin' operationId: listOrgInvoices description: List the invoices for the specified orgnaization. /api/v1/plans/: x-name: endpoints.api.billing.ListPlans x-tag: billing x-path: /api/v1/plans/ get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found tags: - billing description: List the avaialble plans. operationId: listPlans '/api/v1/repository/{repository}/build/': x-name: endpoints.api.build.RepositoryBuildList parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string - description: Returns all builds since the given unix timecode required: false name: since in: query schema: type: integer - description: The maximum number of builds to return required: false name: limit in: query schema: type: integer tags: - build security: - oauth2_implicit: - 'repo:read' operationId: getRepoBuilds description: Get the list of repository builds. x-path: '/api/v1/repository/{repository}/build/' x-tag: build post: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - build security: - oauth2_implicit: - 'repo:write' operationId: requestRepoBuild description: Request that a repository be built and pushed from the specified input. requestBody: content: application/json: schema: $ref: '#/components/schemas/RepositoryBuildRequest' description: Request body contents. required: true '/api/v1/repository/{repository}/build/{build_uuid}/status': x-name: endpoints.api.build.RepositoryBuildStatus parameters: - description: The UUID of the build required: true name: build_uuid in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string x-tag: build x-path: '/api/v1/repository/{repository}/build/{build_uuid}/status' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The UUID of the build required: true name: build_uuid in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - build security: - oauth2_implicit: - 'repo:read' operationId: getRepoBuildStatus description: Return the status for the builds specified by the build uuids. '/api/v1/repository/{repository}/build/{build_uuid}': x-name: endpoints.api.build.RepositoryBuildResource parameters: - description: The UUID of the build required: true name: build_uuid in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The UUID of the build required: true name: build_uuid in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - build security: - oauth2_implicit: - 'repo:read' operationId: getRepoBuild description: Returns information about a build. x-path: '/api/v1/repository/{repository}/build/{build_uuid}' x-tag: build delete: responses: '204': description: Deleted '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The UUID of the build required: true name: build_uuid in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - build security: - oauth2_implicit: - 'repo:admin' operationId: cancelRepoBuild description: >- Cancels a repository build if it has not yet been picked up by a build worker. '/api/v1/repository/{repository}/build/{build_uuid}/logs': x-name: endpoints.api.build.RepositoryBuildLogs parameters: - description: The UUID of the build required: true name: build_uuid in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string x-tag: build x-path: '/api/v1/repository/{repository}/build/{build_uuid}/logs' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The UUID of the build required: true name: build_uuid in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - build security: - oauth2_implicit: - 'repo:write' operationId: getRepoBuildLogs description: Return the build logs for the build specified by the build uuid. /api/v1/discovery: x-name: endpoints.api.discovery.DiscoveryResource x-tag: discovery x-path: /api/v1/discovery get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found tags: - discovery description: List all of the API endpoints available in the swagger API format. parameters: - description: Whether to include internal APIs. required: false name: internal in: query schema: type: boolean operationId: discovery '/api/v1/repository/{repository}/image/{image_id}': x-name: endpoints.api.image.RepositoryImage parameters: - description: The Docker image ID required: true name: image_id in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string x-tag: image x-path: '/api/v1/repository/{repository}/image/{image_id}' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The Docker image ID required: true name: image_id in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - image security: - oauth2_implicit: - 'repo:read' operationId: getImage description: Get the information available for the specified image. '/api/v1/repository/{repository}/image/{image_id}/changes': x-name: endpoints.api.image.RepositoryImageChanges parameters: - description: The Docker image ID required: true name: image_id in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string x-tag: image x-path: '/api/v1/repository/{repository}/image/{image_id}/changes' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The Docker image ID required: true name: image_id in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - image security: - oauth2_implicit: - 'repo:read' operationId: getImageChanges description: Get the list of changes for the specified image. '/api/v1/repository/{repository}/image/': x-name: endpoints.api.image.RepositoryImageList parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string x-tag: image x-path: '/api/v1/repository/{repository}/image/' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - image security: - oauth2_implicit: - 'repo:read' operationId: listRepositoryImages description: List the images for the specified repository. '/api/v1/organization/{orgname}/aggregatelogs': x-name: endpoints.api.logs.OrgAggregateLogs parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string x-tag: logs x-path: '/api/v1/organization/{orgname}/aggregatelogs' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: Username for which to filter logs. required: false name: performer in: query schema: type: string - description: Latest time to which to get logs. (%m/%d/%Y %Z) required: false name: endtime in: query schema: type: string - description: Earliest time from which to get logs. (%m/%d/%Y %Z) required: false name: starttime in: query schema: type: string tags: - logs security: - oauth2_implicit: - 'org:admin' operationId: getAggregateOrgLogs description: Gets the aggregated logs for the specified organization. '/api/v1/organization/{orgname}/logs': x-name: endpoints.api.logs.OrgLogs parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string x-tag: logs x-path: '/api/v1/organization/{orgname}/logs' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: The page number for the logs required: false name: page in: query schema: type: integer - description: Username for which to filter logs. required: false name: performer in: query schema: type: string - description: Latest time to which to get logs. (%m/%d/%Y %Z) required: false name: endtime in: query schema: type: string - description: Earliest time from which to get logs. (%m/%d/%Y %Z) required: false name: starttime in: query schema: type: string tags: - logs security: - oauth2_implicit: - 'org:admin' operationId: listOrgLogs description: List the logs for the specified organization. '/api/v1/repository/{repository}/logs': x-name: endpoints.api.logs.RepositoryLogs parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string x-tag: logs x-path: '/api/v1/repository/{repository}/logs' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string - description: The page number for the logs required: false name: page in: query schema: type: integer - description: Latest time to which to get logs (%m/%d/%Y %Z) required: false name: endtime in: query schema: type: string - description: Earliest time from which to get logs (%m/%d/%Y %Z) required: false name: starttime in: query schema: type: string tags: - logs security: - oauth2_implicit: - 'repo:admin' operationId: listRepoLogs description: List the logs for the specified repository. '/api/v1/repository/{repository}/aggregatelogs': x-name: endpoints.api.logs.RepositoryAggregateLogs parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string x-tag: logs x-path: '/api/v1/repository/{repository}/aggregatelogs' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string - description: Latest time to which to get logs (%m/%d/%Y %Z) required: false name: endtime in: query schema: type: string - description: Earliest time from which to get logs (%m/%d/%Y %Z) required: false name: starttime in: query schema: type: string tags: - logs security: - oauth2_implicit: - 'repo:admin' operationId: getAggregateRepoLogs description: Returns the aggregated logs for the specified repository. '/api/v1/organization/{orgname}/members/{membername}': x-name: endpoints.api.organization.OrganizationMember parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: The username of the organization member required: true name: membername in: path schema: type: string get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: The username of the organization member required: true name: membername in: path schema: type: string tags: - organization security: - oauth2_implicit: - 'org:admin' operationId: getOrganizationMember description: Retrieves the details of a member of the organization. x-path: '/api/v1/organization/{orgname}/members/{membername}' x-tag: organization delete: responses: '204': description: Deleted '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: The username of the organization member required: true name: membername in: path schema: type: string tags: - organization security: - oauth2_implicit: - 'org:admin' operationId: removeOrganizationMember description: |- Removes a member from an organization, revoking all its repository priviledges and removing it from all teams in the organization. '/api/v1/organization/{orgname}': x-name: endpoints.api.organization.Organization parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string tags: - organization security: - oauth2_implicit: - 'org:admin' operationId: getOrganization description: Get the details for the specified organization x-path: '/api/v1/organization/{orgname}' x-tag: organization put: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string tags: - organization security: - oauth2_implicit: - 'org:admin' operationId: changeOrganizationDetails description: Change the details for the specified organization. requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateOrg' description: Request body contents. required: true '/api/v1/organization/{orgname}/applications/{client_id}': x-name: endpoints.api.organization.OrganizationApplicationResource parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: The OAuth client ID required: true name: client_id in: path schema: type: string get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: The OAuth client ID required: true name: client_id in: path schema: type: string tags: - organization security: - oauth2_implicit: - 'org:admin' operationId: getOrganizationApplication description: >- Retrieves the application with the specified client_id under the specified organization x-path: '/api/v1/organization/{orgname}/applications/{client_id}' x-tag: organization put: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: The OAuth client ID required: true name: client_id in: path schema: type: string tags: - organization security: - oauth2_implicit: - 'org:admin' operationId: updateOrganizationApplication description: Updates an application under this organization. requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateApp' description: Request body contents. required: true delete: responses: '204': description: Deleted '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: The OAuth client ID required: true name: client_id in: path schema: type: string tags: - organization security: - oauth2_implicit: - 'org:admin' operationId: deleteOrganizationApplication description: Deletes the application under this organization. '/api/v1/organization/{orgname}/applications': x-name: endpoints.api.organization.OrganizationApplications parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string tags: - organization security: - oauth2_implicit: - 'org:admin' operationId: getOrganizationApplications description: List the applications for the specified organization x-path: '/api/v1/organization/{orgname}/applications' x-tag: organization post: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string tags: - organization security: - oauth2_implicit: - 'org:admin' operationId: createOrganizationApplication description: Creates a new application under this organization. requestBody: content: application/json: schema: $ref: '#/components/schemas/NewApp' description: Request body contents. required: true '/api/v1/organization/{orgname}/members': x-name: endpoints.api.organization.OrganizationMemberList parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string x-tag: organization x-path: '/api/v1/organization/{orgname}/members' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string tags: - organization security: - oauth2_implicit: - 'org:admin' operationId: getOrganizationMembers description: List the human members of the specified organization. '/api/v1/app/{client_id}': x-name: endpoints.api.organization.ApplicationInformation parameters: - description: The OAuth client ID required: true name: client_id in: path schema: type: string x-tag: organization x-path: '/api/v1/app/{client_id}' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found tags: - organization description: Get information on the specified application. parameters: - description: The OAuth client ID required: true name: client_id in: path schema: type: string operationId: getApplicationInformation '/api/v1/repository/{repository}/permissions/team/{teamname}': x-name: endpoints.api.permission.RepositoryTeamPermission parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string - description: The name of the team to which the permission applies required: true name: teamname in: path schema: type: string get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the team to which the permission applies required: true name: teamname in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - permission security: - oauth2_implicit: - 'repo:admin' operationId: getTeamPermissions description: Fetch the permission for the specified team. x-path: '/api/v1/repository/{repository}/permissions/team/{teamname}' x-tag: permission put: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the team to which the permission applies required: true name: teamname in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - permission security: - oauth2_implicit: - 'repo:admin' operationId: changeTeamPermissions description: Update the existing team permission. requestBody: content: application/json: schema: $ref: '#/components/schemas/TeamPermission' description: Request body contents. required: true delete: responses: '204': description: Deleted '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the team to which the permission applies required: true name: teamname in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - permission security: - oauth2_implicit: - 'repo:admin' operationId: deleteTeamPermissions description: Delete the permission for the specified team. '/api/v1/repository/{repository}/permissions/user/': x-name: endpoints.api.permission.RepositoryUserPermissionList parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string x-tag: permission x-path: '/api/v1/repository/{repository}/permissions/user/' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - permission security: - oauth2_implicit: - 'repo:admin' operationId: listRepoUserPermissions description: List all user permissions. '/api/v1/repository/{repository}/permissions/team/': x-name: endpoints.api.permission.RepositoryTeamPermissionList parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string x-tag: permission x-path: '/api/v1/repository/{repository}/permissions/team/' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - permission security: - oauth2_implicit: - 'repo:admin' operationId: listRepoTeamPermissions description: List all team permission. '/api/v1/repository/{repository}/permissions/user/{username}': x-name: endpoints.api.permission.RepositoryUserPermission parameters: - description: The username of the user to which the permission applies required: true name: username in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The username of the user to which the permission applies required: true name: username in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - permission security: - oauth2_implicit: - 'repo:admin' operationId: getUserPermissions description: Get the Fetch the permission for the specified user. x-path: '/api/v1/repository/{repository}/permissions/user/{username}' x-tag: permission put: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The username of the user to which the permission applies required: true name: username in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - permission security: - oauth2_implicit: - 'repo:admin' operationId: changeUserPermissions description: Update the perimssions for an existing repository. requestBody: content: application/json: schema: $ref: '#/components/schemas/UserPermission' description: Request body contents. required: true delete: responses: '204': description: Deleted '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The username of the user to which the permission applies required: true name: username in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - permission security: - oauth2_implicit: - 'repo:admin' operationId: deleteUserPermissions description: Delete the permission for the user. '/api/v1/repository/{repository}/permissions/user/{username}/transitive': x-name: endpoints.api.permission.RepositoryUserTransitivePermission parameters: - description: The username of the user to which the permissions apply required: true name: username in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string x-tag: permission x-path: '/api/v1/repository/{repository}/permissions/user/{username}/transitive' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The username of the user to which the permissions apply required: true name: username in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - permission security: - oauth2_implicit: - 'repo:admin' operationId: getUserTransitivePermission description: Get the fetch the permission for the specified user. '/api/v1/organization/{orgname}/prototypes': x-name: endpoints.api.prototype.PermissionPrototypeList parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string tags: - prototype security: - oauth2_implicit: - 'org:admin' operationId: getOrganizationPrototypePermissions description: List the existing prototypes for this organization. x-path: '/api/v1/organization/{orgname}/prototypes' x-tag: prototype post: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string tags: - prototype security: - oauth2_implicit: - 'org:admin' operationId: createOrganizationPrototypePermission description: Create a new permission prototype. requestBody: content: application/json: schema: $ref: '#/components/schemas/NewPrototype' description: Request body contents. required: true '/api/v1/organization/{orgname}/prototypes/{prototypeid}': x-name: endpoints.api.prototype.PermissionPrototype parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: The ID of the prototype required: true name: prototypeid in: path schema: type: string x-path: '/api/v1/organization/{orgname}/prototypes/{prototypeid}' x-tag: prototype put: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: The ID of the prototype required: true name: prototypeid in: path schema: type: string tags: - prototype security: - oauth2_implicit: - 'org:admin' operationId: updateOrganizationPrototypePermission description: Update the role of an existing permission prototype. requestBody: content: application/json: schema: $ref: '#/components/schemas/PrototypeUpdate' description: Request body contents. required: true delete: responses: '204': description: Deleted '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: The ID of the prototype required: true name: prototypeid in: path schema: type: string tags: - prototype security: - oauth2_implicit: - 'org:admin' operationId: deleteOrganizationPrototypePermission description: Delete an existing permission prototype. /api/v1/repository: post: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found tags: - repository security: - oauth2_implicit: - 'repo:create' operationId: createRepo description: Create a new repository. requestBody: content: application/json: schema: $ref: '#/components/schemas/NewRepo' description: Request body contents. required: true x-name: endpoints.api.repository.RepositoryList x-tag: repository x-path: /api/v1/repository get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: Whether to include the repository's popularity metric. required: false name: popularity in: query schema: type: boolean - description: Whether to include when the repository was last modified. required: false name: last_modified in: query schema: type: boolean - description: Adds any repositories visible to the user by virtue of being public required: false name: public in: query schema: type: boolean - description: Filters the repositories returned to those starred by the user required: false name: starred in: query schema: type: boolean - description: Filters the repositories returned to this namespace required: false name: namespace in: query schema: type: string - description: Limit on the number of results (int) required: false name: limit in: query schema: type: integer - description: Offset page number. (int) required: false name: page in: query schema: type: integer tags: - repository security: - oauth2_implicit: - 'repo:read' operationId: listRepos description: >- Fetch the list of repositories visible to the current user under a variety of situations. '/api/v1/repository/{repository}/changevisibility': post: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - repository security: - oauth2_implicit: - 'repo:admin' operationId: changeRepoVisibility description: Change the visibility of a repository. requestBody: content: application/json: schema: $ref: '#/components/schemas/ChangeVisibility' description: Request body contents. required: true x-name: endpoints.api.repository.RepositoryVisibility parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string x-tag: repository x-path: '/api/v1/repository/{repository}/changevisibility' '/api/v1/repository/{repository}': x-name: endpoints.api.repository.Repository parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - repository security: - oauth2_implicit: - 'repo:read' operationId: getRepo description: Fetch the specified repository. x-path: '/api/v1/repository/{repository}' x-tag: repository put: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - repository security: - oauth2_implicit: - 'repo:write' operationId: updateRepo description: Update the description in the specified repository. requestBody: content: application/json: schema: $ref: '#/components/schemas/RepoUpdate' description: Request body contents. required: true delete: responses: '204': description: Deleted '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - repository security: - oauth2_implicit: - 'repo:admin' operationId: deleteRepository description: Delete a repository. '/api/v1/repository/{repository}/notification/': x-name: endpoints.api.repositorynotification.RepositoryNotificationList parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - repositorynotification security: - oauth2_implicit: - 'repo:admin' operationId: listRepoNotifications description: List the notifications for the specified repository. x-path: '/api/v1/repository/{repository}/notification/' x-tag: repositorynotification post: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - repositorynotification security: - oauth2_implicit: - 'repo:admin' operationId: createRepoNotification description: Create a new notification for the specified repository. requestBody: content: application/json: schema: $ref: '#/components/schemas/NotificationCreateRequest' description: Request body contents. required: true '/api/v1/repository/{repository}/notification/{uuid}/test': post: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The UUID of the notification required: true name: uuid in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - repositorynotification security: - oauth2_implicit: - 'repo:admin' operationId: testRepoNotification description: Queues a test notification for this repository. x-name: endpoints.api.repositorynotification.TestRepositoryNotification parameters: - description: The UUID of the notification required: true name: uuid in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string x-tag: repositorynotification x-path: '/api/v1/repository/{repository}/notification/{uuid}/test' '/api/v1/repository/{repository}/notification/{uuid}': x-name: endpoints.api.repositorynotification.RepositoryNotification parameters: - description: The UUID of the notification required: true name: uuid in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The UUID of the notification required: true name: uuid in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - repositorynotification security: - oauth2_implicit: - 'repo:admin' operationId: getRepoNotification description: Get information for the specified notification. x-path: '/api/v1/repository/{repository}/notification/{uuid}' x-tag: repositorynotification delete: responses: '204': description: Deleted '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The UUID of the notification required: true name: uuid in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - repositorynotification security: - oauth2_implicit: - 'repo:admin' operationId: deleteRepoNotification description: Deletes the specified notification. '/api/v1/repository/{repository}/tokens/': x-name: endpoints.api.repotoken.RepositoryTokenList parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - repotoken security: - oauth2_implicit: - 'repo:admin' operationId: listRepoTokens description: List the tokens for the specified repository. x-path: '/api/v1/repository/{repository}/tokens/' x-tag: repotoken post: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - repotoken security: - oauth2_implicit: - 'repo:admin' operationId: createToken description: Create a new repository token. requestBody: content: application/json: schema: $ref: '#/components/schemas/NewToken' description: Request body contents. required: true '/api/v1/repository/{repository}/tokens/{code}': x-name: endpoints.api.repotoken.RepositoryToken parameters: - description: The token code required: true name: code in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The token code required: true name: code in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - repotoken security: - oauth2_implicit: - 'repo:admin' operationId: getTokens description: Fetch the specified repository token information. x-path: '/api/v1/repository/{repository}/tokens/{code}' x-tag: repotoken put: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The token code required: true name: code in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - repotoken security: - oauth2_implicit: - 'repo:admin' operationId: changeToken description: Update the permissions for the specified repository token. requestBody: content: application/json: schema: $ref: '#/components/schemas/TokenPermission' description: Request body contents. required: true delete: responses: '204': description: Deleted '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The token code required: true name: code in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - repotoken security: - oauth2_implicit: - 'repo:admin' operationId: deleteToken description: Delete the repository token. '/api/v1/user/robots/{robot_shortname}': x-name: endpoints.api.robot.UserRobot parameters: - description: 'The short name for the robot, without any user or organization prefix' required: true name: robot_shortname in: path schema: type: string get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found tags: - robot description: Returns the user's robot with the specified name. parameters: - description: >- The short name for the robot, without any user or organization prefix required: true name: robot_shortname in: path schema: type: string operationId: getUserRobot x-path: '/api/v1/user/robots/{robot_shortname}' x-tag: robot put: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found tags: - robot description: Create a new user robot with the specified name. parameters: - description: >- The short name for the robot, without any user or organization prefix required: true name: robot_shortname in: path schema: type: string operationId: createUserRobot delete: responses: '204': description: Deleted '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found tags: - robot description: Delete an existing robot. parameters: - description: >- The short name for the robot, without any user or organization prefix required: true name: robot_shortname in: path schema: type: string operationId: deleteUserRobot /api/v1/user/robots: x-name: endpoints.api.robot.UserRobotList x-tag: robot x-path: /api/v1/user/robots get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found tags: - robot description: List the available robots for the user. parameters: - description: >- Whether to include repostories and teams in which the robots have permission. required: false name: permissions in: query schema: type: boolean operationId: getUserRobots '/api/v1/organization/{orgname}/robots/{robot_shortname}/permissions': x-name: endpoints.api.robot.OrgRobotPermissions parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: 'The short name for the robot, without any user or organization prefix' required: true name: robot_shortname in: path schema: type: string x-tag: robot x-path: '/api/v1/organization/{orgname}/robots/{robot_shortname}/permissions' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found tags: - robot description: Returns the list of repository permissions for the org's robot. parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: >- The short name for the robot, without any user or organization prefix required: true name: robot_shortname in: path schema: type: string operationId: getOrgRobotPermissions '/api/v1/organization/{orgname}/robots/{robot_shortname}/regenerate': post: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: >- The short name for the robot, without any user or organization prefix required: true name: robot_shortname in: path schema: type: string tags: - robot security: - oauth2_implicit: - 'org:admin' operationId: regenerateOrgRobotToken description: Regenerates the token for an organization robot. x-name: endpoints.api.robot.RegenerateOrgRobot parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: 'The short name for the robot, without any user or organization prefix' required: true name: robot_shortname in: path schema: type: string x-tag: robot x-path: '/api/v1/organization/{orgname}/robots/{robot_shortname}/regenerate' '/api/v1/organization/{orgname}/robots': x-name: endpoints.api.robot.OrgRobotList parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string x-tag: robot x-path: '/api/v1/organization/{orgname}/robots' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: >- Whether to include repostories and teams in which the robots have permission. required: false name: permissions in: query schema: type: boolean tags: - robot security: - oauth2_implicit: - 'org:admin' operationId: getOrgRobots description: List the organization's robots. '/api/v1/user/robots/{robot_shortname}/permissions': x-name: endpoints.api.robot.UserRobotPermissions parameters: - description: 'The short name for the robot, without any user or organization prefix' required: true name: robot_shortname in: path schema: type: string x-tag: robot x-path: '/api/v1/user/robots/{robot_shortname}/permissions' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found tags: - robot description: Returns the list of repository permissions for the user's robot. parameters: - description: >- The short name for the robot, without any user or organization prefix required: true name: robot_shortname in: path schema: type: string operationId: getUserRobotPermissions '/api/v1/user/robots/{robot_shortname}/regenerate': post: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found tags: - robot description: Regenerates the token for a user's robot. parameters: - description: >- The short name for the robot, without any user or organization prefix required: true name: robot_shortname in: path schema: type: string operationId: regenerateUserRobotToken x-name: endpoints.api.robot.RegenerateUserRobot parameters: - description: 'The short name for the robot, without any user or organization prefix' required: true name: robot_shortname in: path schema: type: string x-tag: robot x-path: '/api/v1/user/robots/{robot_shortname}/regenerate' '/api/v1/organization/{orgname}/robots/{robot_shortname}': x-name: endpoints.api.robot.OrgRobot parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: 'The short name for the robot, without any user or organization prefix' required: true name: robot_shortname in: path schema: type: string get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: >- The short name for the robot, without any user or organization prefix required: true name: robot_shortname in: path schema: type: string tags: - robot security: - oauth2_implicit: - 'org:admin' operationId: getOrgRobot description: Returns the organization's robot with the specified name. x-path: '/api/v1/organization/{orgname}/robots/{robot_shortname}' x-tag: robot put: responses: '201': description: Succesfully created content: '*/*': schema: $ref: '#/components/schemas/Robot' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - $ref: '#/components/parameters/OrgName' - $ref: '#/components/parameters/RobotShortName' tags: - robot security: - oauth2_implicit: - 'org:admin' operationId: createOrgRobot description: Create a new robot in the organization. delete: responses: '204': description: Deleted '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: >- The short name for the robot, without any user or organization prefix required: true name: robot_shortname in: path schema: type: string tags: - robot security: - oauth2_implicit: - 'org:admin' operationId: deleteOrgRobot description: Delete an existing organization robot. /api/v1/find/all: x-name: endpoints.api.search.ConductSearch x-tag: search x-path: /api/v1/find/all get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The search query. required: false name: query in: query schema: type: string tags: - search security: - oauth2_implicit: - 'repo:read' operationId: conductSearch description: Get a list of entities and resources that match the specified query. '/api/v1/entities/{prefix}': x-name: endpoints.api.search.EntitySearch x-tag: search x-path: '/api/v1/entities/{prefix}' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found tags: - search description: Get a list of entities that match the specified prefix. parameters: - description: '' required: true name: prefix in: path schema: type: string - description: Whether to include orgs names. required: false name: includeOrgs in: query schema: type: boolean - description: Whether to include team names. required: false name: includeTeams in: query schema: type: boolean - description: Namespace to use when querying for org entities. required: false name: namespace in: query schema: type: string operationId: getMatchingEntities '/api/v1/repository/{repository}/image/{imageid}/packages': x-name: endpoints.api.secscan.RepositoryImagePackages parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string - description: The image ID required: true name: imageid in: path schema: type: string x-tag: secscan x-path: '/api/v1/repository/{repository}/image/{imageid}/packages' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string - description: The image ID required: true name: imageid in: path schema: type: string tags: - secscan security: - oauth2_implicit: - 'repo:read' operationId: getRepoImagePackages description: Fetches the packages added/removed in the given repo image. '/api/v1/repository/{repository}/tag/{tag}/vulnerabilities': x-name: endpoints.api.secscan.RepositoryTagVulnerabilities parameters: - description: The name of the tag required: true name: tag in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string x-tag: secscan x-path: '/api/v1/repository/{repository}/tag/{tag}/vulnerabilities' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the tag required: true name: tag in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string - description: Minimum vulnerability priority required: false name: minimumPriority in: query schema: type: string tags: - secscan security: - oauth2_implicit: - 'repo:read' operationId: getRepoTagVulnerabilities description: Fetches the vulnerabilities (if any) for a repository tag. '/api/v1/repository/{repository}/tag/{tag}/revert': post: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the tag required: true name: tag in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - tag security: - oauth2_implicit: - 'repo:write' operationId: revertTag description: Reverts a repository tag back to a previous image in the repository. requestBody: content: application/json: schema: $ref: '#/components/schemas/RevertTag' description: Request body contents. required: true x-name: endpoints.api.tag.RevertTag parameters: - description: The name of the tag required: true name: tag in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string x-tag: tag x-path: '/api/v1/repository/{repository}/tag/{tag}/revert' '/api/v1/repository/{repository}/tag/{tag}/images': x-name: endpoints.api.tag.RepositoryTagImages parameters: - description: The name of the tag required: true name: tag in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string x-tag: tag x-path: '/api/v1/repository/{repository}/tag/{tag}/images' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the tag required: true name: tag in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string - description: 'If specified, only images wholely owned by this tag are returned.' required: false name: owned in: query schema: type: boolean tags: - tag security: - oauth2_implicit: - 'repo:read' operationId: listTagImages description: List the images for the specified repository tag. '/api/v1/repository/{repository}/tag/{tag}': x-name: endpoints.api.tag.RepositoryTag parameters: - description: The name of the tag required: true name: tag in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string x-path: '/api/v1/repository/{repository}/tag/{tag}' x-tag: tag put: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the tag required: true name: tag in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - tag security: - oauth2_implicit: - 'repo:write' operationId: changeTagImage description: Change which image a tag points to or create a new tag. requestBody: content: application/json: schema: $ref: '#/components/schemas/MoveTag' description: Request body contents. required: true delete: responses: '204': description: Deleted '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the tag required: true name: tag in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - tag security: - oauth2_implicit: - 'repo:write' operationId: deleteFullTag description: Delete the specified repository tag. '/api/v1/repository/{repository}/tag/': x-name: endpoints.api.tag.ListRepositoryTags parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string x-tag: tag x-path: '/api/v1/repository/{repository}/tag/' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string - description: Page index for the results. Default 1. required: false name: page in: query schema: type: integer - description: Limit to the number of results to return per page. Max 100. required: false name: limit in: query schema: type: integer - description: Filters the tags to the specific tag. required: false name: specificTag in: query schema: type: string tags: - tag security: - oauth2_implicit: - 'repo:read' operationId: listRepoTags description: '' '/api/v1/organization/{orgname}/team/{teamname}/members': x-name: endpoints.api.team.TeamMemberList parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: The name of the team required: true name: teamname in: path schema: type: string x-tag: team x-path: '/api/v1/organization/{orgname}/team/{teamname}/members' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: The name of the team required: true name: teamname in: path schema: type: string - description: Whether to include pending members required: false name: includePending in: query schema: type: boolean tags: - team security: - oauth2_implicit: - 'org:admin' operationId: getOrganizationTeamMembers description: Retrieve the list of members for the specified team. '/api/v1/organization/{orgname}/team/{teamname}/invite/{email}': put: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: '' required: true name: orgname in: path schema: type: string - description: '' required: true name: email in: path schema: type: string - description: '' required: true name: teamname in: path schema: type: string tags: - team security: - oauth2_implicit: - 'org:admin' operationId: inviteTeamMemberEmail description: Invites an email address to an existing team. x-name: endpoints.api.team.InviteTeamMember x-tag: team x-path: '/api/v1/organization/{orgname}/team/{teamname}/invite/{email}' delete: responses: '204': description: Deleted '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: '' required: true name: orgname in: path schema: type: string - description: '' required: true name: email in: path schema: type: string - description: '' required: true name: teamname in: path schema: type: string tags: - team security: - oauth2_implicit: - 'org:admin' operationId: deleteTeamMemberEmailInvite description: Delete an invite of an email address to join a team. '/api/v1/organization/{orgname}/team/{teamname}': x-name: endpoints.api.team.OrganizationTeam parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: The name of the team required: true name: teamname in: path schema: type: string x-path: '/api/v1/organization/{orgname}/team/{teamname}' x-tag: team put: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: The name of the team required: true name: teamname in: path schema: type: string tags: - team security: - oauth2_implicit: - 'org:admin' operationId: updateOrganizationTeam description: Update the org-wide permission for the specified team. requestBody: content: application/json: schema: $ref: '#/components/schemas/TeamDescription' description: Request body contents. required: true delete: responses: '204': description: Deleted '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: The name of the team required: true name: teamname in: path schema: type: string tags: - team security: - oauth2_implicit: - 'org:admin' operationId: deleteOrganizationTeam description: Delete the specified team. '/api/v1/organization/{orgname}/team/{teamname}/members/{membername}': x-name: endpoints.api.team.TeamMember parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: The username of the team member required: true name: membername in: path schema: type: string - description: The name of the team required: true name: teamname in: path schema: type: string x-path: '/api/v1/organization/{orgname}/team/{teamname}/members/{membername}' x-tag: team put: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: The username of the team member required: true name: membername in: path schema: type: string - description: The name of the team required: true name: teamname in: path schema: type: string tags: - team security: - oauth2_implicit: - 'org:admin' operationId: updateOrganizationTeamMember description: Adds or invites a member to an existing team. delete: responses: '204': description: Deleted '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The name of the organization required: true name: orgname in: path schema: type: string - description: The username of the team member required: true name: membername in: path schema: type: string - description: The name of the team required: true name: teamname in: path schema: type: string tags: - team security: - oauth2_implicit: - 'org:admin' operationId: deleteOrganizationTeamMember description: |- Delete a member of a team. If the user is merely invited to join the team, then the invite is removed instead. '/api/v1/repository/{repository}/trigger/': x-name: endpoints.api.trigger.BuildTriggerList parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string x-tag: trigger x-path: '/api/v1/repository/{repository}/trigger/' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - trigger security: - oauth2_implicit: - 'repo:admin' operationId: listBuildTriggers description: List the triggers for the specified repository. '/api/v1/repository/{repository}/trigger/{trigger_uuid}/activate': post: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The UUID of the build trigger required: true name: trigger_uuid in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - trigger security: - oauth2_implicit: - 'repo:admin' operationId: activateBuildTrigger description: Activate the specified build trigger. requestBody: content: application/json: schema: $ref: '#/components/schemas/BuildTriggerActivateRequest' description: Request body contents. required: true x-name: endpoints.api.trigger.BuildTriggerActivate parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string - description: The UUID of the build trigger required: true name: trigger_uuid in: path schema: type: string x-tag: trigger x-path: '/api/v1/repository/{repository}/trigger/{trigger_uuid}/activate' '/api/v1/repository/{repository}/trigger/{trigger_uuid}/start': post: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The UUID of the build trigger required: true name: trigger_uuid in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - trigger security: - oauth2_implicit: - 'repo:admin' operationId: manuallyStartBuildTrigger description: Manually start a build from the specified trigger. requestBody: content: application/json: schema: $ref: '#/components/schemas/RunParameters' description: Request body contents. required: true x-name: endpoints.api.trigger.ActivateBuildTrigger parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string - description: The UUID of the build trigger required: true name: trigger_uuid in: path schema: type: string x-tag: trigger x-path: '/api/v1/repository/{repository}/trigger/{trigger_uuid}/start' '/api/v1/repository/{repository}/trigger/{trigger_uuid}/builds': x-name: endpoints.api.trigger.TriggerBuildList parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string - description: The UUID of the build trigger required: true name: trigger_uuid in: path schema: type: string x-tag: trigger x-path: '/api/v1/repository/{repository}/trigger/{trigger_uuid}/builds' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The UUID of the build trigger required: true name: trigger_uuid in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string - description: The maximum number of builds to return required: false name: limit in: query schema: type: integer tags: - trigger security: - oauth2_implicit: - 'repo:admin' operationId: listTriggerRecentBuilds description: List the builds started by the specified trigger. '/api/v1/repository/{repository}/trigger/{trigger_uuid}': x-name: endpoints.api.trigger.BuildTrigger parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string - description: The UUID of the build trigger required: true name: trigger_uuid in: path schema: type: string get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The UUID of the build trigger required: true name: trigger_uuid in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - trigger security: - oauth2_implicit: - 'repo:admin' operationId: getBuildTrigger description: Get information for the specified build trigger. x-path: '/api/v1/repository/{repository}/trigger/{trigger_uuid}' x-tag: trigger delete: responses: '204': description: Deleted '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found parameters: - description: The UUID of the build trigger required: true name: trigger_uuid in: path schema: type: string - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string tags: - trigger security: - oauth2_implicit: - 'repo:admin' operationId: deleteBuildTrigger description: Delete the specified build trigger. /api/v1/user/: x-name: endpoints.api.user.User x-tag: user x-path: /api/v1/user/ get: responses: '200': description: Successful invocation content: '*/*': schema: $ref: '#/components/schemas/UserView' '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found tags: - user security: - oauth2_implicit: - 'user:read' operationId: getLoggedInUser description: Get user information for the authenticated user. '/api/v1/users/{username}': x-name: endpoints.api.user.Users x-tag: user x-path: '/api/v1/users/{username}' get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found tags: - user description: Get user information for the specified user. parameters: - description: '' required: true name: username in: path schema: type: string operationId: getUserInformation /api/v1/user/starred: post: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found tags: - user security: - oauth2_implicit: - 'repo:read' operationId: createStar description: Star a repository. requestBody: content: application/json: schema: $ref: '#/components/schemas/NewStarredRepository' description: Request body contents. required: true x-name: endpoints.api.user.StarredRepositoryList x-tag: user x-path: /api/v1/user/starred get: responses: '200': description: Successful invocation '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found tags: - user description: List all starred repositories. parameters: - description: Limit on the number of results (int) required: false name: limit in: query schema: type: integer - description: Offset page number. (int) required: false name: page in: query schema: type: integer operationId: listStarredRepos '/api/v1/user/starred/{repository}': x-name: endpoints.api.user.StarredRepository parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string x-tag: user x-path: '/api/v1/user/starred/{repository}' delete: responses: '204': description: Deleted '400': description: Bad Request content: '*/*': schema: $ref: '#/components/schemas/GeneralError' '401': description: Session required '403': description: Unauthorized access '404': description: Not found tags: - user description: Removes a star from a repository. parameters: - description: The full path of the repository. e.g. namespace/name required: true name: repository in: path schema: type: string operationId: deleteStar tags: - name: billing description: 'Billing information, subscriptions, and plan information.' - name: build description: 'Create, list, cancel and get status/logs of repository builds.' - name: discovery description: API discovery information. - name: image description: 'List and lookup repository images, and download image diffs.' - name: logs description: Access usage logs for organizations or repositories. - name: organization description: 'Manage organizations, members and OAuth applications.' - name: permission description: Manage repository permissions. - name: prototype description: Manage default permissions added to repositories. - name: repository description: 'List, create and manage repositories.' - name: repositorynotification description: 'List, create and manage repository events/notifications.' - name: repotoken description: Manage repository access tokens (DEPRECATED). - name: robot description: Manage user and organization robot accounts. - name: search description: Conduct searches against all registry context. - name: secscan description: List and manage repository vulnerabilities and other sec information. - name: tag description: Manage the tags of a repository. - name: team description: 'Create, list and manage an organization''s teams.' - name: trigger description: 'Create, list and manage build triggers.' - name: user description: Manage the current user. servers: - url: 'https://quay.io/' components: parameters: OrgName: description: The name of the organization required: true name: orgname in: path schema: type: string minLength: 4 maxLength: 30 pattern: '[a-z0-9_]+' RobotShortName: description: 'The short name for the robot, without any user or organization prefix' required: true name: robot_shortname in: path schema: type: string minLength: 4 maxLength: 30 pattern: '[a-z0-9_]+' securitySchemes: oauth2_implicit: type: oauth2 flows: implicit: authorizationUrl: 'https://quay.io/oauth/authorize' scopes: 'repo:write': >- This application will be able to view, push and pull to all repositories to which the granting user or robot account has write access 'repo:read': >- This application will be able to view and pull all repositories visible to the granting user or robot account 'repo:create': >- This application will be able to create repositories in to any namespaces that the granting user or robot account is allowed to create repositories 'repo:admin': >- This application will have administrator access to all repositories to which the granting user or robot account has access 'org:admin': >- This application will be able to administer your organizations including creating robots, creating teams, adjusting team membership, and changing billing settings. You should have absolute trust in the requesting application before granting this permission. 'user:read': >- This application will be able to read user information such as username and email address. schemas: Robot: type: object description: A robot account properties: token: type: string name: type: string RepositoryBuildRequest: type: object description: Description of a new repository build. properties: docker_tags: minItems: 1 items: type: string uniqueItems: true type: array description: >- The tags to which the built images will be pushed. If none specified, "latest" is used. pull_robot: type: string description: Username of a Quay robot account to use as pull credentials subdirectory: type: string description: Subdirectory in which the Dockerfile can be found file_id: type: string description: The file id that was generated when the build spec was uploaded archive_url: type: string description: The URL of the .tar.gz to build. Must start with "http" or "https". NotificationCreateRequest: required: - event - method - config type: object description: Information for creating a notification on a repository properties: eventConfig: type: object description: JSON config information for the specific event of notification title: type: string description: The human-readable title of the notification config: type: object description: JSON config information for the specific method of notification event: type: string description: The event on which the notification will respond method: type: string description: The method of notification (such as email or web callback) UserPermission: required: - role type: object description: Description of a user permission. properties: role: enum: - read - write - admin type: string description: Role to use for the user NewStarredRepository: required: - namespace - repository type: object properties: namespace: type: string description: Namespace in which the repository belongs repository: type: string description: Repository name MoveTag: required: - image type: object description: Description of to which image a new or existing tag should point properties: image: type: string description: Image identifier to which the tag should point UpdateUser: type: object description: Fields which can be updated in a user. properties: username: type: string description: The user's username invoice_email: type: boolean description: Whether the user desires to receive an invoice email. password: type: string description: The user's password email: type: string description: The user's email address tag_expiration: minimum: 0 type: integer maximum: 2592000 BuildTriggerActivateRequest: required: - config type: object properties: pull_robot: type: string description: The name of the robot that will be used to pull images. config: type: object description: Arbitrary json. UpdateApp: required: - name - redirect_uri - application_uri type: object description: Description of an updated application. properties: redirect_uri: type: string description: The URI for the application's OAuth redirect avatar_email: type: string description: The e-mail address of the avatar to use for the application name: type: string description: The name of the application application_uri: type: string description: The URI for the application's homepage description: type: string description: The human-readable description for the application ChangeVisibility: required: - visibility type: object description: Change the visibility for the repository. properties: visibility: enum: - public - private type: string description: Visibility which the repository will start with TeamDescription: required: - role type: object description: Description of a team properties: role: enum: - member - creator - admin type: string description: Org wide permissions that should apply to the team description: type: string description: Markdown description for the team NewPrototype: required: - role - delegate type: object description: Description of a new prototype properties: activating_user: required: - name type: object description: Repository creating user to whom the rule should apply properties: name: type: string description: The username for the activating_user role: enum: - read - write - admin type: string description: Role that should be applied to the delegate delegate: required: - name - kind type: object description: Information about the user or team to which the rule grants access properties: kind: enum: - user - team type: string description: Whether the delegate is a user or a team name: type: string description: The name for the delegate team or user TokenPermission: required: - role type: object description: Description of a token permission properties: role: enum: - read - write - admin type: string description: Role to use for the token RunParameters: additionalProperties: false type: object description: Optional run parameters for activating the build trigger properties: branch_name: type: string description: '(SCM only) If specified, the name of the branch to build.' refs: type: object description: '(SCM Only) If specified, the ref to build.' commit_sha: type: string description: >- (Custom Only) If specified, the ref/SHA1 used to checkout a git repository. NewRepo: required: - repository - visibility - description type: object description: Description of a new repository properties: namespace: type: string description: >- Namespace in which the repository should be created. If omitted, the username of the caller is used visibility: enum: - public - private type: string description: Visibility which the repository will start with repository: type: string description: Repository name description: type: string description: Markdown encoded description for the repository RevertTag: required: - image type: object description: Reverts a tag to a specific image properties: image: type: string description: Image identifier to which the tag should point UserView: required: - verified - anonymous - avatar type: object description: Describes a user properties: organizations: items: type: object type: array description: Information about the organizations in which the user is a member verified: type: boolean description: Whether the user's email address has been verified avatar: type: object description: Avatar data representing the user's icon anonymous: type: boolean description: true if this user data represents a guest user logins: items: type: object type: array description: >- The list of external login providers against which the user has authenticated can_create_repo: type: boolean description: Whether the user has permission to create repositories preferred_namespace: type: boolean description: 'If true, the user''s namespace is the preferred namespace to display' email: type: string description: The user's email address NewApp: required: - name type: object description: Description of a new organization application. properties: redirect_uri: type: string description: The URI for the application's OAuth redirect avatar_email: type: string description: The e-mail address of the avatar to use for the application name: type: string description: The name of the application application_uri: type: string description: The URI for the application's homepage description: type: string description: The human-readable description for the application UpdateOrg: type: object description: Description of updates for an existing organization properties: invoice_email: type: boolean description: Whether the organization desires to receive emails for invoices email: type: string description: Organization contact email tag_expiration: minimum: 0 type: integer maximum: 2592000 NewToken: required: - friendlyName type: object description: Description of a new token. properties: friendlyName: type: string description: Friendly name to help identify the token NewUser: required: - username - password - email type: object description: Fields which must be specified for a new user. properties: username: type: string description: The user's username password: type: string description: The user's password email: type: string description: The user's email address invite_code: type: string description: The optional invite code RepoUpdate: required: - description type: object description: Fields which can be updated in a repository. properties: description: type: string description: Markdown encoded description for the repository PrototypeUpdate: required: - role type: object description: Description of a the new prototype role properties: role: enum: - read - write - admin type: string description: Role that should be applied to the permission TeamPermission: required: - role type: object description: Description of a team permission. properties: role: enum: - read - write - admin type: string description: Role to use for the team GeneralError: type: object properties: message: type: string