openapi: 3.0.3 info: title: apibuilder api version: 0.0.1-dev description: Host API documentation for applications providing REST APIs, facilitating the design of good resource first APIs. servers: - url: https://api.apibuilder.io paths: /_internal_/healthcheck: get: responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/IoApibuilderGeneratorV0ModelsHealthcheck' /_internal_/migrate: get: responses: '200': description: Successful response content: application/json: schema: type: object additionalProperties: type: string /attributes: get: description: Search all attributes. Results are always paginated. parameters: - name: guid in: query description: Find the watch with this guid. required: false schema: type: string format: uuid - name: name in: query description: Find attributes with this name. Case in-sensitive. Exact match required: false schema: type: string - name: limit in: query description: The number of records to return required: true schema: type: integer format: int64 - name: offset in: query description: Used to paginate. First page of results is 0. required: true schema: type: integer format: int64 responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttribute' post: description: Create a new attribute. requestBody: content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttributeForm' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttribute' '401': description: Unauthorized '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' /attributes/{name}: get: description: Returns the attribute with this name. parameters: - name: name in: path required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttribute' '404': description: Not found delete: description: Deletes the attribute with this name. Only the user who created an attribute can delete it. parameters: - name: name in: path required: true schema: type: string responses: '204': description: No content '401': description: Unauthorized '404': description: Not found /authentications/session/{id}: get: parameters: - name: id in: path required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAuthentication' '404': description: Not found /changes: get: parameters: - name: org_key in: query description: Filter changes to those made for the organization with this key. required: false schema: type: string - name: application_key in: query description: Filter changes to those made for the application with this key. required: false schema: type: string - name: from in: query description: Filter changes to those made from this version. required: false schema: type: string example: 0.1.3 - name: to in: query description: Filter changes to those made to this version. required: false schema: type: string example: 0.1.4 - name: type in: query description: The type of diff to return. required: false schema: type: string example: breaking or non_breaking - name: limit in: query description: The number of records to return required: true schema: type: integer format: int64 - name: offset in: query description: Used to paginate. First page of results is 0. required: true schema: type: integer format: int64 responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsChange' /domains/{orgKey}: post: description: Add a domain to this organization parameters: - name: orgKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsDomain' required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsDomain' '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' /domains/{orgKey}/{name}: delete: description: Remove this domain from this organization parameters: - name: orgKey in: path required: true schema: type: string - name: name in: path required: true schema: type: string responses: '204': description: No content '401': description: Unauthorized '404': description: Not found /email_verification_confirmations: post: description: Validate an email address using a token. requestBody: content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsEmailVerificationConfirmationForm' required: true responses: '204': description: No content '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' /generator_services: get: description: List all generator services parameters: - name: guid in: query required: false schema: type: string format: uuid - name: uri in: query required: false schema: type: string - name: generator_key in: query required: false schema: type: string - name: limit in: query description: The number of records to return required: true schema: type: integer format: int64 - name: offset in: query description: Used to paginate. First page of results is 0. required: true schema: type: integer format: int64 responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsGeneratorService' post: requestBody: content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsGeneratorServiceForm' required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsGeneratorService' '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' /generator_services/{guid}: get: parameters: - name: guid in: path required: true schema: type: string format: uuid responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsGeneratorService' '404': description: Not found delete: description: Deletes a generator service. parameters: - name: guid in: path required: true schema: type: string format: uuid responses: '204': description: No content '401': description: Unauthorized '404': description: Not found /generators: get: description: List all available generators parameters: - name: guid in: query description: Filter to generator with this guid required: false schema: type: string format: uuid - name: service_guid in: query description: Filter to generator from this service required: false schema: type: string format: uuid - name: service_uri in: query description: Filter to generator from this service URI required: false schema: type: string - name: attribute_name in: query description: Filter to generators that use this attribute required: false schema: type: string - name: key in: query description: Filter to generator with this key required: false schema: type: string - name: limit in: query description: The number of records to return required: true schema: type: integer format: int64 - name: offset in: query description: Used to paginate. First page of results is 0. required: true schema: type: integer format: int64 responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsGeneratorWithService' /generators/{key}: get: parameters: - name: key in: path required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsGeneratorWithService' '404': description: Not found /items: get: parameters: - name: q in: query description: The search query. At the moment, we do case insensitive exact match search. required: false schema: type: string - name: limit in: query description: The number of records to return required: true schema: type: integer format: int64 - name: offset in: query description: Used to paginate. First page of results is 0. required: true schema: type: integer format: int64 responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsItem' /items/{guid}: get: parameters: - name: guid in: path required: true schema: type: string format: uuid responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsItem' '404': description: Not found /membership_requests: get: description: Search all membership requests. Results are always paginated. parameters: - name: org_guid in: query required: false schema: type: string format: uuid - name: org_key in: query required: false schema: type: string - name: user_guid in: query required: false schema: type: string format: uuid - name: role in: query required: false schema: type: string - name: limit in: query description: The number of records to return required: true schema: type: integer format: int64 - name: offset in: query description: Used to paginate. First page of results is 0. required: true schema: type: integer format: int64 responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsMembershipRequest' post: description: Create a membership request requestBody: content: application/x-www-form-urlencoded: schema: type: object required: - org_guid - user_guid - role properties: org_guid: type: string format: uuid user_guid: type: string format: uuid role: type: string required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsMembershipRequest' '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' /membership_requests/{guid}/accept: post: description: Accepts this membership request. User will become a member of the specified organization. parameters: - name: guid in: path required: true schema: type: string format: uuid responses: '204': description: No content '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' /membership_requests/{guid}/decline: post: description: Declines this membership request. User will NOT become a member of the specified organization. parameters: - name: guid in: path required: true schema: type: string format: uuid responses: '204': description: No content '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' /memberships: get: description: Search all memberships. Results are always paginated. parameters: - name: org_guid in: query required: false schema: type: string format: uuid - name: org_key in: query required: false schema: type: string - name: user_guid in: query required: false schema: type: string format: uuid - name: role in: query required: false schema: type: string - name: limit in: query description: The number of records to return required: true schema: type: integer format: int64 - name: offset in: query description: Used to paginate. First page of results is 0. required: true schema: type: integer format: int64 responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsMembership' /memberships/{guid}: get: parameters: - name: guid in: path required: true schema: type: string format: uuid responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsMembership' '404': description: Not found delete: parameters: - name: guid in: path required: true schema: type: string format: uuid responses: '204': description: No content '401': description: Unauthorized '404': description: Not found /organizations: get: description: Search all organizations. Results are always paginated. parameters: - name: guid in: query description: Finds the organization with this guid, if any required: false schema: type: string format: uuid - name: user_guid in: query description: If specified, restricts to organizations that this user is specifically a member of (e.g. will exclude public organizations with which the user does not have a direct membership). required: false schema: type: string format: uuid - name: key in: query description: Find organizations with this key. Case in-sensitive. Exact match required: false schema: type: string - name: name in: query description: Find organizations with this name. Case in-sensitive. Exact match required: false schema: type: string - name: namespace in: query description: Find organizations with this namespace. Case in-sensitive. Exact match required: false schema: type: string - name: limit in: query description: The number of records to return required: true schema: type: integer format: int64 - name: offset in: query description: Used to paginate. First page of results is 0. required: true schema: type: integer format: int64 responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsOrganization' post: description: Create a new organization. requestBody: content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsOrganizationForm' required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsOrganization' '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' /organizations/{key}: get: description: Returns the organization with this key. parameters: - name: key in: path required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsOrganization' '404': description: Not found put: description: Update an organization. parameters: - name: key in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsOrganizationForm' required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsOrganization' '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' delete: description: Deletes an organization and all of its associated applications. parameters: - name: key in: path required: true schema: type: string responses: '204': description: No content '401': description: Unauthorized '404': description: Not found /organizations/{key}/attributes: get: description: Returns all attribute values for this organization. Results are always paginated. parameters: - name: key in: path required: true schema: type: string - name: name in: query description: Find the values for the attribute with this name. required: false schema: type: string - name: limit in: query description: The number of records to return required: true schema: type: integer format: int64 - name: offset in: query description: Used to paginate. First page of results is 0. required: true schema: type: integer format: int64 responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttributeValue' /organizations/{key}/attributes/{name}: get: description: Returns the attribute value with this name. parameters: - name: key in: path required: true schema: type: string - name: name in: path required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttributeValue' '404': description: Not found put: description: Create or update a new attribute value. parameters: - name: key in: path required: true schema: type: string - name: name in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttributeValueForm' required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttributeValue' '201': description: Created content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttributeValue' '404': description: Not found '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' delete: description: Deletes the attribute value with the specified name. Only the user who created an attribute value can delete it. parameters: - name: key in: path required: true schema: type: string - name: name in: path required: true schema: type: string responses: '204': description: No content '401': description: Unauthorized '404': description: Not found /password_reset_requests: post: description: Create a new password reset. This will send the user an email with a link to reset their password. requestBody: content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsPasswordResetRequest' required: true responses: '204': description: No content '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' /password_resets: post: description: Change the password for this token. If the token is invalid, has been used, or otherwise no longer can be applied, errors will be returned as 409s. A 204 represents that the user has successfully changed their password. requestBody: content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsPasswordReset' required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAuthentication' '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' /subscriptions: get: description: Search subscriptions. Always paginated. parameters: - name: guid in: query description: Find the subscription with this guid. required: false schema: type: string format: uuid - name: organization_key in: query description: Find subscriptions for this organization. required: false schema: type: string - name: user_guid in: query description: Find subscriptions for this user. required: false schema: type: string format: uuid - name: publication in: query description: Find subscriptions for this publication. required: false schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0EnumsPublication' - name: limit in: query description: The number of records to return required: true schema: type: integer format: int64 - name: offset in: query description: Used to paginate. First page of results is 0. required: true schema: type: integer format: int64 responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsSubscription' post: description: Create a new subscription. requestBody: content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsSubscriptionForm' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsSubscription' '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' /subscriptions/{guid}: get: description: Returns information about a specific subscription. parameters: - name: guid in: path required: true schema: type: string format: uuid responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsSubscription' '404': description: Not found delete: parameters: - name: guid in: path required: true schema: type: string format: uuid responses: '204': description: No content '401': description: Unauthorized '404': description: Not found /tokens: post: description: Create a new API token for this user requestBody: content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsTokenForm' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsToken' '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' /tokens/users/{user_guid}: get: parameters: - name: user_guid in: path required: true schema: type: string format: uuid - name: guid in: query required: false schema: type: string format: uuid - name: limit in: query description: The number of records to return required: true schema: type: integer format: int64 - name: offset in: query description: Used to paginate. First page of results is 0. required: true schema: type: integer format: int64 responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsToken' /tokens/{guid}: delete: parameters: - name: guid in: path required: true schema: type: string format: uuid responses: '204': description: No content '401': description: Unauthorized '404': description: Not found /tokens/{guid}/cleartext: get: description: Used to fetch the clear text token. parameters: - name: guid in: path required: true schema: type: string format: uuid responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsCleartextToken' '404': description: Not found /users: get: description: Search for a specific user. You must specify at least 1 parameter - either a guid, email or token - and will receive back either 0 or 1 users. parameters: - name: guid in: query description: Find user with this guid. Exact match required: false schema: type: string format: uuid - name: email in: query description: Find user with this email address. Case in-sensitive. Exact match required: false schema: type: string - name: nickname in: query description: Find user with the specified nickname. For users that register via GitHub, this will be their GitHub username. Case in-sensitive. Exact match required: false schema: type: string - name: token in: query description: Find the user with this API token. Exact match required: false schema: type: string responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsUser' post: description: Create a new user. requestBody: content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsUserForm' required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsUser' '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' /users/authenticate: post: description: Used to authenticate a user with an email address and password. Successful authentication returns an instance of the user model. Failed authorizations of any kind are returned as a generic error with code user_authorization_failed. requestBody: content: application/x-www-form-urlencoded: schema: type: object required: - email - password properties: email: type: string password: type: string required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAuthentication' '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' /users/authenticate_github: post: description: 'Used to authenticate a user using a github access token. This is equivalent to running the following command to get the user info: curl -H ''Authorization: Bearer code'' https://api.github.com/user' requestBody: content: application/x-www-form-urlencoded: schema: type: object required: - token properties: token: type: string required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAuthentication' '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' /users/{guid}: get: description: Returns information about the user with this guid. parameters: - name: guid in: path required: true schema: type: string format: uuid responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsUser' '404': description: Not found put: description: Updates information about the user with the specified guid. parameters: - name: guid in: path required: true schema: type: string format: uuid requestBody: content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsUserUpdateForm' required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsUser' '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' /validations: post: requestBody: content: application/json: schema: type: string required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsValidation' /watches: get: description: Search attributes. Always paginated. parameters: - name: guid in: query description: Find the watch with this guid. required: false schema: type: string format: uuid - name: user_guid in: query description: Find attributes for this user. required: false schema: type: string format: uuid - name: organization_key in: query description: Find attributes for this organization. required: false schema: type: string - name: application_key in: query description: Find attributes for this application. required: false schema: type: string - name: limit in: query description: The number of records to return required: true schema: type: integer format: int64 - name: offset in: query description: Used to paginate. First page of results is 0. required: true schema: type: integer format: int64 responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsWatch' post: description: Create a new watch. requestBody: content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsWatchForm' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsWatch' '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' /watches/check: get: description: Quick check if a user is watching a specific application. parameters: - name: user_guid in: query description: The user for which we are checking. API returns false if the user guid is not provided required: false schema: type: string format: uuid - name: organization_key in: query required: true schema: type: string - name: application_key in: query required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: type: boolean /watches/{guid}: get: description: Returns information about a specific watch. parameters: - name: guid in: path required: true schema: type: string format: uuid responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsWatch' '404': description: Not found delete: parameters: - name: guid in: path required: true schema: type: string format: uuid responses: '204': description: No content '401': description: Unauthorized '404': description: Not found /{orgKey}: get: description: Search all applications. Results are always paginated. parameters: - name: orgKey in: path description: The organization key for which to search applications required: true schema: type: string - name: name in: query description: The name of an application. Case in-sensitive. Exact match required: false schema: type: string - name: guid in: query description: The guid of an application. Exact match required: false schema: type: string format: uuid - name: key in: query description: The key of an application. Case in-sensitive. Exact match required: false schema: type: string - name: has_version in: query description: If true, we return applications that have at least one version. If false, we return applications that have no versions in the system required: false schema: type: boolean - name: limit in: query description: The number of records to return required: true schema: type: integer format: int64 - name: offset in: query description: Used to paginate. First page of results is 0. required: true schema: type: integer format: int64 - name: sort_by in: query required: false schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0EnumsAppSortBy' - name: order in: query required: false schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0EnumsSortOrder' responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsApplication' post: description: Create an application. parameters: - name: orgKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsApplicationForm' required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsApplication' '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' /{orgKey}/metadata/{applicationKey}/versions: get: description: Returns the versions assocoated with the specified application. The latest version is the first result returned. parameters: - name: orgKey in: path required: true schema: type: string - name: applicationKey in: path required: true schema: type: string - name: limit in: query description: The number of records to return required: true schema: type: integer format: int64 - name: offset in: query description: Used to paginate. First page of results is 0. required: true schema: type: integer format: int64 responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsApplicationMetadataVersion' '401': description: Unauthorized '404': description: Not found /{orgKey}/metadata/{applicationKey}/versions/latest.txt: get: description: Returns the latest version number as a string parameters: - name: orgKey in: path required: true schema: type: string - name: applicationKey in: path required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: type: string '401': description: Unauthorized '404': description: Not found /{orgKey}/{applicationKey}: get: description: Search all versions of this application. Results are always paginated. parameters: - name: orgKey in: path description: The organization key for which to search versions required: true schema: type: string - name: applicationKey in: path description: The application key for which to search versions required: true schema: type: string - name: limit in: query description: The number of records to return required: true schema: type: integer format: int64 - name: offset in: query description: Used to paginate. First page of results is 0. required: true schema: type: integer format: int64 responses: '200': description: Successful response content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsVersion' put: description: Updates an application. parameters: - name: orgKey in: path required: true schema: type: string - name: applicationKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsApplicationForm' required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsApplication' '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' post: description: Create a new version for an application parameters: - name: orgKey in: path required: true schema: type: string - name: version in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsVersionForm' required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsVersion' '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' delete: description: Deletes a specific application and its associated versions. parameters: - name: orgKey in: path required: true schema: type: string - name: applicationKey in: path required: true schema: type: string responses: '204': description: No content '401': description: Unauthorized '404': description: Not found /{orgKey}/{applicationKey}/move: post: description: Moves application to a new organization. parameters: - name: orgKey in: path required: true schema: type: string - name: applicationKey in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsMoveForm' required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsApplication' '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' /{orgKey}/{applicationKey}/{version}: get: description: Retrieve a specific version of an application. parameters: - name: orgKey in: path required: true schema: type: string - name: applicationKey in: path required: true schema: type: string - name: version in: path description: The version of tthis application to download, or the keyword latest to get the latest version required: true schema: type: string example: latest responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsVersion' '404': description: Not found put: description: Upsert a version of an application parameters: - name: orgKey in: path required: true schema: type: string - name: applicationKey in: path required: true schema: type: string - name: version in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsVersionForm' required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsVersion' '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' delete: description: Deletes a specific version. parameters: - name: orgKey in: path required: true schema: type: string - name: applicationKey in: path required: true schema: type: string - name: version in: path required: true schema: type: string responses: '204': description: No content '401': description: Unauthorized '404': description: Not found /{orgKey}/{applicationKey}/{version}/example/{type_name}: get: description: Generates an example JSON document of the type with the specified name. parameters: - name: orgKey in: path required: true schema: type: string - name: applicationKey in: path required: true schema: type: string - name: version in: path description: The version of this application to download, or the keyword latest to get the latest version required: true schema: type: string example: latest - name: type_name in: path description: The name of the type (e.g. model name) for which you would like to generate a sample json document required: true schema: type: string - name: sub_type_name in: query description: The name of the sub-type for which you would like to generate a sample json document, e.g. a specific type of a union required: false schema: type: string - name: optional_fields in: query description: If true, we generate sample data for all optional fields. Otherwise the generated sample will contain only required fields, where applicable required: false schema: type: boolean responses: '200': description: Successful response content: application/json: schema: type: object additionalProperties: true '404': description: Not found /{orgKey}/{applicationKey}/{version}/form: post: description: Create an invocation form. This is useful primarily for debugging when you want to see exactly what content is being forwarded to the generator parameters: - name: orgKey in: path required: true schema: type: string - name: applicationKey in: path required: true schema: type: string - name: version in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsCodeForm' required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/IoApibuilderGeneratorV0ModelsInvocationForm' '409': description: Conflict content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' /{orgKey}/{applicationKey}/{version}/{generatorKey}: get: description: Generate code for a specific version of an application. parameters: - name: orgKey in: path description: The organization key for which to generate code required: true schema: type: string - name: applicationKey in: path description: The application key for which to generate code required: true schema: type: string - name: version in: path description: The version of this application. Can be 'latest' required: true schema: type: string - name: generatorKey in: path description: The key of the generator to invoke required: true schema: type: string responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsCode' '409': description: If the target, version, and/or generator are invalid. content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' post: description: Generate code for a specific version of an application. parameters: - name: orgKey in: path description: The organization key for which to generate code required: true schema: type: string - name: applicationKey in: path description: The application key for which to generate code required: true schema: type: string - name: version in: path description: The version of this application. Can be 'latest' required: true schema: type: string - name: generatorKey in: path description: The key of the generator to invoke required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsCodeForm' required: true responses: '200': description: Successful response content: application/json: schema: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsCode' '409': description: If the target, version, and/or generator are invalid. content: application/json: schema: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsError' components: schemas: IoApibuilderCommonV0ModelsAudit: type: object required: - created_at - created_by - updated_at - updated_by properties: created_at: type: string format: date-time created_by: $ref: '#/components/schemas/IoApibuilderCommonV0ModelsReferenceGuid' updated_at: type: string format: date-time updated_by: $ref: '#/components/schemas/IoApibuilderCommonV0ModelsReferenceGuid' IoApibuilderCommonV0ModelsReferenceGuid: type: object required: - guid properties: guid: type: string format: uuid IoApibuilderCommonV0ModelsReference: description: Represents a reference to another model. type: object required: - guid - key properties: guid: type: string format: uuid key: type: string IoApibuilderGeneratorV0ModelsAttribute: description: An attribute represents a key/value pair that is optionally used to provide additional instructions / data to the code generator. An example could be an attribute to specify the root import path for a go client.. type: object required: - name - value properties: name: type: string value: type: string IoApibuilderGeneratorV0ModelsInvocationForm: description: The invocation form is the payload send to the code generators when requesting generation of client code. type: object required: - service - attributes properties: service: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsService' attributes: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttribute' user_agent: type: string imported_services: type: array items: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsService' IoApibuilderGeneratorV0ModelsGenerator: description: The generator metadata. type: object required: - key - name - attributes properties: key: type: string name: type: string language: description: A comma separate list of the programming language(s) that this generator produces example: scala type: string description: type: string attributes: description: The list of attributes that this code generator can use. You can find the full list of available attributes and their descriptions at http://apibuilder.io/doc/attributes type: array items: type: string IoApibuilderGeneratorV0ModelsFile: description: Represents a source file type: object required: - name - contents properties: name: description: The recommended name for the file. example: ApiCollectiveApiBuilderApiClient.scala type: string dir: description: The recommended directory path for the file where appropriate. example: io/apicollective/apibuilder type: string contents: description: The actual source code. type: string flags: type: array items: $ref: '#/components/schemas/IoApibuilderGeneratorV0EnumsFileFlag' IoApibuilderGeneratorV0ModelsHealthcheck: type: object required: - status properties: status: example: healthy type: string IoApibuilderSpecV0ModelsBody: type: object required: - type - attributes properties: type: type: string description: type: string deprecation: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation' attributes: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttribute' IoApibuilderSpecV0ModelsModel: type: object required: - name - plural - fields - attributes - interfaces properties: name: type: string plural: type: string description: type: string deprecation: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation' fields: type: array items: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsField' attributes: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttribute' interfaces: type: array items: type: string IoApibuilderSpecV0ModelsDeprecation: description: Indicates that this particular element is considered deprecated in the API. See the description for details type: object properties: description: type: string IoApibuilderSpecV0ModelsField: type: object required: - name - type - required - attributes - annotations properties: name: type: string type: type: string description: type: string deprecation: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation' default: type: string required: type: boolean minimum: type: integer format: int64 maximum: type: integer format: int64 example: type: string attributes: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttribute' annotations: type: array items: type: string IoApibuilderSpecV0ModelsUnion: type: object required: - name - plural - types - attributes - interfaces properties: name: type: string plural: type: string discriminator: description: If a type discriminator is provided, serialization of these union types will always contain a field named with the value of the discriminator that will contain the name of the type. This provides a simpler (for many use cases) JSON serialization/deserialization mechanism. When specified, apibuilder itself will verify that none of the types in the union type itself contain a field with the same name as the discriminator example: discriminator or type type: string description: type: string deprecation: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation' types: description: The names of the types that make up this union type type: array minItems: 1 items: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsUnionType' attributes: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttribute' interfaces: type: array items: type: string IoApibuilderSpecV0ModelsAnnotation: description: Used to indicate an API concern for a field that is specific to the field's usage but not necessarily its data type. For example, you might use annotations to mark that certain fields contain PII or PCI data and thus should not be stored once processing is complete. Annotations communicate meaning to consumers of an API and may also be used within an implementation or tooling; for example, using static analysis tools to detect logging of sensitive data. type: object required: - name properties: name: type: string description: type: string deprecation: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation' IoApibuilderSpecV0ModelsHeader: type: object required: - name - type - required - attributes properties: name: type: string type: type: string description: type: string deprecation: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation' required: type: boolean default: type: string attributes: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttribute' IoApibuilderSpecV0ModelsOperation: type: object required: - method - path - parameters - responses - attributes properties: method: $ref: '#/components/schemas/IoApibuilderSpecV0EnumsMethod' path: description: The full path to this operation, relative to the service's base url. type: string description: type: string deprecation: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation' body: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsBody' parameters: type: array items: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsParameter' responses: type: array items: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsResponse' attributes: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttribute' IoApibuilderSpecV0ModelsOrganization: type: object required: - key properties: key: description: Unique key identifying the organization that owns this service type: string IoApibuilderSpecV0ModelsEnumValue: type: object required: - name - attributes properties: name: type: string description: type: string deprecation: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation' attributes: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttribute' value: description: The actual string representation of this value. If not specified, defaults to 'name' type: string IoApibuilderSpecV0ModelsService: type: object required: - name - organization - application - namespace - version - info - headers - imports - enums - interfaces - unions - models - resources - attributes - annotations properties: apidoc: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsApidoc' description: Documents that this is an apibuilder document, noting the specific version used. Internally the version is then used for backwards compatibility when applicable as new features are added to apibuilder. Note naming refers to the original name of this project, 'apidoc', and is left here to avoid a breaking change for preexisting services. deprecated: true name: type: string organization: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsOrganization' application: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsApplication' namespace: description: Fully qualified namespace for this service example: io.apibuilder type: string version: example: 1.0.0 type: string base_url: type: string description: type: string info: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsInfo' headers: type: array items: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsHeader' imports: type: array items: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsImport' enums: type: array items: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsEnum' interfaces: type: array items: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsInterface' unions: type: array items: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsUnion' models: type: array items: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsModel' resources: type: array items: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsResource' attributes: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttribute' annotations: type: array items: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsAnnotation' IoApibuilderSpecV0ModelsResource: type: object required: - type - plural - operations - attributes properties: type: description: The type of this resource will map to a defined model, enum, or union type type: string plural: type: string path: description: The path to this specific resource. This was added in 2016 to help us differentiate between the resource path and the operation path which can be helpful when, for example, generating method names for operations. This field is optional as some of our input formats (e.g. swagger) do not explicitly differentiate resoure paths. type: string description: type: string deprecation: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation' operations: type: array items: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsOperation' attributes: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttribute' IoApibuilderSpecV0ModelsEnum: type: object required: - name - plural - values - attributes properties: name: type: string plural: type: string description: type: string deprecation: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation' values: type: array items: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsEnumValue' attributes: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttribute' IoApibuilderSpecV0ModelsLicense: description: Describes the software license contact for this service type: object required: - name properties: name: example: MIT type: string url: example: http://opensource.org/licenses/MIT type: string IoApibuilderSpecV0ModelsApidoc: type: object required: - version properties: version: example: 1.0.3 type: string IoApibuilderSpecV0ModelsImport: description: An import is used to declare a dependency on another application. This allows you to reference the models and or enums from that application in your own app. type: object required: - uri - namespace - organization - application - version - enums - interfaces - unions - models - annotations properties: uri: description: Full URI to the service.json file of the service we are importing example: https://www.apibuilder.io/apicollective/apibuilder-spec/0.7.38/service.json type: string namespace: description: the fully qualified namespace that we have imported example: io.apibuilder type: string organization: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsOrganization' application: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsApplication' version: description: The version of the service that we are importing example: 1.0.0 type: string enums: description: Enums made available by this import type: array items: type: string interfaces: description: Interfaces made available by this import type: array items: type: string unions: description: Unions made available by this import type: array items: type: string models: description: Models made available by this import type: array items: type: string annotations: description: Annotations made available by this import type: array items: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsAnnotation' IoApibuilderSpecV0ModelsUnionType: description: Metadata about one of the types that is part of a union type type: object required: - type - attributes properties: type: description: The name of a type (a primitive, model name, or enum name) that makes up this union type type: string description: type: string deprecation: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation' fields: type: array items: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsField' attributes: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttribute' default: description: If true, indicates that this type should be used as the default when deserializing union types. This field is only used by union types that require a discriminator and sets the default value for that discriminator during deserialization. type: boolean discriminator_value: description: The discriminator value defines the string to use in the discriminator field to identify this type. If not specified, the discriminator value will default to the name of the type itself. type: string IoApibuilderSpecV0ModelsResponse: type: object required: - code - type properties: code: $ref: '#/components/schemas/IoApibuilderSpecV0UnionsResponseCode' type: type: string headers: type: array items: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsHeader' description: type: string deprecation: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation' attributes: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttribute' IoApibuilderSpecV0ModelsAttribute: description: Represents an additional attribute that is attached to one of the objects in apibuilder. The main use case is to capture additional metadata that doesn't necessarily define the API but aids in code generation. Examples would be hints for certain code generators about classes to extend, interfaces to implement, annotations to add, names to assign to certain methods, etc. The specific attributes will be applicable only in the context of the specific code generators usings them. type: object required: - name - value properties: name: type: string value: type: object additionalProperties: true description: type: string deprecation: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation' IoApibuilderSpecV0ModelsParameter: type: object required: - name - type - location - required properties: name: type: string type: type: string location: $ref: '#/components/schemas/IoApibuilderSpecV0EnumsParameterLocation' description: type: string deprecation: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation' required: type: boolean default: type: string minimum: type: integer format: int64 maximum: type: integer format: int64 example: type: string attributes: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttribute' IoApibuilderSpecV0ModelsInfo: description: General metadata about this service type: object properties: license: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsLicense' contact: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsContact' IoApibuilderSpecV0ModelsApplication: type: object required: - key properties: key: description: Unique key identifying this application type: string IoApibuilderSpecV0ModelsContact: description: Describes the primary contact for this service type: object properties: name: example: Michael Bryzek type: string url: example: https://www.apibuilder.io type: string email: example: michael@test.apibuilder.io type: string IoApibuilderSpecV0ModelsInterface: type: object required: - name - plural - fields - attributes properties: name: type: string plural: type: string description: type: string deprecation: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsDeprecation' fields: type: array items: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsField' attributes: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttribute' ComAfrosoftApibuilderApiV0ModelsMoveForm: type: object required: - org_key properties: org_key: description: The key of the organization to which we are moving this item type: string ComAfrosoftApibuilderApiV0ModelsApplicationSummary: description: Summary of an application sufficient for display and links type: object required: - guid - organization - key properties: guid: type: string format: uuid organization: $ref: '#/components/schemas/IoApibuilderCommonV0ModelsReference' key: type: string ComAfrosoftApibuilderApiV0ModelsCode: description: Generated source code. type: object required: - generator - source - files properties: generator: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsGeneratorWithService' source: description: The actual source code. deprecated: true type: string files: description: A collection of source files type: array items: $ref: '#/components/schemas/IoApibuilderGeneratorV0ModelsFile' ComAfrosoftApibuilderApiV0ModelsAttributeSummary: type: object required: - guid - name properties: guid: description: Internal unique identifier for this attribute. type: string format: uuid name: description: The name of the attribute. Globally unique and an 'identifier' (lower case, url safe, etc.) type: string ComAfrosoftApibuilderApiV0ModelsValidation: description: Used only to validate json files - used as a resource where http status code defines success type: object required: - valid - errors properties: valid: description: If true, the json schema is valid. If false, there is at least one validation error. type: boolean errors: description: Contains any validation errors that result from parsing the json document. If empty, the document is valid. type: array items: type: string ComAfrosoftApibuilderApiV0ModelsSubscription: description: Represents a user that is currently subscribed to a publication type: object required: - guid - organization - user - publication - audit properties: guid: description: Internal unique identifier for this subscription record type: string format: uuid organization: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsOrganization' user: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsUser' publication: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0EnumsPublication' audit: $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit' ComAfrosoftApibuilderApiV0ModelsVersion: description: Represents a unique version of the application. type: object required: - guid - organization - application - version - service - audit properties: guid: description: Internal unique identifier for this version. type: string format: uuid organization: $ref: '#/components/schemas/IoApibuilderCommonV0ModelsReference' application: $ref: '#/components/schemas/IoApibuilderCommonV0ModelsReference' version: description: The tag for this version. Can be anything, but if semver style version number is used, we automatically correctly sort by version number to find latest. Otherwise latest version is considered to be the most recently created. example: 1.0.0 type: string original: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsOriginal' description: The original uploaded file describing this version, if available service: $ref: '#/components/schemas/IoApibuilderSpecV0ModelsService' description: spec/spec.json description of this API audit: $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit' ComAfrosoftApibuilderApiV0ModelsUserSummary: description: Summary of a user sufficient for display type: object required: - guid - nickname properties: guid: type: string format: uuid nickname: type: string ComAfrosoftApibuilderApiV0ModelsEmailVerificationConfirmationForm: description: Data used to confirm an email address. The token is an internal unique identifier used to lookup the specific email address and user account for which we sent an email verification email. type: object required: - token properties: token: type: string ComAfrosoftApibuilderApiV0ModelsPasswordReset: description: Allows a user to change their password with authentication from a token. type: object required: - token - password properties: token: description: Unique one time use token to change a password type: string password: type: string ComAfrosoftApibuilderApiV0ModelsWatchForm: type: object required: - user_guid - organization_key - application_key properties: user_guid: type: string format: uuid organization_key: type: string application_key: type: string ComAfrosoftApibuilderApiV0ModelsGeneratorServiceForm: type: object required: - uri properties: uri: type: string ComAfrosoftApibuilderApiV0ModelsOrganizationForm: type: object required: - name - namespace - visibility properties: name: type: string key: description: Defaults to a url friendy version of the name type: string namespace: description: Global namespace for this organization. example: io.apicollective type: string visibility: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0EnumsVisibility' description: Public organizations will be listed in apibuilder directory. Organizations with visibility organization will only be visible to members of that org. domains: example: apibuilder.io type: array items: type: string ComAfrosoftApibuilderApiV0ModelsGeneratorWithService: description: Wraps a service and a generator providing easier access for applications. type: object required: - service - generator properties: service: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsGeneratorService' generator: $ref: '#/components/schemas/IoApibuilderGeneratorV0ModelsGenerator' ComAfrosoftApibuilderApiV0ModelsAttributeValue: description: Attribute values can be set at different levels. Initially we support setting organization wide attributes, but in the future plan to support setting attribute values with each version of the application. type: object required: - guid - attribute - value - audit properties: guid: description: Internal unique identifier for this attribute value. type: string format: uuid attribute: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsAttributeSummary' value: type: string audit: $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit' ComAfrosoftApibuilderApiV0ModelsCleartextToken: description: Separate resource used only for the few actions that require the full token. type: object required: - token properties: token: description: The actual token. Guaranteed to be globally unique. type: string ComAfrosoftApibuilderApiV0ModelsAuthentication: description: Represents the result of a successful authorization type: object required: - user - session properties: user: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsUser' session: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsSession' ComAfrosoftApibuilderApiV0ModelsChange: description: Represents a single change from one version of a service to another type: object required: - guid - organization - application - from_version - to_version - diff - changed_at - changed_by - audit properties: guid: type: string format: uuid organization: $ref: '#/components/schemas/IoApibuilderCommonV0ModelsReference' application: $ref: '#/components/schemas/IoApibuilderCommonV0ModelsReference' from_version: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsChangeVersion' to_version: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsChangeVersion' diff: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0UnionsDiff' changed_at: description: Records the timestamp of when the actual change occurred (vs. when we created the changed record) type: string format: date-time changed_by: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsUserSummary' description: Records who made the actual change audit: $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit' ComAfrosoftApibuilderApiV0ModelsTokenForm: type: object required: - user_guid properties: user_guid: description: The user for which we are creating the token. type: string format: uuid description: type: string ComAfrosoftApibuilderApiV0ModelsToken: description: A token gives a user access to the API. type: object required: - guid - user - masked_token - audit properties: guid: description: Internal unique identifier for this token. type: string format: uuid user: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsUser' description: The user to which this token belongs. masked_token: description: The masked from of the token. type: string description: description: optional description to help the user manage the token. type: string audit: $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit' ComAfrosoftApibuilderApiV0ModelsApplication: description: An application has a name and multiple versions of its API. type: object required: - guid - organization - name - key - visibility - last_updated_at - audit properties: guid: description: Internal unique identifier for this application. type: string format: uuid organization: $ref: '#/components/schemas/IoApibuilderCommonV0ModelsReference' name: description: The unique name for this application. type: string key: description: Used as a unique key in the URL path. Key is automatically derived from the application name. type: string visibility: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0EnumsVisibility' description: Controls who is able to view this application description: type: string last_updated_at: description: The updated_at of this application or created_at of it's latest version type: string format: date-time audit: $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit' ComAfrosoftApibuilderApiV0ModelsOriginal: description: Represents the original input used to create an application version type: object required: - type - data properties: type: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0EnumsOriginalType' data: type: string ComAfrosoftApibuilderApiV0ModelsError: type: object required: - code - message properties: code: description: Machine readable code for this specific error message type: string message: description: Description of the error type: string ComAfrosoftApibuilderApiV0ModelsChangeVersion: description: Represents a simpler model of a version specifically for the use case of displaying changes type: object required: - guid - version properties: guid: type: string format: uuid version: type: string ComAfrosoftApibuilderApiV0ModelsPasswordResetRequest: description: Create a password reset request - e.g. an email containing a one time URL to change a password type: object required: - email properties: email: description: The email address for which we generate the password reset. type: string ComAfrosoftApibuilderApiV0ModelsItem: description: When searching for content, the results of the search will be a list of items. Each item will have enough information to render for the user, including a type and item_guid to enable creating the appropriate link. type: object required: - guid - detail - label properties: guid: description: Unique identifer for this item. By using a UUID, you can combine with the type to figure out the URI for the resource type: string format: uuid detail: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0UnionsItemDetail' label: type: string description: type: string ComAfrosoftApibuilderApiV0ModelsUserUpdateForm: type: object required: - email - nickname properties: email: type: string nickname: type: string name: type: string ComAfrosoftApibuilderApiV0ModelsDiffNonBreaking: description: Represents a single NON breaking diff of an application version. type: object required: - description properties: description: example: name diffd from foo to bar type: string ComAfrosoftApibuilderApiV0ModelsGeneratorForm: type: object required: - service_guid - generator properties: service_guid: type: string format: uuid generator: $ref: '#/components/schemas/IoApibuilderGeneratorV0ModelsGenerator' ComAfrosoftApibuilderApiV0ModelsApplicationForm: type: object required: - name - visibility properties: name: type: string key: description: Defaults to a key generated from the application name type: string description: type: string visibility: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0EnumsVisibility' ComAfrosoftApibuilderApiV0ModelsOriginalForm: type: object required: - data properties: type: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0EnumsOriginalType' description: If not specified, we set the type by inspecting the data data: type: string ComAfrosoftApibuilderApiV0ModelsCodeForm: type: object required: - attributes properties: attributes: type: array items: $ref: '#/components/schemas/IoApibuilderGeneratorV0ModelsAttribute' ComAfrosoftApibuilderApiV0ModelsGeneratorService: description: Defines a service that provides one or more code generators type: object required: - guid - uri - audit properties: guid: type: string format: uuid uri: type: string audit: $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit' ComAfrosoftApibuilderApiV0ModelsUserForm: type: object required: - email - password properties: email: type: string password: type: string nickname: description: Defaults to a unique identifier based on email address type: string name: type: string ComAfrosoftApibuilderApiV0ModelsAttributeForm: type: object required: - name properties: name: type: string description: type: string ComAfrosoftApibuilderApiV0ModelsMembership: description: A membership represents a user in a specific role to an organization. Memberships cannot be created directly. Instead you first create a membership request, then that request is either accepted or declined. type: object required: - guid - user - organization - role - audit properties: guid: description: Internal unique identifier for this membership. type: string format: uuid user: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsUser' organization: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsOrganization' role: description: The role this user plays for this organization. Typically member or admin. example: member type: string audit: $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit' ComAfrosoftApibuilderApiV0ModelsSubscriptionForm: type: object required: - organization_key - user_guid - publication properties: organization_key: type: string user_guid: type: string format: uuid publication: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0EnumsPublication' ComAfrosoftApibuilderApiV0ModelsApplicationMetadataVersion: description: Describes the versions associated with a given application type: object required: - version properties: version: example: 0.2.5 type: string ComAfrosoftApibuilderApiV0ModelsAttribute: description: Attributes are globally unique key which allow users to specify additional content to pass in to the code generators. type: object required: - guid - name - audit properties: guid: description: Internal unique identifier for this attribute. type: string format: uuid name: description: The name of the attribute. Globally unique and an 'identifier' (lower case, url safe, etc.) type: string description: description: Optional description - a good description here will indicate which code generators it applies to and what effect it will have on those code generators. type: string audit: $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit' ComAfrosoftApibuilderApiV0ModelsMembershipRequest: description: A membership request represents a user requesting to join an organization with a specific role (e.g. as a member or an admin). Membership requests can be reviewed by any current admin of the organization who can either accept or decline the request. type: object required: - guid - user - organization - role - audit properties: guid: description: Internal unique identifier for this membership request. type: string format: uuid user: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsUser' organization: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsOrganization' role: description: The requested role for membership to this organization. Typically member or admin. example: member type: string audit: $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit' ComAfrosoftApibuilderApiV0ModelsDomain: description: Represents a single domain name (e.g. www.apibuilder.io). When a new user registers and confirms their email, we automatically associate that user with a member of the organization associated with their domain. For example, if you confirm your account with an email address of example@somedomain.com, we will automatically create a membership request on your behalf to join the organization with domain somedomain.com. type: object required: - name properties: name: description: The domain name example: www.apibuilder.io type: string ComAfrosoftApibuilderApiV0ModelsUser: description: A user is a top level person interacting with the api doc server. type: object required: - guid - email - nickname - audit properties: guid: description: Internal unique identifier for this user. type: string format: uuid email: type: string nickname: description: Public unique identifier for this user. type: string name: type: string audit: $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit' ComAfrosoftApibuilderApiV0ModelsAttributeValueForm: type: object required: - value properties: value: type: string ComAfrosoftApibuilderApiV0ModelsApplicationMetadata: type: object required: - guid - key properties: guid: description: Internal unique identifier for this application. type: string format: uuid key: description: Used as a unique key in the URL path. Key is automatically derived from the application name. type: string ComAfrosoftApibuilderApiV0ModelsSession: description: Represents a user sessions (e.g. user logged into site) type: object required: - id - expires_at properties: id: description: Cryptographically secure session id type: string expires_at: type: string format: date-time ComAfrosoftApibuilderApiV0ModelsDiffBreaking: description: Represents a single breaking diff of an application version. A breaking diff indicates that it is possible for an existing client to now experience an error or invalid data due to the diff. type: object required: - description properties: description: example: 'model removed: user' type: string ComAfrosoftApibuilderApiV0ModelsVersionForm: type: object required: - original_form properties: original_form: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsOriginalForm' visibility: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0EnumsVisibility' description: If provided, updates the visibility for all versions of this application ComAfrosoftApibuilderApiV0ModelsWatch: description: Users can watch individual applications which enables features like receiving an email notification when there is a new version of an application. type: object required: - guid - user - organization - application - audit properties: guid: description: Internal unique identifier for this watch type: string format: uuid user: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsUser' organization: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsOrganization' application: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsApplication' audit: $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit' ComAfrosoftApibuilderApiV0ModelsOrganization: description: An organization is used to group a set of applications together. type: object required: - guid - key - name - namespace - visibility - domains - audit properties: guid: description: Internal unique identifier for this organization. type: string format: uuid key: description: Used as a unique key in the URL path. Key is automatically derived from the organization name. type: string name: description: The name of this organization. type: string namespace: description: Global namespace for this organization. example: io.apicollective type: string visibility: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0EnumsVisibility' domains: type: array items: $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsDomain' audit: $ref: '#/components/schemas/IoApibuilderCommonV0ModelsAudit' IoApibuilderGeneratorV0EnumsFileFlag: description: Allows generator authors to flag files with special characteristics. It is up to the client (i.e. the cli) to decide how to interpret them. type: string enum: - scaffolding IoApibuilderSpecV0EnumsParameterLocation: type: string enum: - Path - Query - Form - Header IoApibuilderSpecV0EnumsResponseCodeOption: type: string enum: - Default IoApibuilderSpecV0EnumsMethod: type: string enum: - GET - POST - PUT - PATCH - DELETE - HEAD - CONNECT - OPTIONS - TRACE ComAfrosoftApibuilderApiV0EnumsAppSortBy: type: string enum: - name - created_at - updated_at - visibility ComAfrosoftApibuilderApiV0EnumsSortOrder: type: string enum: - asc - desc ComAfrosoftApibuilderApiV0EnumsVisibility: description: Controls who is able to view this version type: string enum: - user - organization - public ComAfrosoftApibuilderApiV0EnumsOriginalType: type: string enum: - api_json - avro_idl - service_json - swagger ComAfrosoftApibuilderApiV0EnumsPublication: description: A publication represents something that a user can subscribe to. An example would be subscribing to an email alert whenever a new version of an application is created. type: string enum: - membership_requests.create - memberships.create - applications.create - versions.create IoApibuilderSpecV0UnionsResponseCode: oneOf: - $ref: '#/components/schemas/Integer' - $ref: '#/components/schemas/IoApibuilderSpecV0EnumsResponseCodeOption' ComAfrosoftApibuilderApiV0UnionsDiff: description: Represents a single diff in an application oneOf: - $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsDiffBreaking' - $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsDiffNonBreaking' ComAfrosoftApibuilderApiV0UnionsItemDetail: description: Identifies the specific type of item that was indexed by search oneOf: - $ref: '#/components/schemas/ComAfrosoftApibuilderApiV0ModelsApplicationSummary'