diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..b1e7d238 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,41 @@ +name: ci + +on: [push] + +jobs: + fern-check: + runs-on: ubuntu-latest + steps: + - name: Checkout repo + uses: actions/checkout@v3 + + - name: Install Fern + run: npm install -g fern-api + + - name: Check Fern API is valid + run: fern check + + generate-sdks: + needs: fern-check + if: github.event_name == 'push' && contains(github.ref, 'refs/tags/') + runs-on: ubuntu-latest + steps: + - name: Checkout repo + uses: actions/checkout@v3 + + - name: Setup node + uses: actions/setup-node@v3 + + - name: Download Fern + run: npm install -g fern-api + + - name: Release beta SDKs + env: + FERN_TOKEN: ${{ secrets.FERN_TOKEN }} + run: fern generate --api beta --log-level debug + + - name: Release public SDKs + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + FERN_TOKEN: ${{ secrets.FERN_TOKEN }} + run: fern generate --api public --version ${{ github.ref_name }} --log-level debug \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..73b090dc --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +fern/*/definition/ \ No newline at end of file diff --git a/fern/beta/generators.yml b/fern/beta/generators.yml new file mode 100644 index 00000000..d7fd8051 --- /dev/null +++ b/fern/beta/generators.yml @@ -0,0 +1,12 @@ +default-group: sdks +groups: + sdks: + generators: + - name: fernapi/fern-typescript-sdk + version: 0.5.18 + output: + location: npm + url: npm.buildwithfern.com + package-name: "@devrev-fern/beta" + config: + namespaceExport: DevRevBeta \ No newline at end of file diff --git a/fern/beta/openapi/openapi-beta.yaml b/fern/beta/openapi/openapi-beta.yaml new file mode 100644 index 00000000..caac67ed --- /dev/null +++ b/fern/beta/openapi/openapi-beta.yaml @@ -0,0 +1,2239 @@ +components: + responses: + bad-request: + content: + application/json: + schema: + $ref: '#/components/schemas/error-bad-request' + description: 400 Bad Request. + forbidden: + content: + application/json: + schema: + $ref: '#/components/schemas/error-forbidden' + description: 403 Forbidden. + internal-server-error: + content: + application/json: + schema: + $ref: '#/components/schemas/error-internal-server-error' + description: 500 Internal Server Error. + not-found: + content: + application/json: + schema: + $ref: '#/components/schemas/error-not-found' + description: 404 Not Found. + service-unavailable: + content: + application/json: + schema: + $ref: '#/components/schemas/error-service-unavailable' + description: 503 Service Unavailable. + too-many-requests: + content: + application/json: + schema: + $ref: '#/components/schemas/error-too-many-requests' + description: 429 Too Many Requests. + headers: + Retry-After: + schema: + description: Number of seconds to wait before retrying. + type: number + unauthorized: + content: + application/json: + schema: + $ref: '#/components/schemas/error-unauthorized' + description: 401 Unauthorized. + schemas: + artifact-summary: + allOf: + - $ref: '#/components/schemas/atom-base-summary' + title: artifact-summary + atom-base: + properties: + created_by: + $ref: '#/components/schemas/user-summary' + created_date: + description: Timestamp when the object was created. + format: date-time + type: string + display_id: + description: Human-readable object ID unique to the Dev organization. + type: string + id: + description: Globally unique object ID. + type: string + modified_by: + $ref: '#/components/schemas/user-summary' + modified_date: + description: Timestamp when the object was last modified. + format: date-time + type: string + required: + - id + title: atom-base + type: object + atom-base-summary: + properties: + display_id: + description: Human-readable object ID unique to the Dev organization. + type: string + id: + description: Globally unique object ID. + type: string + required: + - id + title: atom-base-summary + type: object + capability-summary: + allOf: + - $ref: '#/components/schemas/part-base-summary' + title: capability-summary + conversation: + allOf: + - $ref: '#/components/schemas/atom-base' + - properties: + description: + description: Description of the conversation object. + type: string + group: + $ref: '#/components/schemas/group-summary' + messages: + description: The latest messages on the conversation. + items: + $ref: '#/components/schemas/timeline-entry' + type: array + owned_by: + description: Owner IDs for the conversation. + items: + $ref: '#/components/schemas/user-summary' + type: array + stage: + $ref: '#/components/schemas/stage' + title: + description: Title of the conversation object. + type: string + type: object + title: conversation + conversation-summary: + allOf: + - $ref: '#/components/schemas/atom-base-summary' + - properties: + title: + description: Title of the conversation object. + type: string + type: object + title: conversation-summary + conversations-create-request: + description: The request to create a new conversation. + properties: + description: + description: Description for the conversation. + type: string + group: + description: The group that the conversation is associated with. + type: string + members: + description: The users in the conversation. + example: + - don::identity:devo/:devu/ + items: + type: string + type: array + messages: + description: Initial messages on the conversation. + items: + $ref: '#/components/schemas/conversations-create-request-message' + type: array + stage: + $ref: '#/components/schemas/stage-init' + tags: + description: Tags associated with the conversation. + items: + $ref: '#/components/schemas/set-tag-with-value' + type: array + title: + description: The title for the conversation. + type: string + type: + $ref: '#/components/schemas/conversations-create-request-type-value' + required: + - type + title: conversations-create-request + type: object + conversations-create-request-message: + properties: + artifacts: + description: The IDs of the artifacts to the message. + example: + - don::core:devo/:artifact/ + items: + type: string + type: array + body: + description: The message's body. + type: string + title: conversations-create-request-message + type: object + conversations-create-request-type-value: + enum: + - support + type: string + conversations-create-response: + description: The response to creating a new conversation. + properties: + conversation: + $ref: '#/components/schemas/conversation' + required: + - conversation + title: conversations-create-response + type: object + x-go-name: ConversationsCreateResponseBody + conversations-delete-request: + description: The request to delete a conversation. + properties: + id: + description: The ID of the conversation to delete. + type: string + required: + - id + title: conversations-delete-request + type: object + conversations-delete-response: + description: The response for deleting a conversation. + title: conversations-delete-response + type: object + x-go-name: ConversationsDeleteResponseBody + conversations-export-response: + properties: + conversations: + description: The resulting collection of conversation items. + items: + $ref: '#/components/schemas/conversation' + type: array + required: + - conversations + title: conversations-export-response + type: object + x-go-name: ConversationsExportResponseBody + conversations-get-response: + description: The response to getting a conversation's information. + properties: + conversation: + $ref: '#/components/schemas/conversation' + required: + - conversation + title: conversations-get-response + type: object + x-go-name: ConversationsGetResponseBody + conversations-list-response: + description: The response to listing the conversations. + properties: + conversations: + description: The list of conversations. + items: + $ref: '#/components/schemas/conversation' + type: array + next_cursor: + description: | + The cursor used to iterate subsequent results in accordance to the + sort order. If not set, then no later elements exist. + type: string + prev_cursor: + description: | + The cursor used to iterate preceding results in accordance to the + sort order. If not set, then no prior elements exist. + type: string + required: + - conversations + title: conversations-list-response + type: object + x-go-name: ConversationsListResponseBody + conversations-update-request: + description: The request to update a conversation. + properties: + applies_to_parts: + $ref: '#/components/schemas/conversations-update-request-applies-to-parts' + description: + description: The updated description for the conversation. + type: string + group: + description: The group that the conversation is associated with. + type: string + id: + description: The ID of the conversation to update. + type: string + stage: + $ref: '#/components/schemas/stage-update' + status: + description: The updated status of the conversation. + type: string + title: + description: The updated title of the conversation. + type: string + required: + - id + title: conversations-update-request + type: object + conversations-update-request-applies-to-parts: + properties: + set: + description: Updates the parts that the conversation applies to. + example: + - don::core:devo/:/ + items: + type: string + type: array + title: conversations-update-request-applies-to-parts + type: object + conversations-update-response: + description: The response for updating a conversation. + properties: + conversation: + $ref: '#/components/schemas/conversation' + required: + - conversation + title: conversations-update-response + type: object + x-go-name: ConversationsUpdateResponseBody + dev-user-summary: + allOf: + - $ref: '#/components/schemas/user-base-summary' + title: dev-user-summary + enhancement-summary: + allOf: + - $ref: '#/components/schemas/part-base-summary' + title: enhancement-summary + error-bad-request: + allOf: + - $ref: '#/components/schemas/error-base' + - discriminator: + mapping: + bad_request: '#/components/schemas/error-bad-request-bad-request' + invalid_enum_value: '#/components/schemas/error-bad-request-invalid-enum-value' + missing_required_field: '#/components/schemas/error-bad-request-missing-required-field' + parse_error: '#/components/schemas/error-bad-request-parse-error' + value_not_permitted: '#/components/schemas/error-bad-request-value-not-permitted' + propertyName: type + oneOf: + - $ref: '#/components/schemas/error-bad-request-bad-request' + - $ref: '#/components/schemas/error-bad-request-invalid-enum-value' + - $ref: '#/components/schemas/error-bad-request-missing-required-field' + - $ref: '#/components/schemas/error-bad-request-parse-error' + - $ref: '#/components/schemas/error-bad-request-value-not-permitted' + properties: + type: + $ref: '#/components/schemas/error-bad-request-type' + required: + - type + type: object + title: error-bad-request + error-bad-request-bad-request: + title: error-bad-request-bad-request + type: object + error-bad-request-invalid-enum-value: + properties: + allowed_values: + description: The allowed values for the field. + items: + type: string + type: array + field_name: + description: The field whose enum value is invalid. + type: string + value: + description: The value that was received. + type: string + required: + - allowed_values + - field_name + - value + title: error-bad-request-invalid-enum-value + type: object + error-bad-request-missing-required-field: + properties: + field_name: + description: The missing field's name. + type: string + required: + - field_name + title: error-bad-request-missing-required-field + type: object + error-bad-request-parse-error: + title: error-bad-request-parse-error + type: object + error-bad-request-type: + enum: + - bad_request + - invalid_enum_value + - missing_required_field + - parse_error + - value_not_permitted + type: string + error-bad-request-value-not-permitted: + properties: + field_name: + description: The field whose value is not permitted. + type: string + reason: + description: The reason the value isn't permitted. + type: string + required: + - field_name + title: error-bad-request-value-not-permitted + type: object + error-base: + properties: + message: + description: The message associated with the error. + type: string + title: error-base + type: object + error-forbidden: + allOf: + - $ref: '#/components/schemas/error-base' + - discriminator: + mapping: + forbidden: '#/components/schemas/error-forbidden-forbidden' + propertyName: type + oneOf: + - $ref: '#/components/schemas/error-forbidden-forbidden' + properties: + type: + $ref: '#/components/schemas/error-forbidden-type' + required: + - type + type: object + title: error-forbidden + error-forbidden-forbidden: + title: error-forbidden-forbidden + type: object + error-forbidden-type: + enum: + - forbidden + type: string + error-internal-server-error: + allOf: + - $ref: '#/components/schemas/error-base' + - discriminator: + mapping: + internal_error: '#/components/schemas/error-internal-server-error-internal-error' + propertyName: type + oneOf: + - $ref: '#/components/schemas/error-internal-server-error-internal-error' + properties: + reference_id: + description: | + A unique ID that's generated for the error that can be used for + inquiry. + type: string + type: + $ref: '#/components/schemas/error-internal-server-error-type' + required: + - type + type: object + title: error-internal-server-error + error-internal-server-error-internal-error: + title: error-internal-server-error-internal-error + type: object + error-internal-server-error-type: + enum: + - internal_error + type: string + error-not-found: + allOf: + - $ref: '#/components/schemas/error-base' + - discriminator: + mapping: + not_found: '#/components/schemas/error-not-found-not-found' + propertyName: type + oneOf: + - $ref: '#/components/schemas/error-not-found-not-found' + properties: + type: + $ref: '#/components/schemas/error-not-found-type' + required: + - type + type: object + title: error-not-found + error-not-found-not-found: + title: error-not-found-not-found + type: object + error-not-found-type: + enum: + - not_found + type: string + error-service-unavailable: + allOf: + - $ref: '#/components/schemas/error-base' + - discriminator: + mapping: + service_unavailable: '#/components/schemas/error-service-unavailable-service-unavailable' + propertyName: type + oneOf: + - $ref: '#/components/schemas/error-service-unavailable-service-unavailable' + properties: + type: + $ref: '#/components/schemas/error-service-unavailable-type' + required: + - type + type: object + title: error-service-unavailable + error-service-unavailable-service-unavailable: + title: error-service-unavailable-service-unavailable + type: object + error-service-unavailable-type: + enum: + - service_unavailable + type: string + error-too-many-requests: + allOf: + - $ref: '#/components/schemas/error-base' + - discriminator: + mapping: + too_many_requests: '#/components/schemas/error-too-many-requests-too-many-requests' + propertyName: type + oneOf: + - $ref: '#/components/schemas/error-too-many-requests-too-many-requests' + properties: + retry_after: + description: | + The number of seconds after which the client should retry. + format: int64 + type: integer + type: + $ref: '#/components/schemas/error-too-many-requests-type' + required: + - type + type: object + title: error-too-many-requests + error-too-many-requests-too-many-requests: + title: error-too-many-requests-too-many-requests + type: object + error-too-many-requests-type: + enum: + - too_many_requests + type: string + error-unauthorized: + allOf: + - $ref: '#/components/schemas/error-base' + - discriminator: + mapping: + unauthenticated: '#/components/schemas/error-unauthorized-unauthenticated' + propertyName: type + oneOf: + - $ref: '#/components/schemas/error-unauthorized-unauthenticated' + properties: + type: + $ref: '#/components/schemas/error-unauthorized-type' + required: + - type + type: object + title: error-unauthorized + error-unauthorized-type: + enum: + - unauthenticated + type: string + error-unauthorized-unauthenticated: + title: error-unauthorized-unauthenticated + type: object + feature-summary: + allOf: + - $ref: '#/components/schemas/part-base-summary' + title: feature-summary + group-summary: + allOf: + - $ref: '#/components/schemas/atom-base-summary' + title: group-summary + issue-priority: + description: Priority of the work based upon impact and criticality. + enum: + - p0 + - p1 + - p2 + - p3 + type: string + issue-summary: + allOf: + - $ref: '#/components/schemas/work-base-summary' + - properties: + priority: + $ref: '#/components/schemas/issue-priority' + type: object + title: issue-summary + link: + allOf: + - $ref: '#/components/schemas/atom-base' + - properties: + link_type: + $ref: '#/components/schemas/link-type' + source: + $ref: '#/components/schemas/link-endpoint-summary' + target: + $ref: '#/components/schemas/link-endpoint-summary' + required: + - link_type + - source + - target + type: object + title: link + link-endpoint-summary: + discriminator: + mapping: + capability: '#/components/schemas/capability-summary' + conversation: '#/components/schemas/conversation-summary' + enhancement: '#/components/schemas/enhancement-summary' + feature: '#/components/schemas/feature-summary' + issue: '#/components/schemas/issue-summary' + product: '#/components/schemas/product-summary' + ticket: '#/components/schemas/ticket-summary' + propertyName: type + oneOf: + - $ref: '#/components/schemas/capability-summary' + - $ref: '#/components/schemas/conversation-summary' + - $ref: '#/components/schemas/enhancement-summary' + - $ref: '#/components/schemas/feature-summary' + - $ref: '#/components/schemas/issue-summary' + - $ref: '#/components/schemas/product-summary' + - $ref: '#/components/schemas/ticket-summary' + properties: + type: + $ref: '#/components/schemas/link-endpoint-type' + required: + - type + title: link-endpoint-summary + type: object + link-endpoint-type: + enum: + - capability + - conversation + - enhancement + - feature + - issue + - product + - ticket + type: string + link-rev-user-to-rev-org-request: + description: A request to link a rev user to a rev org. + properties: + rev_org_don: + description: The don of the rev org to link the rev user to. + example: don::identity:devo/:revo/ + type: string + user_don: + description: The don of the rev user to link. + type: string + required: + - rev_org_don + - user_don + title: link-rev-user-to-rev-org-request + type: object + link-rev-user-to-rev-org-response: + description: The response to link a rev user to a rev org. + properties: + rev_user: + $ref: '#/components/schemas/rev-user' + required: + - rev_user + title: link-rev-user-to-rev-org-response + type: object + x-go-name: LinkRevUserToRevOrgResponseBody + link-type: + description: Type of link used to define the relationship. + enum: + - developed_with + - imports + - is_dependent_on + - is_duplicate_of + - is_parent_of + - is_part_of + - is_related_to + - serves + type: string + links-create-request: + description: The request to create a new link. + properties: + link_type: + $ref: '#/components/schemas/link-type' + source: + description: The ID of the source object. + type: string + target: + description: The ID of the target object. + type: string + required: + - link_type + - source + - target + title: links-create-request + type: object + links-create-response: + description: The response to creating a new link. + properties: + link: + $ref: '#/components/schemas/link' + required: + - link + title: links-create-response + type: object + x-go-name: LinksCreateResponseBody + links-delete-request: + description: The request to delete a link. + properties: + id: + description: The ID of the link to delete. + type: string + required: + - id + title: links-delete-request + type: object + links-delete-response: + description: The response for deleting a link. + title: links-delete-response + type: object + x-go-name: LinksDeleteResponseBody + links-direction: + description: | + The direction of link, which can either be outbound such that the + object is the source of the link, otherwise inbound where the object is + the target of the link. + enum: + - is_source + - is_target + type: string + links-get-response: + description: The response to getting a link's information. + properties: + link: + $ref: '#/components/schemas/link' + required: + - link + title: links-get-response + type: object + x-go-name: LinksGetResponseBody + links-list-response: + description: The response to listing the links. + properties: + links: + description: The list of links. + items: + $ref: '#/components/schemas/link' + type: array + next_cursor: + description: | + The cursor used to iterate subsequent results in accordance to the + sort order. If not set, then no later elements exist. + type: string + prev_cursor: + description: | + The cursor used to iterate preceding results in accordance to the + sort order. If not set, then no prior elements exist. + type: string + required: + - links + title: links-list-response + type: object + x-go-name: LinksListResponseBody + list-mode: + description: | + The iteration mode to use. If "after", then entries after the provided + cursor will be returned, or if no cursor is provided, then from the + beginning. If "before", then entries before the provided cursor will be + returned, or if no cursor is provided, then from the end. Entries will + always be returned in the specified sort-by order. + enum: + - after + - before + type: string + org-base-summary: + allOf: + - $ref: '#/components/schemas/atom-base-summary' + - properties: + display_name: + description: Name of the Organization. + type: string + type: object + title: org-base-summary + org-summary: + discriminator: + mapping: + rev_org: '#/components/schemas/rev-org-summary' + propertyName: type + oneOf: + - $ref: '#/components/schemas/rev-org-summary' + properties: + type: + $ref: '#/components/schemas/org-type' + required: + - type + title: org-summary + type: object + org-type: + enum: + - rev_org + type: string + part-base-summary: + allOf: + - $ref: '#/components/schemas/atom-base-summary' + - properties: + name: + description: Name of the part. + type: string + required: + - name + type: object + title: part-base-summary + product-summary: + allOf: + - $ref: '#/components/schemas/part-base-summary' + title: product-summary + rev-org-summary: + allOf: + - $ref: '#/components/schemas/org-base-summary' + title: rev-org-summary + rev-user: + allOf: + - $ref: '#/components/schemas/user-base' + - properties: + description: + description: Description of the Rev user. + type: string + external_ref: + description: | + External ref is a mutable unique identifier for a user within the + Rev organization from your primary customer record. If none is + available, a good alternative is the email address/phone number + which could uniquely identify the user. If none is specified, a + system-generated identifier will be assigned to the user. + type: string + rev_org: + $ref: '#/components/schemas/org-summary' + type: object + title: rev-user + rev-user-summary: + allOf: + - $ref: '#/components/schemas/user-base-summary' + - properties: + external_ref: + description: | + External ref is a mutable unique identifier for a user within the + Rev organization from your primary customer record. If none is + available, a good alternative is the email address/phone number + which could uniquely identify the user. If none is specified, a + system-generated identifier will be assigned to the user. + type: string + rev_org: + $ref: '#/components/schemas/org-summary' + type: object + title: rev-user-summary + rev-users-create-request: + description: | + Request object to create a new Rev user for a Rev organization. + properties: + description: + description: Description of the Rev user. + type: string + display_name: + description: | + The user's display name. The name is non-unique and mutable. + type: string + email: + description: Email address of the Rev user. + type: string + external_ref: + description: | + External ref is a mutable unique identifier for a user within the + Dev organization from your primary customer record. If none is + available, a good alternative is the email address/phone number + which could uniquely identify the user. If none is specified, a + system-generated identifier will be assigned to the user. + type: string + phone_numbers: + description: Phone numbers of the Rev user. + items: + type: string + type: array + rev_org: + description: | + The ID of Rev organization for which a Rev user is to be created. + example: don::identity:devo/:revo/ + type: string + required: + - rev_org + title: rev-users-create-request + type: object + rev-users-create-response: + description: | + Response object for creating a new Rev user for Rev organization. + properties: + rev_user: + $ref: '#/components/schemas/rev-user' + required: + - rev_user + title: rev-users-create-response + type: object + x-go-name: RevUsersCreateResponseBody + rev-users-delete-request: + description: Request object to delete a Rev user. + properties: + id: + description: The ID of Rev user to delete. + type: string + required: + - id + title: rev-users-delete-request + type: object + rev-users-delete-response: + description: The response to deleting a Rev user of a Rev organization. + title: rev-users-delete-response + type: object + x-go-name: RevUsersDeleteResponseBody + rev-users-get-response: + description: The returned Rev user. + properties: + rev_user: + $ref: '#/components/schemas/rev-user' + required: + - rev_user + title: rev-users-get-response + type: object + x-go-name: RevUsersGetResponseBody + rev-users-list-response: + description: | + The response to listing all Rev users matching the filter criteria. + properties: + next_cursor: + description: | + The cursor used to iterate subsequent results in accordance to the + sort order. If not set, then no later elements exist. + type: string + prev_cursor: + description: | + The cursor used to iterate preceding results in accordance to the + sort order. If not set, then no prior elements exist. + type: string + rev_users: + description: List containing all the Rev users. + items: + $ref: '#/components/schemas/rev-user' + type: array + required: + - rev_users + title: rev-users-list-response + type: object + x-go-name: RevUsersListResponseBody + rev-users-update-request: + description: Request to update details of a Rev user. + properties: + description: + description: Updated description of the Rev user. + type: string + display_name: + description: Updated display name of the Rev user. + type: string + email: + description: Updated email address of the Rev user. + type: string + external_ref: + description: Updated external ref value of the Rev user. + type: string + id: + description: The ID of Rev user to update. + type: string + required: + - id + title: rev-users-update-request + type: object + rev-users-update-response: + description: Updated Rev user object. + properties: + rev_user: + $ref: '#/components/schemas/rev-user' + required: + - rev_user + title: rev-users-update-response + type: object + x-go-name: RevUsersUpdateResponseBody + set-tag-with-value: + properties: + id: + description: The ID of the tag. + example: don::core:devo/:tag/ + type: string + value: + description: | + The value for the object's association with the tag. If specified, + the value must be one that's specified in the tag's allowed values. + type: string + required: + - id + title: set-tag-with-value + type: object + stage: + description: Describes the current stage of a work item. + properties: + name: + description: Current stage name of the work item. + type: string + required: + - name + title: stage + type: object + stage-init: + description: Sets an object's initial stage. + properties: + name: + description: The name of the stage. + type: string + title: stage-init + type: object + stage-update: + description: Updates an object's stage. + properties: + name: + description: | + The updated name of the stage, otherwise unchanged if not set. + type: string + title: stage-update + type: object + sys-user: + allOf: + - $ref: '#/components/schemas/user-base' + title: sys-user + sys-user-summary: + allOf: + - $ref: '#/components/schemas/user-base-summary' + title: sys-user-summary + sys-users-list-response: + description: The response to listing the system users. + properties: + next_cursor: + description: | + The cursor used to iterate subsequent results in accordance to the + sort order. If not set, then no later elements exist. + type: string + prev_cursor: + description: | + The cursor used to iterate preceding results in accordance to the + sort order. If not set, then no prior elements exist. + type: string + sys_users: + description: The list of system users. + items: + $ref: '#/components/schemas/sys-user' + type: array + required: + - sys_users + title: sys-users-list-response + type: object + x-go-name: SysUsersListResponseBody + sys-users-update-request: + description: Request to update information of the system user. + properties: + display_name: + description: Updated display name for the system user. + type: string + display_picture: + description: Artifact ID of the system user's new display picture. + example: don::core:devo/:artifact/ + nullable: true + type: string + full_name: + description: Updated full name for the system user. + type: string + id: + description: The ID of system user to update. + type: string + required: + - id + title: sys-users-update-request + type: object + sys-users-update-response: + description: Updated Sys user object. + properties: + sys_user: + $ref: '#/components/schemas/sys-user' + required: + - sys_user + title: sys-users-update-response + type: object + x-go-name: SysUsersUpdateResponseBody + ticket-severity: + description: Severity of the ticket. + enum: + - blocker + - high + - low + - medium + type: string + ticket-summary: + allOf: + - $ref: '#/components/schemas/work-base-summary' + - properties: + rev_org: + $ref: '#/components/schemas/org-summary' + severity: + $ref: '#/components/schemas/ticket-severity' + type: object + title: ticket-summary + timeline-comment: + allOf: + - $ref: '#/components/schemas/timeline-entry-base' + - properties: + artifacts: + description: The artifacts for the comment. + items: + $ref: '#/components/schemas/artifact-summary' + type: array + body: + description: | + The comment's body. If the comment has been deleted, then no body + will appear in the response. + type: string + body_type: + $ref: '#/components/schemas/timeline-comment-body-type' + snap_kit_body: + description: The SnapKit Body of the comment. + type: object + type: object + title: timeline-comment + timeline-comment-body-type: + description: The type of the body to use for the comment. + enum: + - snap_kit + - text + type: string + timeline-entry: + discriminator: + mapping: + timeline_comment: '#/components/schemas/timeline-comment' + propertyName: type + oneOf: + - $ref: '#/components/schemas/timeline-comment' + properties: + type: + $ref: '#/components/schemas/timeline-entry-type' + required: + - type + title: timeline-entry + type: object + timeline-entry-base: + allOf: + - $ref: '#/components/schemas/atom-base' + title: timeline-entry-base + timeline-entry-type: + enum: + - timeline_comment + type: string + unlink-rev-user-from-rev-org-request: + description: A request to unlink a rev user from a rev org. + properties: + rev_org_don: + description: The don of the rev org to unlink the rev user from. + example: don::identity:devo/:revo/ + type: string + user_don: + description: The don of the rev user to unlink. + type: string + required: + - rev_org_don + - user_don + title: unlink-rev-user-from-rev-org-request + type: object + unlink-rev-user-from-rev-org-response: + description: The response to unlink a rev user from a rev org. + properties: + rev_user: + $ref: '#/components/schemas/rev-user' + required: + - rev_user + title: unlink-rev-user-from-rev-org-response + type: object + x-go-name: UnlinkRevUserFromRevOrgResponseBody + user-base: + allOf: + - $ref: '#/components/schemas/atom-base' + - properties: + display_name: + description: | + The user's display name. The name is non-unique and mutable. + type: string + display_picture: + $ref: '#/components/schemas/artifact-summary' + email: + description: Email address of the user. + type: string + full_name: + description: Full name of the user. + type: string + phone_numbers: + description: Phone numbers of the user. + items: + type: string + type: array + state: + $ref: '#/components/schemas/user-state' + type: object + title: user-base + user-base-summary: + allOf: + - $ref: '#/components/schemas/atom-base-summary' + - properties: + display_name: + description: | + The user's display name. The name is non-unique and mutable. + type: string + display_picture: + $ref: '#/components/schemas/artifact-summary' + email: + description: Email address of the user. + type: string + full_name: + description: Full name of the user. + type: string + state: + $ref: '#/components/schemas/user-state' + type: object + title: user-base-summary + user-state: + description: State of the user. + enum: + - active + - deactivated + - locked + - shadow + - unassigned + type: string + user-summary: + discriminator: + mapping: + dev_user: '#/components/schemas/dev-user-summary' + rev_user: '#/components/schemas/rev-user-summary' + sys_user: '#/components/schemas/sys-user-summary' + propertyName: type + oneOf: + - $ref: '#/components/schemas/dev-user-summary' + - $ref: '#/components/schemas/rev-user-summary' + - $ref: '#/components/schemas/sys-user-summary' + properties: + type: + $ref: '#/components/schemas/user-type' + required: + - type + title: user-summary + type: object + user-type: + enum: + - dev_user + - rev_user + - sys_user + type: string + work-base-summary: + allOf: + - $ref: '#/components/schemas/atom-base-summary' + - properties: + title: + description: Title of the work object. + type: string + required: + - title + type: object + title: work-base-summary + securitySchemes: + auth-token: + description: |- + All the DevRev APIs require a token to authenticate the user. Provide `Authorization: ` as a header to every API request. + [How do I find my token?](https://devrev.ai/docs/apis/auth) + in: header + name: Authorization + type: apiKey +info: + description: DevRev's BETA REST API Specification. + title: DevRev Beta REST API + version: BETA +openapi: 3.0.3 +paths: + /conversations.create: + post: + description: Creates a conversation. + operationId: conversations-create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/conversations-create-request' + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/conversations-create-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - conversations + /conversations.delete: + post: + description: Deletes the requested conversation. + operationId: conversations-delete + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/conversations-delete-request' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/conversations-delete-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - conversations + /conversations.export: + get: + description: Exports a collection of conversation items. + operationId: conversations-export + parameters: + - description: | + Filters for conversations belonging to any of the provided parts. + explode: false + in: query + name: applies_to_parts + schema: + example: + - don::core:devo/:/ + items: + type: string + type: array + - description: | + The number of conversation items to return. The default is '50', the + maximum is '5000'. + explode: false + in: query + name: first + schema: + format: int32 + type: integer + - description: | + Filters for conversations where these users are participants. + explode: false + in: query + name: members + schema: + example: + - don::identity:devo/:devu/ + items: + type: string + type: array + - description: Filters for conversations owned by any of these users. + explode: false + in: query + name: owned_by + schema: + example: + - don::identity:devo/:devu/ + items: + type: string + type: array + - description: | + Filters for conversations that are associated with any of the + provided Rev organizations. + explode: false + in: query + name: rev_org + schema: + example: + - don::identity:devo/:revo/ + items: + type: string + type: array + - description: | + Filters for conversations with any of the provided source channels. + explode: false + in: query + name: source_channels + schema: + items: + type: string + type: array + - description: Filters for records in the provided stage(s). + explode: false + in: query + name: stage.name + schema: + items: + type: string + type: array + - description: Filters for conversations with any of the provided tags. + explode: false + in: query + name: tags + schema: + example: + - don::core:devo/:tag/ + items: + type: string + type: array + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/conversations-export-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - conversations + /conversations.get: + get: + description: Gets the requested conversation's information. + operationId: conversations-get + parameters: + - description: The requested conversation's ID. + explode: false + in: query + name: id + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/conversations-get-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - conversations + /conversations.list: + get: + description: Lists the available conversations. + operationId: conversations-list + parameters: + - description: | + Filters for conversations belonging to any of the provided parts. + explode: false + in: query + name: applies_to_parts + schema: + example: + - don::core:devo/:/ + items: + type: string + type: array + - description: | + The cursor to resume iteration from. If not provided, then iteration + starts from the beginning. + explode: false + in: query + name: cursor + schema: + type: string + - description: | + The maximum number of conversations to return. The default is '50'. + explode: false + in: query + name: limit + schema: + format: int32 + type: integer + - description: | + Filters for conversations where these users are participants. + explode: false + in: query + name: members + schema: + example: + - don::identity:devo/:devu/ + items: + type: string + type: array + - description: | + The iteration mode to use, otherwise if not set, then "after" is + used. + explode: false + in: query + name: mode + schema: + $ref: '#/components/schemas/list-mode' + - description: Filters for conversations owned by any of these users. + explode: false + in: query + name: owned_by + schema: + example: + - don::identity:devo/:devu/ + items: + type: string + type: array + - description: | + Filters for conversations that are associated with any of the + provided Rev organizations. + explode: false + in: query + name: rev_org + schema: + example: + - don::identity:devo/:revo/ + items: + type: string + type: array + - description: | + Filters for conversations with any of the provided source channels. + explode: false + in: query + name: source_channels + schema: + items: + type: string + type: array + - description: Filters for records in the provided stage(s). + explode: false + in: query + name: stage.name + schema: + items: + type: string + type: array + - description: Filters for conversations with any of the provided tags. + explode: false + in: query + name: tags + schema: + example: + - don::core:devo/:tag/ + items: + type: string + type: array + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/conversations-list-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - conversations + /conversations.update: + post: + description: Updates the requested conversation. + operationId: conversations-update + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/conversations-update-request' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/conversations-update-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - conversations + /links.create: + post: + description: | + Creates a link between two objects to indicate a relationship. + operationId: links-create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/links-create-request' + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/links-create-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - links + /links.delete: + post: + description: Deletes a link. + operationId: links-delete + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/links-delete-request' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/links-delete-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - links + /links.get: + get: + description: Gets the requested link's information. + operationId: links-get + parameters: + - description: The requested link's ID. + explode: false + in: query + name: id + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/links-get-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - links + /links.list: + get: + description: Lists the available links. + operationId: links-list + parameters: + - description: The ID of the object to list the links for. + explode: false + in: query + name: object + required: true + schema: + type: string + - description: | + The cursor to resume iteration from. If not provided, then iteration + starts from the beginning. + explode: false + in: query + name: cursor + schema: + type: string + - description: | + The direction of the links to list, otherwise if not present, then + links in both directions (source and target) are included. + explode: false + in: query + name: direction + schema: + $ref: '#/components/schemas/links-direction' + - description: | + The maximum number of links to return. If not set, then the default + is '50'. + explode: false + in: query + name: limit + schema: + format: int32 + type: integer + - description: | + The link type(s) to filter for, otherwise if not present, all link + types are included. + explode: false + in: query + name: link_type + schema: + items: + $ref: '#/components/schemas/link-type' + type: array + - description: | + The iteration mode to use, otherwise if not set, then "after" is + used. + explode: false + in: query + name: mode + schema: + $ref: '#/components/schemas/list-mode' + - description: | + The link types to filter for, otherwise if not present, all link + types are included. + explode: false + in: query + name: types + schema: + deprecated: true + items: + $ref: '#/components/schemas/link-type' + type: array + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/links-list-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - links + /rev-users.create: + post: + description: | + Creates a Rev user for a Rev organization. Rev user can be a customer + or a lead of an organization. + operationId: rev-users-create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/rev-users-create-request' + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/rev-users-create-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - rev-users + /rev-users.delete: + post: + description: Deletes a Rev user. + operationId: rev-users-delete + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/rev-users-delete-request' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/rev-users-delete-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - rev-users + /rev-users.get: + get: + description: Returns the Rev user of a Rev organization by its ID. + operationId: rev-users-get + parameters: + - description: The ID of Rev user to be retrieved. + explode: false + in: query + name: id + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/rev-users-get-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - rev-users + /rev-users.link: + post: + description: Links a rev user to a rev org. + operationId: link-rev-user-to-rev-org + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/link-rev-user-to-rev-org-request' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/link-rev-user-to-rev-org-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - rev-users + /rev-users.list: + get: + description: | + Returns a list of all Rev Users belonging to the authenticated user's + Dev Organization. + operationId: rev-users-list + parameters: + - description: | + Filters for Rev users that were created by the specified user(s). + explode: false + in: query + name: created_by + schema: + items: + type: string + type: array + - description: | + Filters for objects created after the provided timestamp (inclusive). + explode: false + in: query + name: created_date.after + schema: + format: date-time + type: string + - description: | + Filters for objects created before the provided timestamp + (inclusive). + explode: false + in: query + name: created_date.before + schema: + format: date-time + type: string + - description: | + The cursor to resume iteration from. If not provided, then iteration + starts from the beginning. + explode: false + in: query + name: cursor + schema: + type: string + - description: List of emails of Rev users to be filtered. + explode: false + in: query + name: email + schema: + items: + type: string + type: array + - description: List of external refs to filter Rev users for. + explode: false + in: query + name: external_ref + schema: + items: + type: string + type: array + - description: | + The maximum number of Rev users to return. The default is '50'. + explode: false + in: query + name: limit + schema: + format: int32 + type: integer + - description: | + The iteration mode to use, otherwise if not set, then "after" is + used. + explode: false + in: query + name: mode + schema: + $ref: '#/components/schemas/list-mode' + - description: | + Filters for objects created after the provided timestamp (inclusive). + explode: false + in: query + name: modified_date.after + schema: + format: date-time + type: string + - description: | + Filters for objects created before the provided timestamp + (inclusive). + explode: false + in: query + name: modified_date.before + schema: + format: date-time + type: string + - description: List of IDs of Rev organizations to be filtered. + explode: false + in: query + name: rev_org + schema: + example: + - don::identity:devo/:revo/ + items: + type: string + type: array + - description: | + Fields to sort the Rev users by and the direction to sort them. + explode: false + in: query + name: sort_by + schema: + items: + type: string + type: array + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/rev-users-list-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - rev-users + /rev-users.unlink: + post: + description: Unlinks a rev user from a rev org. + operationId: unlink-rev-user-from-rev-org + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/unlink-rev-user-from-rev-org-request' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/unlink-rev-user-from-rev-org-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - rev-users + /rev-users.update: + post: + description: Updates a Rev user. + operationId: rev-users-update + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/rev-users-update-request' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/rev-users-update-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - rev-users + /sys-users.list: + get: + description: Lists system users within your organization. + operationId: sys-users-list + parameters: + - description: | + The cursor to resume iteration from. If not provided, then iteration + starts from the beginning. + explode: false + in: query + name: cursor + schema: + type: string + - description: | + The maximum number of system users to return. Value can range from + '1' to '100', with a default of '50'. + explode: false + in: query + name: limit + schema: + format: int32 + type: integer + - description: | + The iteration mode to use, otherwise if not set, then "after" is + used. + explode: false + in: query + name: mode + schema: + $ref: '#/components/schemas/list-mode' + - description: | + Fields to sort the system users by and the direction to sort them. + explode: false + in: query + name: sort_by + schema: + items: + type: string + type: array + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/sys-users-list-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - sys-users + /sys-users.update: + post: + description: Updates the system user. + operationId: sys-users-update + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/sys-users-update-request' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/sys-users-update-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - sys-users +security: +- auth-token: [] +servers: +- description: DevRev API endpoint. + url: '{protocol}://{hostname}' + variables: + hostname: + default: api.devrev.ai + description: API hostname. + protocol: + default: https + description: API protocol. +tags: +- description: DevRev conversation interaction. + name: conversations +- description: DevRev link interactions. + name: links +- description: Rev user interactions. + name: rev-users +- description: System user interactions + name: sys-users diff --git a/fern/fern.config.json b/fern/fern.config.json new file mode 100644 index 00000000..6ef83b64 --- /dev/null +++ b/fern/fern.config.json @@ -0,0 +1,4 @@ +{ + "organization": "devrev", + "version": "0.8.6-rc2" +} \ No newline at end of file diff --git a/fern/public/generators.yml b/fern/public/generators.yml new file mode 100644 index 00000000..ff55e754 --- /dev/null +++ b/fern/public/generators.yml @@ -0,0 +1,13 @@ +groups: + sdks: + generators: + - name: fernapi/fern-typescript-sdk + version: 0.5.18 + output: + location: npm + package-name: "@fern-api/devrev" + token: ${NPM_TOKEN} + github: + repository: fern-devrev/devrev-node + config: + namespaceExport: DevRev \ No newline at end of file diff --git a/fern/public/openapi/openapi.yaml b/fern/public/openapi/openapi.yaml new file mode 100644 index 00000000..a5cca822 --- /dev/null +++ b/fern/public/openapi/openapi.yaml @@ -0,0 +1,4891 @@ +components: + responses: + bad-request: + content: + application/json: + schema: + $ref: '#/components/schemas/error-bad-request' + description: 400 Bad Request. + forbidden: + content: + application/json: + schema: + $ref: '#/components/schemas/error-forbidden' + description: 403 Forbidden. + internal-server-error: + content: + application/json: + schema: + $ref: '#/components/schemas/error-internal-server-error' + description: 500 Internal Server Error. + not-found: + content: + application/json: + schema: + $ref: '#/components/schemas/error-not-found' + description: 404 Not Found. + service-unavailable: + content: + application/json: + schema: + $ref: '#/components/schemas/error-service-unavailable' + description: 503 Service Unavailable. + too-many-requests: + content: + application/json: + schema: + $ref: '#/components/schemas/error-too-many-requests' + description: 429 Too Many Requests. + headers: + Retry-After: + schema: + description: Number of seconds to wait before retrying. + type: number + unauthorized: + content: + application/json: + schema: + $ref: '#/components/schemas/error-unauthorized' + description: 401 Unauthorized. + schemas: + artifact-summary: + allOf: + - $ref: '#/components/schemas/atom-base-summary' + title: artifact-summary + artifacts-locate-response: + description: The response to getting an artifact's download URL. + properties: + expires_at: + description: The expiration timestamp of the URL. + format: date-time + type: string + url: + description: The artifact's download URL. + type: string + required: + - url + title: artifacts-locate-response + type: object + x-go-name: ArtifactsLocateResponseBody + artifacts-prepare-request: + description: The request to prepare a URL to upload a file. + properties: + file_name: + description: The name of the file that's being uploaded. + type: string + required: + - file_name + title: artifacts-prepare-request + type: object + artifacts-prepare-response: + description: The response to preparing a URL to upload a file. + properties: + form_data: + description: The POST policy form data. + items: + $ref: '#/components/schemas/artifacts-prepare-response-form-data' + type: array + id: + description: The generated artifact's ID. + example: don::core:devo/:artifact/ + type: string + url: + description: The URL that the file's data should be uploaded to. + type: string + required: + - form_data + - id + - url + title: artifacts-prepare-response + type: object + x-go-name: ArtifactsPrepareResponseBody + artifacts-prepare-response-form-data: + properties: + key: + description: Key of the form field. + type: string + value: + description: Value corresponding to the key. + type: string + required: + - key + - value + title: artifacts-prepare-response-form-data + type: object + atom-base: + properties: + created_by: + $ref: '#/components/schemas/user-summary' + created_date: + description: Timestamp when the object was created. + format: date-time + type: string + display_id: + description: Human-readable object ID unique to the Dev organization. + type: string + id: + description: Globally unique object ID. + type: string + modified_by: + $ref: '#/components/schemas/user-summary' + modified_date: + description: Timestamp when the object was last modified. + format: date-time + type: string + required: + - id + title: atom-base + type: object + atom-base-summary: + properties: + display_id: + description: Human-readable object ID unique to the Dev organization. + type: string + id: + description: Globally unique object ID. + type: string + required: + - id + title: atom-base-summary + type: object + auth-connection: + description: | + Connection object that specifies the configuration for an + authentication connection that is set up for a Dev organization. + discriminator: + mapping: + google_apps: '#/components/schemas/auth-connection-options-google-apps' + oidc: '#/components/schemas/auth-connection-options-oidc' + samlp: '#/components/schemas/auth-connection-options-saml' + social: '#/components/schemas/auth-connection-options-social' + waad: '#/components/schemas/auth-connection-options-azure-ad' + propertyName: type + oneOf: + - $ref: '#/components/schemas/auth-connection-options-azure-ad' + - $ref: '#/components/schemas/auth-connection-options-google-apps' + - $ref: '#/components/schemas/auth-connection-options-oidc' + - $ref: '#/components/schemas/auth-connection-options-saml' + - $ref: '#/components/schemas/auth-connection-options-social' + properties: + display_name: + description: | + Display name of the authentication connection. This name will be + visible to all the users when they sign in to this Dev + organization. For example, if the display_name is 'abclogin', then + it would appear on the login button as 'Log in to abclogin'. + type: string + enabled: + description: | + Whether the authentication connection is enabled or disabled. If + set to false, the authentication connection will not show up on the + login screen as a login option. + type: boolean + id: + description: ID of the authentication connection. + type: string + type: + $ref: '#/components/schemas/auth-connection-type' + required: + - id + - type + title: auth-connection + type: object + auth-connection-options-azure-ad: + description: | + Object encapsulating the configuration parameters for an Azure AD + authentication connection. + properties: + client_id: + description: Client ID for the Azure authentication connection. + type: string + client_secret: + description: Client secret for the Azure authentication connection. + type: string + domain: + description: Domain URL of the Azure authentication connection. + type: string + title: auth-connection-options-azure-ad + type: object + auth-connection-options-google-apps: + description: | + Object encapsulating the configuration parameters for a Google Apps + authentication connection. + properties: + client_id: + description: Client ID for the Google Apps authentication connection. + type: string + client_secret: + description: | + Client secret for the Google Apps authentication connection. + type: string + tenant_domain: + description: | + Tenant domain URL of the Google Apps authentication connection. + type: string + title: auth-connection-options-google-apps + type: object + auth-connection-options-oidc: + description: | + Object encapsulating the configuration parameters for an OIDC + authentication connection. + properties: + client_id: + description: Client ID for the OIDC authentication connection. + type: string + client_secret: + description: Client secret for the OIDC authentication connection. + type: string + issuer: + description: Issuer URL of the OIDC authentication connection. + type: string + title: auth-connection-options-oidc + type: object + auth-connection-options-saml: + description: | + Object encapsulating the configuration parameters for a SAML + authentication connection. + properties: + sign_in_endpoint: + description: Sign In endpoint for the SAML authentication connection. + type: string + signing_cert: + description: | + Signing certificate for the SAML authentication connection. + type: string + title: auth-connection-options-saml + type: object + auth-connection-options-social: + title: auth-connection-options-social + type: object + auth-connection-toggle: + enum: + - disable + - enable + type: string + auth-connection-type: + description: | + Defines the type for the authentication connection. The configuration + for each authentication connection will depend on the type value. + enum: + - google_apps + - oidc + - samlp + - social + - waad + type: string + auth-token: + allOf: + - $ref: '#/components/schemas/atom-base' + - properties: + client_id: + description: | + An identifier that represents the application that requested the + token. Only applicable for application access tokens. + type: string + expires_at: + description: The time at which the token expires. + format: date-time + type: string + issued_at: + description: The time at which the token was issued. + format: date-time + type: string + requested_token_type: + $ref: '#/components/schemas/auth-token-requested-token-type' + scopes: + description: The scopes associated with the issued token. + items: + type: string + type: array + status: + $ref: '#/components/schemas/auth-token-status' + subject: + description: The subject of the token. + type: string + token_hint: + description: A hint that identifies the token. + type: string + type: object + title: auth-token + auth-token-grant-type: + description: Specifies the process of obtaining a token. + enum: + - urn:devrev:params:oauth:grant-type:token-issue + - urn:ietf:params:oauth:grant-type:token-exchange + type: string + auth-token-requested-token-type: + description: The type of the requested token. + enum: + - urn:devrev:params:oauth:token-type:aat + - urn:devrev:params:oauth:token-type:aat:public + - urn:devrev:params:oauth:token-type:dev + - urn:devrev:params:oauth:token-type:pat + - urn:devrev:params:oauth:token-type:rev + - urn:devrev:params:oauth:token-type:session + - urn:devrev:params:oauth:token-type:session:dev0 + - urn:devrev:params:oauth:token-type:sys + - urn:ietf:params:oauth:token-type:jwt + type: string + auth-token-status: + description: The status of the token. + enum: + - active + - expired + - revoked + type: string + auth-token-subject-token-type: + description: The type of the subject token. + enum: + - urn:devrev:params:oauth:token-type:jwt:auth0 + - urn:devrev:params:oauth:token-type:jwt:dev + - urn:devrev:params:oauth:token-type:revinfo + - urn:devrev:params:oauth:token-type:sysu + - urn:devrev:params:oauth:token-type:userinfo + - urn:devrev:params:oauth:token-type:userinfo:profile + - urn:ietf:params:oauth:token-type:jwt + type: string + auth-token-token-type: + description: | + The type of the issued token. Bearer is the only supported token type. + enum: + - bearer + type: string + auth-tokens-create-request: + description: | + A request to create a new token corresponding to the requested token + type. + properties: + aud: + description: The expected audience values with respect to the token. + items: + type: string + type: array + client_id: + description: | + An identifier that represents the application which is requesting + the token. If no client_id is present in the request to generate an + application access token (AAT), DevRev will generate a client_id. + This client_id is only associated with an AAT. + type: string + expires_in: + description: | + The expected validity lifetime of the token in number of days. + format: int64 + type: integer + grant_type: + $ref: '#/components/schemas/auth-token-grant-type' + requested_token_type: + $ref: '#/components/schemas/auth-token-requested-token-type' + rev_info: + $ref: '#/components/schemas/auth-tokens-rev-info' + scope: + description: | + The requested set of scopes associated with the issued token. A + space-delimited list of values in which the order of values does + not matter. + type: string + subject_token: + description: | + Represents the entity that requests the token. Not required when + requesting an application access token (AAT). + type: string + subject_token_type: + $ref: '#/components/schemas/auth-token-subject-token-type' + token_hint: + description: A hint that identifies the token. + type: string + title: auth-tokens-create-request + type: object + auth-tokens-create-response: + description: | + Response for the request to create a new token corresponding to the + requested token type. + properties: + access_token: + description: | + The issued JSON Web Token (JWT) corresponding to the requested + token type. + type: string + client_id: + description: | + An identifier that represents the application which is requesting + the token. Only present in a response corresponding to an + application access token (AAT). + type: string + expires_in: + description: | + The validity lifetime of the token specified in seconds since Unix + epoch. + format: int64 + type: integer + refresh_token: + description: A token to refresh the issued token. + type: string + scope: + description: | + The scopes associated with the issued token. A space-delimited list + of values in which the order of values does not matter. + type: string + token_type: + $ref: '#/components/schemas/auth-token-token-type' + required: + - access_token + - expires_in + - token_type + title: auth-tokens-create-response + type: object + x-go-name: AuthTokensCreateResponseBody + auth-tokens-delete-request: + description: The request to revoke the token. + properties: + token_id: + description: | + The unique identifier for the token under a given Dev organization. + If no token ID is provided, then the token ID will be set from the + JTI claim of the token in the authorization header. + type: string + title: auth-tokens-delete-request + type: object + auth-tokens-get-response: + description: The response to get the token metadata. + properties: + token: + $ref: '#/components/schemas/auth-token' + required: + - token + title: auth-tokens-get-response + type: object + x-go-name: AuthTokensGetResponseBody + auth-tokens-list-response: + description: The response to list the token metadata. + properties: + tokens: + description: The list of token metadata. + items: + $ref: '#/components/schemas/auth-token' + type: array + required: + - tokens + title: auth-tokens-list-response + type: object + x-go-name: AuthTokensListResponseBody + auth-tokens-org-traits: + description: Carries Rev org info. + properties: + display_name: + description: The display name of the Rev org. + type: string + domain: + description: The domain of the Rev org. + type: string + title: auth-tokens-org-traits + type: object + auth-tokens-rev-info: + description: | + Carries info corresponding to the Rev user to be provisioned and/or + issue a Rev session token. + properties: + org_ref: + description: An identifier which uniquely identifies a Rev org. + type: string + org_traits: + $ref: '#/components/schemas/auth-tokens-org-traits' + rev_user_id: + description: The unique ID of the Rev user. + type: string + user_ref: + description: An identifier which uniquely identifies a Rev user. + type: string + user_traits: + $ref: '#/components/schemas/auth-tokens-user-traits' + required: + - user_ref + title: auth-tokens-rev-info + type: object + auth-tokens-self-delete-request: + description: | + The request to delete all the tokens created by the authenticated user, + that match with the provided token type. + properties: + requested_token_type: + $ref: '#/components/schemas/auth-token-requested-token-type' + title: auth-tokens-self-delete-request + type: object + auth-tokens-update-request: + description: A request to update the token metadata. + properties: + token_hint: + description: A hint that identifies the token. + type: string + token_id: + description: | + The unique identifier of the token under a given Dev organization. + type: string + required: + - token_hint + - token_id + title: auth-tokens-update-request + type: object + auth-tokens-update-response: + description: Response for the request to update the token metadata. + properties: + token: + $ref: '#/components/schemas/auth-token' + required: + - token + title: auth-tokens-update-response + type: object + x-go-name: AuthTokensUpdateResponseBody + auth-tokens-user-traits: + description: Carries Rev user info. + properties: + display_name: + description: The display name of the Rev user. + type: string + email: + description: The email address of the Rev user. + type: string + full_name: + description: The full name of the Rev user. + type: string + title: auth-tokens-user-traits + type: object + capability: + allOf: + - $ref: '#/components/schemas/part-base' + title: capability + capability-summary: + allOf: + - $ref: '#/components/schemas/part-base-summary' + title: capability-summary + dev-org-auth-connections-create-request: + description: | + Request to create a new enterprise authentication connection. + discriminator: + mapping: + google_apps: '#/components/schemas/auth-connection-options-google-apps' + oidc: '#/components/schemas/auth-connection-options-oidc' + samlp: '#/components/schemas/auth-connection-options-saml' + waad: '#/components/schemas/auth-connection-options-azure-ad' + propertyName: type + oneOf: + - $ref: '#/components/schemas/auth-connection-options-azure-ad' + - $ref: '#/components/schemas/auth-connection-options-google-apps' + - $ref: '#/components/schemas/auth-connection-options-oidc' + - $ref: '#/components/schemas/auth-connection-options-saml' + properties: + display_name: + description: | + Display name of the authentication connection. This name will be + visible to all the users when they sign in to this Dev + organization. For example, if the display_name is 'abclogin', then + it would appear on the login button as 'Log in to abclogin'. + type: string + type: + $ref: '#/components/schemas/dev-org-auth-connections-create-request-type' + required: + - type + title: dev-org-auth-connections-create-request + type: object + dev-org-auth-connections-create-request-type: + description: | + Defines the type for the authentication connection. Different types of + authentication connections have different configuration parameters. + enum: + - google_apps + - oidc + - samlp + - waad + type: string + dev-org-auth-connections-create-response: + description: | + Response for the request to create a new enterprise authentication + connection. + properties: + auth_connection: + $ref: '#/components/schemas/auth-connection' + required: + - auth_connection + title: dev-org-auth-connections-create-response + type: object + x-go-name: DevOrgAuthConnectionsCreateResponseBody + dev-org-auth-connections-delete-request: + description: | + Request to delete an enterprise authentication connection for a Dev + organization. A default connection and a connection which is currently + enabled cannot be deleted. + properties: + id: + description: ID of the authentication connection to be deleted. + type: string + required: + - id + title: dev-org-auth-connections-delete-request + type: object + dev-org-auth-connections-get-response: + description: | + Response object encapsulating the configuration details of an + authentication connection. + properties: + auth_connection: + $ref: '#/components/schemas/auth-connection' + required: + - auth_connection + title: dev-org-auth-connections-get-response + type: object + x-go-name: DevOrgAuthConnectionsGetResponseBody + dev-org-auth-connections-list-response: + description: | + Response object for the request to list all the social and enterprise + authentication connections configured for a Dev organization. + properties: + auth_connections: + description: | + List of all the authentication connections currently configured for + a Dev organization. + items: + $ref: '#/components/schemas/auth-connection' + type: array + required: + - auth_connections + title: dev-org-auth-connections-list-response + type: object + x-go-name: DevOrgAuthConnectionsListResponseBody + dev-org-auth-connections-toggle-request: + description: | + Request to enable or disable an authentication connection for a Dev + organization. + properties: + id: + description: ID of the authentication connection to be toggled. + type: string + toggle: + $ref: '#/components/schemas/auth-connection-toggle' + required: + - id + title: dev-org-auth-connections-toggle-request + type: object + dev-org-auth-connections-update-request: + description: | + Request to update an enterprise authentication connection for a Dev + organization. + discriminator: + mapping: + google_apps: '#/components/schemas/auth-connection-options-google-apps' + none: '#/components/schemas/empty' + oidc: '#/components/schemas/auth-connection-options-oidc' + samlp: '#/components/schemas/auth-connection-options-saml' + waad: '#/components/schemas/auth-connection-options-azure-ad' + propertyName: type + oneOf: + - $ref: '#/components/schemas/auth-connection-options-azure-ad' + - $ref: '#/components/schemas/auth-connection-options-google-apps' + - $ref: '#/components/schemas/auth-connection-options-oidc' + - $ref: '#/components/schemas/auth-connection-options-saml' + properties: + display_name: + description: | + New display name of the authentication connection. This name will + be visible to all the users when they sign in to this Dev + organization. For example, if the display_name is 'abclogin', then + it would appear on the login button as 'Log in to abclogin'. + type: string + id: + description: | + ID of the authentication connection which is to be updated. + type: string + type: + $ref: '#/components/schemas/dev-org-auth-connections-update-request-type' + required: + - id + - type + title: dev-org-auth-connections-update-request + type: object + dev-org-auth-connections-update-request-type: + description: | + Specifies the type for the authentication connection. Different types + of authentication connections have different configuration parameters + that can be updated. + enum: + - google_apps + - none + - oidc + - samlp + - waad + type: string + dev-org-auth-connections-update-response: + description: | + Response for the request to update an enterprise authentication + connection. + properties: + auth_connection: + $ref: '#/components/schemas/auth-connection' + required: + - auth_connection + title: dev-org-auth-connections-update-response + type: object + x-go-name: DevOrgAuthConnectionsUpdateResponseBody + dev-user: + allOf: + - $ref: '#/components/schemas/user-base' + - properties: + external_identities: + description: IDs of the Dev User outside the DevRev SOR. + items: + $ref: '#/components/schemas/external-identity' + type: array + type: object + title: dev-user + dev-user-summary: + allOf: + - $ref: '#/components/schemas/user-base-summary' + title: dev-user-summary + dev-users-list-response: + description: The response to listing the Dev users. + properties: + dev_users: + description: The list of Dev users. + items: + $ref: '#/components/schemas/dev-user' + type: array + next_cursor: + description: | + The cursor used to iterate subsequent results in accordance to the + sort order. If not set, then no later elements exist. + type: string + prev_cursor: + description: | + The cursor used to iterate preceding results in accordance to the + sort order. If not set, then no prior elements exist. + type: string + required: + - dev_users + title: dev-users-list-response + type: object + x-go-name: DevUsersListResponseBody + dev-users-self-response: + description: | + The response to getting the information for the authenticated user. + properties: + dev_user: + $ref: '#/components/schemas/dev-user' + required: + - dev_user + title: dev-users-self-response + type: object + x-go-name: DevUsersSelfResponseBody + empty: + title: empty + type: object + enhancement: + allOf: + - $ref: '#/components/schemas/part-base' + - properties: + target_close_date: + description: Timestamp when the enhancement is expected to be closed. + format: date-time + type: string + type: object + title: enhancement + enhancement-summary: + allOf: + - $ref: '#/components/schemas/part-base-summary' + title: enhancement-summary + error-bad-request: + allOf: + - $ref: '#/components/schemas/error-base' + - discriminator: + mapping: + bad_request: '#/components/schemas/error-bad-request-bad-request' + invalid_enum_value: '#/components/schemas/error-bad-request-invalid-enum-value' + missing_required_field: '#/components/schemas/error-bad-request-missing-required-field' + parse_error: '#/components/schemas/error-bad-request-parse-error' + value_not_permitted: '#/components/schemas/error-bad-request-value-not-permitted' + propertyName: type + oneOf: + - $ref: '#/components/schemas/error-bad-request-bad-request' + - $ref: '#/components/schemas/error-bad-request-invalid-enum-value' + - $ref: '#/components/schemas/error-bad-request-missing-required-field' + - $ref: '#/components/schemas/error-bad-request-parse-error' + - $ref: '#/components/schemas/error-bad-request-value-not-permitted' + properties: + type: + $ref: '#/components/schemas/error-bad-request-type' + required: + - type + type: object + title: error-bad-request + error-bad-request-bad-request: + title: error-bad-request-bad-request + type: object + error-bad-request-invalid-enum-value: + properties: + allowed_values: + description: The allowed values for the field. + items: + type: string + type: array + field_name: + description: The field whose enum value is invalid. + type: string + value: + description: The value that was received. + type: string + required: + - allowed_values + - field_name + - value + title: error-bad-request-invalid-enum-value + type: object + error-bad-request-missing-required-field: + properties: + field_name: + description: The missing field's name. + type: string + required: + - field_name + title: error-bad-request-missing-required-field + type: object + error-bad-request-parse-error: + title: error-bad-request-parse-error + type: object + error-bad-request-type: + enum: + - bad_request + - invalid_enum_value + - missing_required_field + - parse_error + - value_not_permitted + type: string + error-bad-request-value-not-permitted: + properties: + field_name: + description: The field whose value is not permitted. + type: string + reason: + description: The reason the value isn't permitted. + type: string + required: + - field_name + title: error-bad-request-value-not-permitted + type: object + error-base: + properties: + message: + description: The message associated with the error. + type: string + title: error-base + type: object + error-forbidden: + allOf: + - $ref: '#/components/schemas/error-base' + - discriminator: + mapping: + forbidden: '#/components/schemas/error-forbidden-forbidden' + propertyName: type + oneOf: + - $ref: '#/components/schemas/error-forbidden-forbidden' + properties: + type: + $ref: '#/components/schemas/error-forbidden-type' + required: + - type + type: object + title: error-forbidden + error-forbidden-forbidden: + title: error-forbidden-forbidden + type: object + error-forbidden-type: + enum: + - forbidden + type: string + error-internal-server-error: + allOf: + - $ref: '#/components/schemas/error-base' + - discriminator: + mapping: + internal_error: '#/components/schemas/error-internal-server-error-internal-error' + propertyName: type + oneOf: + - $ref: '#/components/schemas/error-internal-server-error-internal-error' + properties: + reference_id: + description: | + A unique ID that's generated for the error that can be used for + inquiry. + type: string + type: + $ref: '#/components/schemas/error-internal-server-error-type' + required: + - type + type: object + title: error-internal-server-error + error-internal-server-error-internal-error: + title: error-internal-server-error-internal-error + type: object + error-internal-server-error-type: + enum: + - internal_error + type: string + error-not-found: + allOf: + - $ref: '#/components/schemas/error-base' + - discriminator: + mapping: + not_found: '#/components/schemas/error-not-found-not-found' + propertyName: type + oneOf: + - $ref: '#/components/schemas/error-not-found-not-found' + properties: + type: + $ref: '#/components/schemas/error-not-found-type' + required: + - type + type: object + title: error-not-found + error-not-found-not-found: + title: error-not-found-not-found + type: object + error-not-found-type: + enum: + - not_found + type: string + error-service-unavailable: + allOf: + - $ref: '#/components/schemas/error-base' + - discriminator: + mapping: + service_unavailable: '#/components/schemas/error-service-unavailable-service-unavailable' + propertyName: type + oneOf: + - $ref: '#/components/schemas/error-service-unavailable-service-unavailable' + properties: + type: + $ref: '#/components/schemas/error-service-unavailable-type' + required: + - type + type: object + title: error-service-unavailable + error-service-unavailable-service-unavailable: + title: error-service-unavailable-service-unavailable + type: object + error-service-unavailable-type: + enum: + - service_unavailable + type: string + error-too-many-requests: + allOf: + - $ref: '#/components/schemas/error-base' + - discriminator: + mapping: + too_many_requests: '#/components/schemas/error-too-many-requests-too-many-requests' + propertyName: type + oneOf: + - $ref: '#/components/schemas/error-too-many-requests-too-many-requests' + properties: + retry_after: + description: | + The number of seconds after which the client should retry. + format: int64 + type: integer + type: + $ref: '#/components/schemas/error-too-many-requests-type' + required: + - type + type: object + title: error-too-many-requests + error-too-many-requests-too-many-requests: + title: error-too-many-requests-too-many-requests + type: object + error-too-many-requests-type: + enum: + - too_many_requests + type: string + error-unauthorized: + allOf: + - $ref: '#/components/schemas/error-base' + - discriminator: + mapping: + unauthenticated: '#/components/schemas/error-unauthorized-unauthenticated' + propertyName: type + oneOf: + - $ref: '#/components/schemas/error-unauthorized-unauthenticated' + properties: + type: + $ref: '#/components/schemas/error-unauthorized-type' + required: + - type + type: object + title: error-unauthorized + error-unauthorized-type: + enum: + - unauthenticated + type: string + error-unauthorized-unauthenticated: + title: error-unauthorized-unauthenticated + type: object + event-part-created: + properties: + part: + $ref: '#/components/schemas/part' + required: + - part + title: event-part-created + type: object + event-part-deleted: + properties: + id: + description: The ID of the part that was deleted. + example: don::core:devo/:/ + type: string + required: + - id + title: event-part-deleted + type: object + event-part-updated: + properties: + part: + $ref: '#/components/schemas/part' + required: + - part + title: event-part-updated + type: object + event-rev-org-created: + properties: + rev_org: + $ref: '#/components/schemas/rev-org' + required: + - rev_org + title: event-rev-org-created + type: object + event-rev-org-deleted: + properties: + id: + description: The ID of the Rev organization that was deleted. + example: don::identity:devo/:revo/ + type: string + required: + - id + title: event-rev-org-deleted + type: object + event-rev-org-updated: + properties: + rev_org: + $ref: '#/components/schemas/rev-org' + required: + - rev_org + title: event-rev-org-updated + type: object + event-tag-created: + properties: + tag: + $ref: '#/components/schemas/tag' + required: + - tag + title: event-tag-created + type: object + event-tag-deleted: + properties: + id: + description: The ID of the tag that was deleted. + example: don::core:devo/:tag/ + type: string + required: + - id + title: event-tag-deleted + type: object + event-tag-updated: + properties: + tag: + $ref: '#/components/schemas/tag' + required: + - tag + title: event-tag-updated + type: object + event-timeline-entry-created: + properties: + entry: + $ref: '#/components/schemas/timeline-entry' + required: + - entry + title: event-timeline-entry-created + type: object + event-timeline-entry-deleted: + properties: + id: + description: The ID of the timeline entry that was deleted. + type: string + required: + - id + title: event-timeline-entry-deleted + type: object + event-timeline-entry-updated: + properties: + entry: + $ref: '#/components/schemas/timeline-entry' + required: + - entry + title: event-timeline-entry-updated + type: object + event-webhook-created: + properties: + webhook: + $ref: '#/components/schemas/webhook' + required: + - webhook + title: event-webhook-created + type: object + event-webhook-deleted: + properties: + id: + description: The ID of the webhook that was deleted. + example: don::integration:devo/:webhook/ + type: string + required: + - id + title: event-webhook-deleted + type: object + event-webhook-updated: + properties: + webhook: + $ref: '#/components/schemas/webhook' + required: + - webhook + title: event-webhook-updated + type: object + event-work-created: + properties: + work: + $ref: '#/components/schemas/work' + required: + - work + title: event-work-created + type: object + event-work-deleted: + properties: + id: + description: The ID of the work that was deleted. + example: don::core:devo/:/ + type: string + required: + - id + title: event-work-deleted + type: object + event-work-updated: + properties: + work: + $ref: '#/components/schemas/work' + required: + - work + title: event-work-updated + type: object + external-identity: + description: External identity of a user. + title: external-identity + type: object + feature: + allOf: + - $ref: '#/components/schemas/part-base' + title: feature + feature-summary: + allOf: + - $ref: '#/components/schemas/part-base-summary' + title: feature-summary + group-summary: + allOf: + - $ref: '#/components/schemas/atom-base-summary' + title: group-summary + issue: + allOf: + - $ref: '#/components/schemas/work-base' + - properties: + priority: + $ref: '#/components/schemas/issue-priority' + type: object + title: issue + issue-priority: + description: Priority of the work based upon impact and criticality. + enum: + - p0 + - p1 + - p2 + - p3 + type: string + list-mode: + description: | + The iteration mode to use. If "after", then entries after the provided + cursor will be returned, or if no cursor is provided, then from the + beginning. If "before", then entries before the provided cursor will be + returned, or if no cursor is provided, then from the end. Entries will + always be returned in the specified sort-by order. + enum: + - after + - before + type: string + org-base: + allOf: + - $ref: '#/components/schemas/atom-base' + - properties: + display_name: + description: Name of the Organization. + type: string + type: object + title: org-base + org-base-summary: + allOf: + - $ref: '#/components/schemas/atom-base-summary' + - properties: + display_name: + description: Name of the Organization. + type: string + type: object + title: org-base-summary + org-environment: + description: | + The environment of the Org. Defaults to 'production' if not specified. + enum: + - production + - staging + - test + type: string + org-summary: + discriminator: + mapping: + rev_org: '#/components/schemas/rev-org-summary' + propertyName: type + oneOf: + - $ref: '#/components/schemas/rev-org-summary' + properties: + type: + $ref: '#/components/schemas/org-type' + required: + - type + title: org-summary + type: object + org-type: + enum: + - rev_org + type: string + part: + discriminator: + mapping: + capability: '#/components/schemas/capability' + enhancement: '#/components/schemas/enhancement' + feature: '#/components/schemas/feature' + product: '#/components/schemas/product' + propertyName: type + oneOf: + - $ref: '#/components/schemas/capability' + - $ref: '#/components/schemas/enhancement' + - $ref: '#/components/schemas/feature' + - $ref: '#/components/schemas/product' + properties: + type: + $ref: '#/components/schemas/part-type' + required: + - type + title: part + type: object + part-base: + allOf: + - $ref: '#/components/schemas/atom-base' + - properties: + artifacts: + description: The attached artifacts. + items: + $ref: '#/components/schemas/artifact-summary' + type: array + description: + description: Description of the part. + type: string + name: + description: Name of the part. + type: string + owned_by: + description: The users that own the part. + items: + $ref: '#/components/schemas/user-summary' + type: array + tags: + description: Tags associated with the object. + items: + $ref: '#/components/schemas/tag-with-value' + type: array + required: + - name + - owned_by + type: object + title: part-base + part-base-summary: + allOf: + - $ref: '#/components/schemas/atom-base-summary' + - properties: + name: + description: Name of the part. + type: string + required: + - name + type: object + title: part-base-summary + part-summary: + discriminator: + mapping: + capability: '#/components/schemas/capability-summary' + enhancement: '#/components/schemas/enhancement-summary' + feature: '#/components/schemas/feature-summary' + product: '#/components/schemas/product-summary' + propertyName: type + oneOf: + - $ref: '#/components/schemas/capability-summary' + - $ref: '#/components/schemas/enhancement-summary' + - $ref: '#/components/schemas/feature-summary' + - $ref: '#/components/schemas/product-summary' + properties: + type: + $ref: '#/components/schemas/part-type' + required: + - type + title: part-summary + type: object + part-type: + enum: + - capability + - enhancement + - feature + - product + type: string + parts-create-request: + discriminator: + mapping: + capability: '#/components/schemas/parts-create-request-capability' + enhancement: '#/components/schemas/parts-create-request-enhancement' + feature: '#/components/schemas/parts-create-request-feature' + product: '#/components/schemas/parts-create-request-product' + propertyName: type + oneOf: + - $ref: '#/components/schemas/parts-create-request-capability' + - $ref: '#/components/schemas/parts-create-request-enhancement' + - $ref: '#/components/schemas/parts-create-request-feature' + - $ref: '#/components/schemas/parts-create-request-product' + properties: + description: + description: Description of the part. + type: string + name: + description: Name of the part. + type: string + owned_by: + description: The users that own the part. + example: + - don::identity:devo/:devu/ + items: + type: string + type: array + type: + $ref: '#/components/schemas/part-type' + required: + - name + - owned_by + - type + title: parts-create-request + type: object + parts-create-request-capability: + properties: + parent_part: + description: ID of the parent product for the capability. + example: + - don::core:devo/:/ + items: + type: string + maxItems: 1 + type: array + required: + - parent_part + title: parts-create-request-capability + type: object + parts-create-request-enhancement: + properties: + parent_part: + description: | + ID of the parent part on which the enhancement is to be created. + example: + - don::core:devo/:/ + items: + type: string + maxItems: 1 + type: array + target_close_date: + description: | + Target close date by which enhancement is expected to be closed. + format: date-time + type: string + required: + - parent_part + title: parts-create-request-enhancement + type: object + parts-create-request-feature: + properties: + parent_part: + description: ID of the parent capability/feature for the feature. + example: + - don::core:devo/:/ + items: + type: string + maxItems: 1 + type: array + required: + - parent_part + title: parts-create-request-feature + type: object + parts-create-request-product: + title: parts-create-request-product + type: object + parts-create-response: + properties: + part: + $ref: '#/components/schemas/part' + required: + - part + title: parts-create-response + type: object + x-go-name: PartsCreateResponseBody + parts-delete-request: + properties: + id: + description: The ID of the part to delete. + example: don::core:devo/:/ + type: string + required: + - id + title: parts-delete-request + type: object + parts-delete-response: + title: parts-delete-response + type: object + x-go-name: PartsDeleteResponseBody + parts-get-response: + properties: + part: + $ref: '#/components/schemas/part' + required: + - part + title: parts-get-response + type: object + x-go-name: PartsGetResponseBody + parts-list-response: + properties: + next_cursor: + description: | + The cursor used to iterate subsequent results in accordance to the + sort order. If not set, then no later elements exist. + type: string + parts: + description: The list of parts. + items: + $ref: '#/components/schemas/part' + type: array + prev_cursor: + description: | + The cursor used to iterate preceding results in accordance to the + sort order. If not set, then no prior elements exist. + type: string + required: + - parts + title: parts-list-response + type: object + x-go-name: PartsListResponseBody + parts-update-request: + discriminator: + mapping: + capability: '#/components/schemas/parts-update-request-capability' + enhancement: '#/components/schemas/parts-update-request-enhancement' + feature: '#/components/schemas/parts-update-request-feature' + none: '#/components/schemas/empty' + product: '#/components/schemas/parts-update-request-product' + propertyName: type + oneOf: + - $ref: '#/components/schemas/parts-update-request-capability' + - $ref: '#/components/schemas/parts-update-request-enhancement' + - $ref: '#/components/schemas/parts-update-request-feature' + - $ref: '#/components/schemas/parts-update-request-product' + properties: + description: + description: The updated description of the part. + type: string + id: + description: The ID of the part to update. + example: don::core:devo/:/ + type: string + name: + description: The updated name of the part. + type: string + owned_by: + $ref: '#/components/schemas/parts-update-request-owned-by' + type: + $ref: '#/components/schemas/part-type' + required: + - id + - type + title: parts-update-request + type: object + parts-update-request-capability: + title: parts-update-request-capability + type: object + parts-update-request-enhancement: + properties: + target_close_date: + description: Updates the target close date of the enhancement. + format: date-time + type: string + title: parts-update-request-enhancement + type: object + parts-update-request-feature: + title: parts-update-request-feature + type: object + parts-update-request-owned-by: + properties: + set: + description: | + Sets the owner IDs to the provided user IDs. This must not be + empty. + example: + - don::identity:devo/:devu/ + items: + type: string + type: array + title: parts-update-request-owned-by + type: object + parts-update-request-product: + title: parts-update-request-product + type: object + parts-update-response: + properties: + part: + $ref: '#/components/schemas/part' + required: + - part + title: parts-update-response + type: object + x-go-name: PartsUpdateResponseBody + product: + allOf: + - $ref: '#/components/schemas/part-base' + title: product + product-summary: + allOf: + - $ref: '#/components/schemas/part-base-summary' + title: product-summary + rev-org: + allOf: + - $ref: '#/components/schemas/org-base' + - properties: + description: + description: Description of the Rev organization. + type: string + domain: + description: Company's domain name. Example - 'devrev.ai'. + type: string + external_ref: + description: | + External ref is a unique identifier for the Rev (customer) + organization from your primary customer system of records. If none + is specified, a system-generated identifier will be assigned to the + organization. + type: string + type: object + title: rev-org + rev-org-summary: + allOf: + - $ref: '#/components/schemas/org-base-summary' + title: rev-org-summary + rev-orgs-create-request: + description: | + Request object to create a new Rev organization in the Dev + organization. + properties: + description: + description: Description of the Rev organization. + type: string + display_name: + description: Name of the Rev organization. + type: string + domain: + description: Company's domain name. Example - 'devrev.ai'. + type: string + environment: + $ref: '#/components/schemas/org-environment' + external_ref: + description: | + External ref is a custom unique identifier which is a reference to + an unique id for this organization's data in some system of + records. + type: string + tier: + description: The tier of the RevOrg. + type: string + required: + - display_name + title: rev-orgs-create-request + type: object + rev-orgs-create-response: + description: | + Response object for request to create a new Rev organization. + properties: + rev_org: + $ref: '#/components/schemas/rev-org' + required: + - rev_org + title: rev-orgs-create-response + type: object + x-go-name: RevOrgsCreateResponseBody + rev-orgs-delete-request: + description: Request object to delete a Rev organization. + properties: + id: + description: The ID of Rev organization to delete. + example: don::identity:devo/:revo/ + type: string + required: + - id + title: rev-orgs-delete-request + type: object + rev-orgs-delete-response: + description: The response to deleting a Rev organization. + title: rev-orgs-delete-response + type: object + x-go-name: RevOrgsDeleteResponseBody + rev-orgs-get-response: + description: The response to getting a Rev organization's information. + properties: + rev_org: + $ref: '#/components/schemas/rev-org' + required: + - rev_org + title: rev-orgs-get-response + type: object + x-go-name: RevOrgsGetResponseBody + rev-orgs-list-response: + description: | + The response to getting a list of Rev organizations' information. + properties: + next_cursor: + description: | + The cursor used to iterate subsequent results in accordance to the + sort order. If not set, then no later elements exist. + type: string + prev_cursor: + description: | + The cursor used to iterate preceding results in accordance to the + sort order. If not set, then no prior elements exist. + type: string + rev_orgs: + description: List with all of the Rev organizations' information. + items: + $ref: '#/components/schemas/rev-org' + type: array + required: + - rev_orgs + title: rev-orgs-list-response + type: object + x-go-name: RevOrgsListResponseBody + rev-orgs-update-request: + description: | + Request object to update information of the Rev organization. + properties: + description: + description: Description of the Rev organization. + type: string + display_name: + description: Customer chosen name for the Rev organization. + type: string + domain: + description: Company's domain name. Example - 'devrev.ai'. + type: string + environment: + $ref: '#/components/schemas/org-environment' + external_ref: + description: | + External ref is a custom unique identifier which is a reference to + an unique id for this organization's data in some system of + records. + type: string + id: + description: The ID of Rev organization to update. + example: don::identity:devo/:revo/ + type: string + tier: + description: The tier of the RevOrg. + type: string + required: + - id + title: rev-orgs-update-request + type: object + rev-orgs-update-response: + description: Response object to updating Rev organization's information. + properties: + rev_org: + $ref: '#/components/schemas/rev-org' + required: + - rev_org + title: rev-orgs-update-response + type: object + x-go-name: RevOrgsUpdateResponseBody + rev-user-summary: + allOf: + - $ref: '#/components/schemas/user-base-summary' + - properties: + external_ref: + description: | + External ref is a mutable unique identifier for a user within the + Rev organization from your primary customer record. If none is + available, a good alternative is the email address/phone number + which could uniquely identify the user. If none is specified, a + system-generated identifier will be assigned to the user. + type: string + rev_org: + $ref: '#/components/schemas/org-summary' + type: object + title: rev-user-summary + set-tag-with-value: + properties: + id: + description: The ID of the tag. + example: don::core:devo/:tag/ + type: string + value: + description: | + The value for the object's association with the tag. If specified, + the value must be one that's specified in the tag's allowed values. + type: string + required: + - id + title: set-tag-with-value + type: object + stage: + description: Describes the current stage of a work item. + properties: + name: + description: Current stage name of the work item. + type: string + required: + - name + title: stage + type: object + stage-init: + description: Sets an object's initial stage. + properties: + name: + description: The name of the stage. + type: string + title: stage-init + type: object + stage-update: + description: Updates an object's stage. + properties: + name: + description: | + The updated name of the stage, otherwise unchanged if not set. + type: string + title: stage-update + type: object + sys-user-summary: + allOf: + - $ref: '#/components/schemas/user-base-summary' + title: sys-user-summary + tag: + allOf: + - $ref: '#/components/schemas/atom-base' + - properties: + allowed_values: + description: | + The allowed values for the tag, where a value is provided when a + tag is associated with an object. If empty, then no value should be + provided when the association is made. + items: + type: string + type: array + description: + description: | + An informative description for the tag that should provide context + on the tag's purpose and usage. + type: string + name: + description: | + The name of the tag, which denotes the logical concept by which all + tagged objects will be associated. The name is guaranteed to be + unique. + type: string + required: + - name + type: object + title: tag + tag-summary: + allOf: + - $ref: '#/components/schemas/atom-base-summary' + - properties: + name: + description: | + The name of the tag, which denotes the logical concept by which all + tagged objects will be associated. The name is guaranteed to be + unique. + type: string + required: + - name + type: object + title: tag-summary + tag-with-value: + properties: + tag: + $ref: '#/components/schemas/tag-summary' + value: + description: The value for the object's association with the tag. + type: string + required: + - tag + title: tag-with-value + type: object + tags-create-request: + description: The request to create a new tag. + properties: + allowed_values: + description: | + The allowed values for the tag, or empty if no values are + permitted. + items: + type: string + type: array + description: + description: The description for the tag. + type: string + name: + description: | + The name for the tag, which must be unique across all tags. + type: string + required: + - name + title: tags-create-request + type: object + tags-create-response: + description: The response to creating a new tag. + properties: + tag: + $ref: '#/components/schemas/tag' + required: + - tag + title: tags-create-response + type: object + x-go-name: TagsCreateResponseBody + tags-delete-request: + description: The request to delete a tag. + properties: + id: + description: The ID of the tag to delete. + example: don::core:devo/:tag/ + type: string + required: + - id + title: tags-delete-request + type: object + tags-delete-response: + description: The response for deleting a tag. + title: tags-delete-response + type: object + x-go-name: TagsDeleteResponseBody + tags-get-response: + description: The response to getting a tag's information. + properties: + tag: + $ref: '#/components/schemas/tag' + required: + - tag + title: tags-get-response + type: object + x-go-name: TagsGetResponseBody + tags-list-response: + description: The response to listing the tags. + properties: + next_cursor: + description: | + The cursor used to iterate subsequent results in accordance to the + sort order. If not set, then no later elements exist. + type: string + prev_cursor: + description: | + The cursor used to iterate preceding results in accordance to the + sort order. If not set, then no prior elements exist. + type: string + tags: + description: The list of tags. + items: + $ref: '#/components/schemas/tag' + type: array + required: + - tags + title: tags-list-response + type: object + x-go-name: TagsListResponseBody + tags-update-allowed-values: + description: Specifies an update to a tag's allowed values. + properties: + set: + description: Sets the allowed values for the tag. + items: + type: string + type: array + title: tags-update-allowed-values + type: object + tags-update-request: + description: The request to update a tag. + properties: + allowed_values: + $ref: '#/components/schemas/tags-update-allowed-values' + description: + description: The updated description of the tag. + type: string + id: + description: The ID of the tag to update. + example: don::core:devo/:tag/ + type: string + name: + description: | + The updated name of the tag. The name must be unique across all + tags. + type: string + required: + - id + title: tags-update-request + type: object + tags-update-response: + description: The response for updating a tag. + properties: + tag: + $ref: '#/components/schemas/tag' + required: + - tag + title: tags-update-response + type: object + x-go-name: TagsUpdateResponseBody + ticket: + allOf: + - $ref: '#/components/schemas/work-base' + - properties: + group: + $ref: '#/components/schemas/group-summary' + rev_org: + $ref: '#/components/schemas/org-summary' + severity: + $ref: '#/components/schemas/ticket-severity' + type: object + title: ticket + ticket-severity: + description: Severity of the ticket. + enum: + - blocker + - high + - low + - medium + type: string + timeline-comment: + allOf: + - $ref: '#/components/schemas/timeline-entry-base' + - properties: + artifacts: + description: The artifacts for the comment. + items: + $ref: '#/components/schemas/artifact-summary' + type: array + body: + description: | + The comment's body. If the comment has been deleted, then no body + will appear in the response. + type: string + body_type: + $ref: '#/components/schemas/timeline-comment-body-type' + snap_kit_body: + description: The SnapKit Body of the comment. + type: object + type: object + title: timeline-comment + timeline-comment-body-type: + description: The type of the body to use for the comment. + enum: + - snap_kit + - text + type: string + timeline-entries-create-request: + description: The request to create a timeline entry for an object. + discriminator: + mapping: + timeline_comment: '#/components/schemas/timeline-entries-create-request-timeline-comment' + propertyName: type + oneOf: + - $ref: '#/components/schemas/timeline-entries-create-request-timeline-comment' + properties: + object: + description: The ID of the object to create the timeline entry for. + example: don::core:devo/:/ + type: string + type: + $ref: '#/components/schemas/timeline-entries-create-request-type' + visibility: + $ref: '#/components/schemas/timeline-entry-visibility' + required: + - object + - type + title: timeline-entries-create-request + type: object + timeline-entries-create-request-timeline-comment: + properties: + artifacts: + description: The IDs of the artifacts attached to the comment. + example: + - don::core:devo/:artifact/ + items: + type: string + type: array + body: + description: The comment's body. + type: string + body_type: + $ref: '#/components/schemas/timeline-comment-body-type' + snap_kit_body: + description: The SnapKit body of the comment. + type: object + title: timeline-entries-create-request-timeline-comment + type: object + timeline-entries-create-request-type: + enum: + - timeline_comment + type: string + timeline-entries-create-response: + description: The response to creating a timeline entry for an object. + properties: + timeline_entry: + $ref: '#/components/schemas/timeline-entry' + required: + - timeline_entry + title: timeline-entries-create-response + type: object + x-go-name: TimelineEntriesCreateResponseBody + timeline-entries-get-response: + description: The request to getting a timeline entry. + properties: + timeline_entry: + $ref: '#/components/schemas/timeline-entry' + required: + - timeline_entry + title: timeline-entries-get-response + type: object + x-go-name: TimelineEntriesGetResponseBody + timeline-entries-list-response: + description: The response to listing timeline entries for an object. + properties: + next_cursor: + description: | + The cursor used to iterate subsequent results in accordance to the + sort order. If not set, then no later elements exist. + type: string + prev_cursor: + description: | + The cursor used to iterate preceding results in accordance to the + sort order. If not set, then no prior elements exist. + type: string + timeline_entries: + description: The timeline entries for the object. + items: + $ref: '#/components/schemas/timeline-entry' + type: array + required: + - timeline_entries + title: timeline-entries-list-response + type: object + x-go-name: TimelineEntriesListResponseBody + timeline-entries-update-request: + description: The request to update a timeline entry. + discriminator: + mapping: + timeline_comment: '#/components/schemas/timeline-entries-update-request-timeline-comment' + propertyName: type + oneOf: + - $ref: '#/components/schemas/timeline-entries-update-request-timeline-comment' + properties: + id: + description: The ID of the timeline entry to update. + type: string + type: + $ref: '#/components/schemas/timeline-entries-update-request-type' + required: + - id + - type + title: timeline-entries-update-request + type: object + timeline-entries-update-request-timeline-comment: + properties: + artifacts: + $ref: '#/components/schemas/timeline-entries-update-request-timeline-comment-artifacts' + body: + description: The updated comment's body. + type: string + body_type: + $ref: '#/components/schemas/timeline-comment-body-type' + snap_kit_body: + description: The SnapKit body of the comment. + type: object + title: timeline-entries-update-request-timeline-comment + type: object + timeline-entries-update-request-timeline-comment-artifacts: + properties: + add: + description: | + Adds the provided artifacts to the comment. An artifact cannot be + added more than once, i.e. nothing is done if the artifact is + already attached. Mutually exclusive with `set`. + example: + - don::core:devo/:artifact/ + items: + type: string + type: array + remove: + description: | + Removes the provided artifacts from the comment. If an artifact is + not present, then it's ignored. Mututally exclusive with `set`. + example: + - don::core:devo/:artifact/ + items: + type: string + type: array + set: + description: Sets the field to the provided artifacts. + example: + - don::core:devo/:artifact/ + items: + type: string + type: array + title: timeline-entries-update-request-timeline-comment-artifacts + type: object + timeline-entries-update-request-type: + enum: + - timeline_comment + type: string + timeline-entries-update-response: + description: The response to updating a timeline entry. + properties: + timeline_entry: + $ref: '#/components/schemas/timeline-entry' + required: + - timeline_entry + title: timeline-entries-update-response + type: object + x-go-name: TimelineEntriesUpdateResponseBody + timeline-entry: + discriminator: + mapping: + timeline_comment: '#/components/schemas/timeline-comment' + propertyName: type + oneOf: + - $ref: '#/components/schemas/timeline-comment' + properties: + type: + $ref: '#/components/schemas/timeline-entry-type' + required: + - type + title: timeline-entry + type: object + timeline-entry-base: + allOf: + - $ref: '#/components/schemas/atom-base' + title: timeline-entry-base + timeline-entry-type: + enum: + - timeline_comment + type: string + timeline-entry-visibility: + description: | + The visibility of the entry. If 'private', then the entry is only + visible to the creator, otherwise if not set, then the entry has + default visibility. + enum: + - private + type: string + user-base: + allOf: + - $ref: '#/components/schemas/atom-base' + - properties: + display_name: + description: | + The user's display name. The name is non-unique and mutable. + type: string + display_picture: + $ref: '#/components/schemas/artifact-summary' + email: + description: Email address of the user. + type: string + full_name: + description: Full name of the user. + type: string + phone_numbers: + description: Phone numbers of the user. + items: + type: string + type: array + state: + $ref: '#/components/schemas/user-state' + type: object + title: user-base + user-base-summary: + allOf: + - $ref: '#/components/schemas/atom-base-summary' + - properties: + display_name: + description: | + The user's display name. The name is non-unique and mutable. + type: string + display_picture: + $ref: '#/components/schemas/artifact-summary' + email: + description: Email address of the user. + type: string + full_name: + description: Full name of the user. + type: string + state: + $ref: '#/components/schemas/user-state' + type: object + title: user-base-summary + user-state: + description: State of the user. + enum: + - active + - deactivated + - locked + - shadow + - unassigned + type: string + user-summary: + discriminator: + mapping: + dev_user: '#/components/schemas/dev-user-summary' + rev_user: '#/components/schemas/rev-user-summary' + sys_user: '#/components/schemas/sys-user-summary' + propertyName: type + oneOf: + - $ref: '#/components/schemas/dev-user-summary' + - $ref: '#/components/schemas/rev-user-summary' + - $ref: '#/components/schemas/sys-user-summary' + properties: + type: + $ref: '#/components/schemas/user-type' + required: + - type + title: user-summary + type: object + user-type: + enum: + - dev_user + - rev_user + - sys_user + type: string + webhook: + allOf: + - $ref: '#/components/schemas/atom-base' + - properties: + event_types: + description: The event types that the webhook will receive. + items: + $ref: '#/components/schemas/webhook-event-type' + type: array + secret: + description: The secret to use for verifying webhook events. + format: byte + type: string + status: + $ref: '#/components/schemas/webhook-status' + url: + description: The URL of the webhook endpoint. + type: string + required: + - secret + - status + - url + type: object + title: webhook + webhook-event-request: + properties: + id: + description: The event's ID. + type: string + part_created: + $ref: '#/components/schemas/event-part-created' + part_deleted: + $ref: '#/components/schemas/event-part-deleted' + part_updated: + $ref: '#/components/schemas/event-part-updated' + rev_org_created: + $ref: '#/components/schemas/event-rev-org-created' + rev_org_deleted: + $ref: '#/components/schemas/event-rev-org-deleted' + rev_org_updated: + $ref: '#/components/schemas/event-rev-org-updated' + tag_created: + $ref: '#/components/schemas/event-tag-created' + tag_deleted: + $ref: '#/components/schemas/event-tag-deleted' + tag_updated: + $ref: '#/components/schemas/event-tag-updated' + timeline_entry_created: + $ref: '#/components/schemas/event-timeline-entry-created' + timeline_entry_deleted: + $ref: '#/components/schemas/event-timeline-entry-deleted' + timeline_entry_updated: + $ref: '#/components/schemas/event-timeline-entry-updated' + timestamp: + description: | + Timestamp of the webhook's invocation for the event. Note this + should be used to protect against replay attacks, where the event + should only be processed if the timestamp isn't stale by several + seconds. + format: date-time + type: string + type: + $ref: '#/components/schemas/webhook-event-type' + verify: + $ref: '#/components/schemas/webhook-event-verify' + webhook_created: + $ref: '#/components/schemas/event-webhook-created' + webhook_deleted: + $ref: '#/components/schemas/event-webhook-deleted' + webhook_id: + description: ID of the webhook for the event. + example: don::integration:devo/:webhook/ + type: string + webhook_updated: + $ref: '#/components/schemas/event-webhook-updated' + work_created: + $ref: '#/components/schemas/event-work-created' + work_deleted: + $ref: '#/components/schemas/event-work-deleted' + work_updated: + $ref: '#/components/schemas/event-work-updated' + required: + - id + - webhook_id + title: webhook-event-request + type: object + webhook-event-response: + properties: + challenge: + description: | + The challenge from the "verify" request, otherwise this should not + be set for other request types. + format: byte + type: string + title: webhook-event-response + type: object + x-go-name: WebhookEventResponseBody + webhook-event-type: + description: The event types that the webhook will receive. + enum: + - part_created + - part_deleted + - part_updated + - rev_org_created + - rev_org_deleted + - rev_org_updated + - tag_created + - tag_deleted + - tag_updated + - timeline_entry_created + - timeline_entry_deleted + - timeline_entry_updated + - verify + - webhook_created + - webhook_deleted + - webhook_updated + - work_created + - work_deleted + - work_updated + type: string + webhook-event-verify: + properties: + challenge: + description: The challenge that must be echoed in the response. + format: byte + type: string + required: + - challenge + title: webhook-event-verify + type: object + webhook-status: + description: The status of the webhook. + enum: + - active + - inactive + - unverified + type: string + webhooks-create-request: + description: The request to create a new webhook. + properties: + event_types: + description: The event types that the webhook endpoint will receive. + items: + $ref: '#/components/schemas/webhook-event-type' + type: array + secret: + description: | + The secret to use when verifying webhook events. If provided, the + secret must be between 8 and 32 bytes (inclusive). If not set, a + secret will be automatically generated and provided in the + response. + format: byte + type: string + url: + description: The URL of the webhook endpoint. + type: string + required: + - url + title: webhooks-create-request + type: object + webhooks-create-response: + description: The response to creating a new webhook. + properties: + webhook: + $ref: '#/components/schemas/webhook' + required: + - webhook + title: webhooks-create-response + type: object + x-go-name: WebhooksCreateResponseBody + webhooks-delete-request: + description: The request to delete a webhook. + properties: + id: + description: ID for the webhook. + example: don::integration:devo/:webhook/ + type: string + required: + - id + title: webhooks-delete-request + type: object + webhooks-delete-response: + description: The response to deleting the webhook. + title: webhooks-delete-response + type: object + x-go-name: WebhooksDeleteResponseBody + webhooks-get-response: + description: The response to getting the information for the webhook. + properties: + webhook: + $ref: '#/components/schemas/webhook' + required: + - webhook + title: webhooks-get-response + type: object + x-go-name: WebhooksGetResponseBody + webhooks-list-response: + description: The response to listing the webhooks. + properties: + webhooks: + description: The list of webhooks. + items: + $ref: '#/components/schemas/webhook' + type: array + required: + - webhooks + title: webhooks-list-response + type: object + x-go-name: WebhooksListResponseBody + webhooks-update-action: + description: The action to update the webhook's status. + enum: + - activate + - deactivate + type: string + webhooks-update-request: + description: The request to update a webhook. + properties: + action: + $ref: '#/components/schemas/webhooks-update-action' + event_types: + $ref: '#/components/schemas/webhooks-update-request-event-types' + id: + description: ID for the webhook. + example: don::integration:devo/:webhook/ + type: string + secret: + description: | + If provided, updates the secret that's used when verifying webhook + events, which must be between 8 and 32 bytes (inclusive). Otherwise + if empty, then a new secret is generated. If the webhook is active, + then its status will transition to the 'unverified' state and it + won't receive any object events until successfully verified. + format: byte + type: string + url: + description: | + The webhook's updated URL. If the webhook is active, then the + webhook's status will transition to the 'unverified' state and it + won't receive any object events until successfully verified. + type: string + required: + - id + title: webhooks-update-request + type: object + webhooks-update-request-event-types: + properties: + add: + description: | + The event types to add. If a provided event type is already set for + the webhook, then nothing is done. Note this is mutually exclusive + with 'set'. + items: + $ref: '#/components/schemas/webhook-event-type' + type: array + remove: + description: | + The event types to remove. If a provided event type isn't set for + the webhook, then nothing is done. Note this is mutually exclusive + with 'set'. + items: + $ref: '#/components/schemas/webhook-event-type' + type: array + set: + description: | + The updated event types, which will replace the webhook's current + event types. Note this is mutually exclusive with 'add' and + 'remove'. + items: + $ref: '#/components/schemas/webhook-event-type' + type: array + title: webhooks-update-request-event-types + type: object + webhooks-update-response: + description: The response to updating the webhook. + properties: + webhook: + $ref: '#/components/schemas/webhook' + required: + - webhook + title: webhooks-update-response + type: object + x-go-name: WebhooksUpdateResponseBody + work: + discriminator: + mapping: + issue: '#/components/schemas/issue' + ticket: '#/components/schemas/ticket' + propertyName: type + oneOf: + - $ref: '#/components/schemas/issue' + - $ref: '#/components/schemas/ticket' + properties: + type: + $ref: '#/components/schemas/work-type' + required: + - type + title: work + type: object + work-base: + allOf: + - $ref: '#/components/schemas/atom-base' + - properties: + applies_to_part: + $ref: '#/components/schemas/part-summary' + artifacts: + description: The artifacts attached to the work item. + items: + $ref: '#/components/schemas/artifact-summary' + type: array + body: + description: Body of the work object. + type: string + owned_by: + description: The users that own the work. + items: + $ref: '#/components/schemas/user-summary' + type: array + reported_by: + description: Users that reported the work. + items: + $ref: '#/components/schemas/user-summary' + type: array + stage: + $ref: '#/components/schemas/stage' + tags: + description: Tags associated with the object. + items: + $ref: '#/components/schemas/tag-with-value' + type: array + target_close_date: + description: Timestamp when the work is expected to be complete. + format: date-time + type: string + title: + description: Title of the work object. + type: string + required: + - owned_by + - title + type: object + title: work-base + work-type: + enum: + - issue + - ticket + type: string + works-create-request: + discriminator: + mapping: + issue: '#/components/schemas/works-create-request-issue' + ticket: '#/components/schemas/works-create-request-ticket' + propertyName: type + oneOf: + - $ref: '#/components/schemas/works-create-request-issue' + - $ref: '#/components/schemas/works-create-request-ticket' + properties: + applies_to_part: + description: | + The [part](https://devrev.ai/docs/product/parts) that the work + applies to. Specifying a part is required when creating tickets and + issues. + example: don::core:devo/:/ + type: string + artifacts: + description: | + The IDs of the artifacts to associate with the work item. + example: + - don::core:devo/:artifact/ + items: + type: string + type: array + body: + description: Body of the work object. + type: string + owned_by: + description: The users that own the work. + example: + - don::identity:devo/:devu/ + items: + type: string + type: array + reported_by: + description: The users that reported the work. + example: + - don::identity:devo/:devu/ + items: + type: string + type: array + stage: + $ref: '#/components/schemas/stage-init' + tags: + description: Tags associated with the work item. + items: + $ref: '#/components/schemas/set-tag-with-value' + type: array + target_close_date: + description: Timestamp for when the work is expected to be complete. + format: date-time + type: string + title: + description: Title of the work object. + type: string + type: + $ref: '#/components/schemas/work-type' + required: + - applies_to_part + - owned_by + - title + - type + title: works-create-request + type: object + works-create-request-issue: + properties: + priority: + $ref: '#/components/schemas/issue-priority' + sprint: + description: The sprint that the issue belongs to. + type: string + title: works-create-request-issue + type: object + works-create-request-ticket: + properties: + group: + description: The group that the ticket is associated with. + type: string + rev_org: + description: The Rev organization that the ticket is associated with. + example: don::identity:devo/:revo/ + type: string + severity: + $ref: '#/components/schemas/ticket-severity' + title: works-create-request-ticket + type: object + works-create-response: + properties: + work: + $ref: '#/components/schemas/work' + required: + - work + title: works-create-response + type: object + x-go-name: WorksCreateResponseBody + works-delete-request: + properties: + id: + description: The work's ID. + example: don::core:devo/:/ + type: string + required: + - id + title: works-delete-request + type: object + works-delete-response: + title: works-delete-response + type: object + x-go-name: WorksDeleteResponseBody + works-export-response: + properties: + works: + description: The resulting collection of work items. + items: + $ref: '#/components/schemas/work' + type: array + required: + - works + title: works-export-response + type: object + x-go-name: WorksExportResponseBody + works-get-response: + properties: + work: + $ref: '#/components/schemas/work' + required: + - work + title: works-get-response + type: object + x-go-name: WorksGetResponseBody + works-list-response: + properties: + next_cursor: + description: | + The cursor used to iterate subsequent results in accordance to the + sort order. If not set, then no later elements exist. + type: string + prev_cursor: + description: | + The cursor used to iterate preceding results in accordance to the + sort order. If not set, then no prior elements exist. + type: string + works: + description: The list of works. + items: + $ref: '#/components/schemas/work' + type: array + required: + - works + title: works-list-response + type: object + x-go-name: WorksListResponseBody + works-update-request: + discriminator: + mapping: + issue: '#/components/schemas/works-update-request-issue' + none: '#/components/schemas/empty' + ticket: '#/components/schemas/works-update-request-ticket' + propertyName: type + oneOf: + - $ref: '#/components/schemas/works-update-request-issue' + - $ref: '#/components/schemas/works-update-request-ticket' + properties: + applies_to_part: + description: Updates the part that the work applies to. + example: don::core:devo/:/ + type: string + artifacts: + $ref: '#/components/schemas/works-update-request-artifact-ids' + body: + description: | + Updated body of the work object, or unchanged if not provided. + type: string + id: + description: The work's ID. + example: don::core:devo/:/ + type: string + owned_by: + $ref: '#/components/schemas/works-update-request-owned-by' + reported_by: + $ref: '#/components/schemas/works-update-request-reported-by' + stage: + $ref: '#/components/schemas/stage-update' + tags: + $ref: '#/components/schemas/works-update-request-tags' + target_close_date: + description: | + Updates the timestamp for when the work is expected to be complete. + format: date-time + type: string + title: + description: | + Updated title of the work object, or unchanged if not provided. + type: string + type: + $ref: '#/components/schemas/work-type' + required: + - id + - type + title: works-update-request + type: object + works-update-request-artifact-ids: + properties: + set: + description: Sets the IDs to the provided artifact IDs. + example: + - don::core:devo/:artifact/ + items: + type: string + type: array + title: works-update-request-artifact-ids + type: object + works-update-request-issue: + properties: + priority: + $ref: '#/components/schemas/issue-priority' + sprint: + description: Updates the sprint that the issue belongs to. + nullable: true + type: string + title: works-update-request-issue + type: object + works-update-request-owned-by: + properties: + set: + description: | + Sets the owner IDs to the provided user IDs. This must not be + empty. + example: + - don::identity:devo/:devu/ + items: + type: string + type: array + title: works-update-request-owned-by + type: object + works-update-request-reported-by: + properties: + set: + description: | + Sets the users that reported the work to the provided user IDs. + example: + - don::identity:devo/:devu/ + items: + type: string + type: array + title: works-update-request-reported-by + type: object + works-update-request-tags: + properties: + set: + description: Sets the provided tags on the work item. + items: + $ref: '#/components/schemas/set-tag-with-value' + type: array + title: works-update-request-tags + type: object + works-update-request-ticket: + properties: + group: + description: The group that the ticket is associated with. + type: string + rev_org: + description: | + Updates the Rev organization that the ticket is associated with. + example: don::identity:devo/:revo/ + nullable: true + type: string + severity: + $ref: '#/components/schemas/ticket-severity' + title: works-update-request-ticket + type: object + works-update-response: + properties: + work: + $ref: '#/components/schemas/work' + required: + - work + title: works-update-response + type: object + x-go-name: WorksUpdateResponseBody + securitySchemes: + auth-token: + description: |- + All the DevRev APIs require a token to authenticate the user. Provide `Authorization: ` as a header to every API request. + [How do I find my token?](https://devrev.ai/docs/apis/auth) + in: header + name: Authorization + type: apiKey +info: + description: DevRev's REST API. + title: DevRev REST API + version: "2022-10-20" +openapi: 3.0.3 +paths: + /artifacts.locate: + get: + description: Gets the download URL for the artifact. + operationId: artifacts-locate + parameters: + - description: The ID of the artifact to get the URL for. + explode: false + in: query + name: id + required: true + schema: + example: don::core:devo/:artifact/ + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/artifacts-locate-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - artifacts + /artifacts.prepare: + post: + description: | + Creates an artifact and generates an upload URL for its data. + operationId: artifacts-prepare + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/artifacts-prepare-request' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/artifacts-prepare-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - artifacts + /auth-tokens.create: + post: + description: | + Creates a JWT corresponding to the requested token type for the + authenticated user. + operationId: auth-tokens-create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/auth-tokens-create-request' + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/auth-tokens-create-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - auth-tokens + /auth-tokens.delete: + post: + description: | + Revokes the token that matches the given token ID issued under the + given Dev organization. + operationId: auth-tokens-delete + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/auth-tokens-delete-request' + responses: + "200": + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - auth-tokens + /auth-tokens.get: + get: + description: | + Gets the token metadata corresponding to the given token ID under the + given Dev organization. + operationId: auth-tokens-get + parameters: + - description: | + The unique identifier of the token under a given Dev organization. + explode: false + in: query + name: token_id + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/auth-tokens-get-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - auth-tokens + /auth-tokens.list: + get: + description: | + Gets the token metadata for all the tokens corresponding to the given + token type issued for a given subject. + operationId: auth-tokens-list + parameters: + - description: | + An identifier that represents the application, which requested the + token. Only relevant for application access tokens. + explode: false + in: query + name: client_id + schema: + type: string + - description: | + The type of the requested token. If no value is specified, the + response will include tokens of all the types. + explode: false + in: query + name: requested_token_type + schema: + $ref: '#/components/schemas/auth-token-requested-token-type' + - description: | + The subject associated with the token. In the absence of this + parameter, the ID of the authenticated entity is treated as the + subject. + explode: false + in: query + name: subject + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/auth-tokens-list-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - auth-tokens + /auth-tokens.self.delete: + post: + description: | + Revokes all the tokens that matches the given token type created by the + authenticated user. + operationId: auth-tokens-self-delete + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/auth-tokens-self-delete-request' + responses: + "200": + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - auth-tokens + /auth-tokens.update: + post: + description: | + Updates token metadata of a token issued under a given Dev + organization. + operationId: auth-tokens-update + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/auth-tokens-update-request' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/auth-tokens-update-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - auth-tokens + /dev-orgs.auth-connections.create: + post: + description: | + Creates a new enterprise authentication connection for a Dev + organization. This authentication connection will not be enabled by + default for the organization and the user will need to explicitly + enable this. Keep in mind that at a time, only one authentication + connection can be enabled for a Dev organization. At present, only 5 + enterprise connections can be created by an organization. + operationId: dev-org-auth-connections-create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/dev-org-auth-connections-create-request' + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/dev-org-auth-connections-create-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - auth-connection + - dev-orgs + /dev-orgs.auth-connections.delete: + post: + description: | + Deletes an authentication connection. Only enterprise connections which + are explicitly set up for a Dev organization can be deleted. Default + connections can not be deleted using this method. + operationId: dev-org-auth-connections-delete + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/dev-org-auth-connections-delete-request' + responses: + "200": + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - auth-connection + - dev-orgs + /dev-orgs.auth-connections.get: + get: + description: Retrieves the details for an authentication connection. + operationId: dev-org-auth-connections-get + parameters: + - description: ID of the authentication connection. + explode: false + in: query + name: id + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/dev-org-auth-connections-get-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - auth-connection + - dev-orgs + /dev-orgs.auth-connections.list: + get: + description: | + Lists all the authentication connections available for a Dev + organization. This list will include both social and enterprise + connections which are either available by default or are explicitly + created by the user. + operationId: dev-org-auth-connections-list + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/dev-org-auth-connections-list-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - auth-connection + - dev-orgs + /dev-orgs.auth-connections.toggle: + post: + description: | + Enable or disable an authentication connection for a Dev organization. + Currently, only 1 authentication connection can be enabled at a time. + When a new authentication connection is enabled, the connection which + is currently enabled for the Dev organization is automatically + disabled. + operationId: dev-org-auth-connections-toggle + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/dev-org-auth-connections-toggle-request' + responses: + "200": + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - auth-connection + - dev-orgs + /dev-orgs.auth-connections.update: + post: + description: Updates an authentication connection. + operationId: dev-org-auth-connections-update + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/dev-org-auth-connections-update-request' + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/dev-org-auth-connections-update-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - auth-connection + - dev-orgs + /dev-users.list: + get: + description: Lists users within your organization. + operationId: dev-users-list + parameters: + - description: | + The cursor to resume iteration from. If not provided, then iteration + starts from the beginning. + explode: false + in: query + name: cursor + schema: + type: string + - description: Filters Dev users based on email addresses. + explode: false + in: query + name: email + schema: + items: + type: string + type: array + - description: | + The maximum number of Dev users to return. The default is '50'. + explode: false + in: query + name: limit + schema: + format: int32 + type: integer + - description: | + The iteration mode to use, otherwise if not set, then "after" is + used. + explode: false + in: query + name: mode + schema: + $ref: '#/components/schemas/list-mode' + - description: | + Fields to sort the Dev users by and the direction to sort them. + explode: false + in: query + name: sort_by + schema: + items: + type: string + type: array + - description: Filters Dev users based on state. + explode: false + in: query + name: state + schema: + items: + $ref: '#/components/schemas/user-state' + type: array + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/dev-users-list-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - dev-users + /dev-users.self: + get: + description: Gets the authenticated user's information. + operationId: dev-users-self + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/dev-users-self-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - dev-users + /parts.create: + post: + description: Creates new [part](https://devrev.ai/docs/product/parts). + operationId: parts-create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/parts-create-request' + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/parts-create-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - parts + /parts.delete: + post: + description: Deletes a [part](https://devrev.ai/docs/product/parts). + operationId: parts-delete + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/parts-delete-request' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/parts-delete-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - parts + /parts.get: + get: + description: | + Gets a [part's](https://devrev.ai/docs/product/parts) information. + operationId: parts-get + parameters: + - description: The ID of the part to retrieve. + explode: false + in: query + name: id + required: true + schema: + example: don::core:devo/:/ + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/parts-get-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - parts + /parts.list: + get: + description: | + Lists a collection of [parts](https://devrev.ai/docs/product/parts). + operationId: parts-list + parameters: + - description: Filters for parts created by any of these users. + explode: false + in: query + name: created_by + schema: + example: + - don::identity:devo/:devu/ + items: + type: string + type: array + - description: | + The cursor to resume iteration from. If not provided, then iteration + starts from the beginning. + explode: false + in: query + name: cursor + schema: + type: string + - description: | + The maximum number of parts to return. The default is '50'. + explode: false + in: query + name: limit + schema: + format: int32 + type: integer + - description: | + The iteration mode to use, otherwise if not set, then "after" is + used. + explode: false + in: query + name: mode + schema: + $ref: '#/components/schemas/list-mode' + - description: Filters for parts of the provided name(s). + explode: false + in: query + name: name + schema: + items: + type: string + type: array + - description: Filters for parts owned by any of these users. + explode: false + in: query + name: owned_by + schema: + example: + - don::identity:devo/:devu/ + items: + type: string + type: array + - description: Filters for parts of the provided type(s). + explode: false + in: query + name: type + schema: + items: + $ref: '#/components/schemas/part-type' + type: array + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/parts-list-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - parts + /parts.update: + post: + description: | + Updates a [part's](https://devrev.ai/docs/product/parts) information. + operationId: parts-update + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/parts-update-request' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/parts-update-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - parts + /rev-orgs.create: + post: + description: | + Creates a Rev organization in the authenticated user's Dev + organization. + operationId: rev-orgs-create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/rev-orgs-create-request' + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/rev-orgs-create-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - rev-orgs + /rev-orgs.delete: + post: + description: Deletes the Rev organization. + operationId: rev-orgs-delete + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/rev-orgs-delete-request' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/rev-orgs-delete-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - rev-orgs + /rev-orgs.get: + get: + description: Retrieves the Rev organization's information. + operationId: rev-orgs-get + parameters: + - description: The ID of the required Rev organization. + explode: false + in: query + name: id + required: true + schema: + example: don::identity:devo/:revo/ + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/rev-orgs-get-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - rev-orgs + /rev-orgs.list: + get: + description: | + Gets the list of Rev organizations' information belonging to the + authenticated user's Dev Organization which the user is also authorized + to access. + operationId: rev-orgs-list + parameters: + - description: Filters by creator. + explode: false + in: query + name: created_by + schema: + items: + type: string + type: array + - description: | + Filters for objects created after the provided timestamp (inclusive). + explode: false + in: query + name: created_date.after + schema: + format: date-time + type: string + - description: | + Filters for objects created before the provided timestamp + (inclusive). + explode: false + in: query + name: created_date.before + schema: + format: date-time + type: string + - description: | + The cursor to resume iteration from. If not provided, then iteration + starts from the beginning. + explode: false + in: query + name: cursor + schema: + type: string + - description: List of external refs to filter Rev organizations for. + explode: false + in: query + name: external_ref + schema: + items: + type: string + type: array + - description: | + The maximum number of Rev organizations to be retrieved per page. + explode: false + in: query + name: limit + schema: + format: int32 + type: integer + - description: | + The iteration mode to use, otherwise if not set, then "after" is + used. + explode: false + in: query + name: mode + schema: + $ref: '#/components/schemas/list-mode' + - description: | + Filters for objects created after the provided timestamp (inclusive). + explode: false + in: query + name: modified_date.after + schema: + format: date-time + type: string + - description: | + Filters for objects created before the provided timestamp + (inclusive). + explode: false + in: query + name: modified_date.before + schema: + format: date-time + type: string + - description: | + Fields to sort the Rev organizations by and the direction to sort + them. + explode: false + in: query + name: sort_by + schema: + items: + type: string + type: array + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/rev-orgs-list-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - rev-orgs + /rev-orgs.update: + post: + description: Updates the Rev organization's information. + operationId: rev-orgs-update + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/rev-orgs-update-request' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/rev-orgs-update-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - rev-orgs + /tags.create: + post: + description: | + Creates a new tag, which is used to create associations between objects + and a logical concept denoted by the tag's name. + operationId: tags-create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/tags-create-request' + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/tags-create-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - tags + /tags.delete: + post: + description: Deletes a tag. + operationId: tags-delete + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/tags-delete-request' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/tags-delete-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - tags + /tags.get: + get: + description: Gets a tag's information. + operationId: tags-get + parameters: + - description: The requested tag's ID. + explode: false + in: query + name: id + required: true + schema: + example: don::core:devo/:tag/ + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/tags-get-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - tags + /tags.list: + get: + description: Lists the available tags. + operationId: tags-list + parameters: + - description: | + The cursor to resume iteration from. If not provided, then iteration + starts from the beginning. + explode: false + in: query + name: cursor + schema: + type: string + - description: The maximum number of tags to return. The default is '50'. + explode: false + in: query + name: limit + schema: + format: int32 + type: integer + - description: | + The iteration mode to use, otherwise if not set, then "after" is + used. + explode: false + in: query + name: mode + schema: + $ref: '#/components/schemas/list-mode' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/tags-list-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - tags + /tags.update: + post: + description: Updates a tag's information. + operationId: tags-update + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/tags-update-request' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/tags-update-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - tags + /timeline-entries.create: + post: + description: Creates a new entry on an object's timeline. + operationId: timeline-entries-create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/timeline-entries-create-request' + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/timeline-entries-create-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - timeline-entries + /timeline-entries.get: + get: + description: Gets an entry on an object's timeline. + operationId: timeline-entries-get + parameters: + - description: The ID of the timeline entry to get. + explode: false + in: query + name: id + required: true + schema: + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/timeline-entries-get-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - timeline-entries + /timeline-entries.list: + get: + description: Lists the timeline entries for an object. + operationId: timeline-entries-list + parameters: + - description: The ID of the object to list timeline entries for. + explode: false + in: query + name: object + required: true + schema: + example: don::core:devo/:/ + type: string + - description: | + The cursor to resume iteration from. If not provided, then iteration + starts from the beginning. + explode: false + in: query + name: cursor + schema: + type: string + - description: | + The maximum number of entries to return. If not set, then this + defaults to `50`. + explode: false + in: query + name: limit + schema: + format: int32 + type: integer + - description: | + The iteration mode to use, otherwise if not set, then "after" is + used. + explode: false + in: query + name: mode + schema: + $ref: '#/components/schemas/list-mode' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/timeline-entries-list-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - timeline-entries + /timeline-entries.update: + post: + description: Updates an entry on an object's timeline. + operationId: timeline-entries-update + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/timeline-entries-update-request' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/timeline-entries-update-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - timeline-entries + /webhooks.create: + post: + description: Creates a new webhook target. + operationId: webhooks-create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/webhooks-create-request' + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/webhooks-create-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - webhooks + /webhooks.delete: + post: + description: Deletes the requested webhook. + operationId: webhooks-delete + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/webhooks-delete-request' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/webhooks-delete-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - webhooks + /webhooks.get: + get: + description: Gets the requested webhook's information. + operationId: webhooks-get + parameters: + - description: ID for the webhook. + explode: false + in: query + name: id + required: true + schema: + example: don::integration:devo/:webhook/ + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/webhooks-get-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - webhooks + /webhooks.list: + get: + description: Lists the webhooks. + operationId: webhooks-list + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/webhooks-list-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - webhooks + /webhooks.update: + post: + description: Updates the requested webhook. + operationId: webhooks-update + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/webhooks-update-request' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/webhooks-update-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - webhooks + /works.create: + post: + description: | + Creates new work ([issue](https://devrev.ai/docs/product/build), + [ticket](https://devrev.ai/docs/product/support)) item. + operationId: works-create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/works-create-request' + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/works-create-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - works + /works.delete: + post: + description: Deletes a work item. + operationId: works-delete + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/works-delete-request' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/works-delete-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - works + /works.export: + get: + description: Exports a collection of work items. + operationId: works-export + parameters: + - description: Filters for work belonging to any of the provided parts. + explode: false + in: query + name: applies_to_part + schema: + example: + - don::core:devo/:/ + items: + type: string + type: array + - description: Filters for work created by any of these users. + explode: false + in: query + name: created_by + schema: + example: + - don::identity:devo/:devu/ + items: + type: string + type: array + - description: | + The number of work items to return. The default is '50', the maximum + is '5000'. + explode: false + in: query + name: first + schema: + format: int32 + type: integer + - description: Filters for issues with any of the provided priorities. + explode: false + in: query + name: issue.priority + schema: + items: + $ref: '#/components/schemas/issue-priority' + type: array + - description: | + Filters for issues with any of the provided Rev organizations. + explode: false + in: query + name: issue.rev_orgs + schema: + example: + - don::identity:devo/:revo/ + items: + type: string + type: array + - description: Filters for work owned by any of these users. + explode: false + in: query + name: owned_by + schema: + example: + - don::identity:devo/:devu/ + items: + type: string + type: array + - description: Filters for records in the provided stage(s). + explode: false + in: query + name: stage.name + schema: + items: + type: string + type: array + - description: | + Filters for tickets that are associated with any of the provided Rev + organizations. + explode: false + in: query + name: ticket.rev_org + schema: + example: + - don::identity:devo/:revo/ + items: + type: string + type: array + - description: Filters for tickets with any of the provided severities. + explode: false + in: query + name: ticket.severity + schema: + items: + $ref: '#/components/schemas/ticket-severity' + type: array + - description: Filters for work of the provided types. + explode: false + in: query + name: type + schema: + items: + $ref: '#/components/schemas/work-type' + type: array + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/works-export-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - works + /works.get: + get: + description: Gets a work item's information. + operationId: works-get + parameters: + - description: The work's ID. + explode: false + in: query + name: id + required: true + schema: + example: don::core:devo/:/ + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/works-get-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - works + /works.list: + get: + description: Lists a collection of work items. + operationId: works-list + parameters: + - description: Filters for work belonging to any of the provided parts. + explode: false + in: query + name: applies_to_part + schema: + example: + - don::core:devo/:/ + items: + type: string + type: array + - description: Filters for work created by any of these users. + explode: false + in: query + name: created_by + schema: + example: + - don::identity:devo/:devu/ + items: + type: string + type: array + - description: | + The cursor to resume iteration from. If not provided, then iteration + starts from the beginning. + explode: false + in: query + name: cursor + schema: + type: string + - description: Filters for issues with any of the provided priorities. + explode: false + in: query + name: issue.priority + schema: + items: + $ref: '#/components/schemas/issue-priority' + type: array + - description: | + Filters for issues with any of the provided Rev organizations. + explode: false + in: query + name: issue.rev_orgs + schema: + example: + - don::identity:devo/:revo/ + items: + type: string + type: array + - description: | + The maximum number of works to return. The default is '50'. + explode: false + in: query + name: limit + schema: + format: int32 + type: integer + - description: | + The iteration mode to use, otherwise if not set, then "after" is + used. + explode: false + in: query + name: mode + schema: + $ref: '#/components/schemas/list-mode' + - description: Filters for work owned by any of these users. + explode: false + in: query + name: owned_by + schema: + example: + - don::identity:devo/:devu/ + items: + type: string + type: array + - description: Filters for records in the provided stage(s). + explode: false + in: query + name: stage.name + schema: + items: + type: string + type: array + - description: | + Filters for tickets that are associated with any of the provided Rev + organizations. + explode: false + in: query + name: ticket.rev_org + schema: + example: + - don::identity:devo/:revo/ + items: + type: string + type: array + - description: Filters for tickets with any of the provided severities. + explode: false + in: query + name: ticket.severity + schema: + items: + $ref: '#/components/schemas/ticket-severity' + type: array + - description: Filters for work of the provided types. + explode: false + in: query + name: type + schema: + items: + $ref: '#/components/schemas/work-type' + type: array + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/works-list-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - works + /works.update: + post: + description: Updates a work item's information. + operationId: works-update + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/works-update-request' + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/works-update-response' + description: Success. + "400": + $ref: '#/components/responses/bad-request' + "401": + $ref: '#/components/responses/unauthorized' + "403": + $ref: '#/components/responses/forbidden' + "404": + $ref: '#/components/responses/not-found' + "429": + $ref: '#/components/responses/too-many-requests' + "500": + $ref: '#/components/responses/internal-server-error' + "503": + $ref: '#/components/responses/service-unavailable' + tags: + - works +security: +- auth-token: [] +servers: +- description: DevRev API endpoint. + url: 'https://api.devrev.ai' + x-name: Production +tags: +- description: Artifact (file) management APIs. + name: artifacts +- description: Auth Connections of DevOrg. + name: auth-connection +- description: Security token interactions. + name: auth-tokens +- description: Dev organization interactions. + name: dev-orgs +- description: Dev user interactions. + name: dev-users +- description: DevRev part interactions. + name: parts +- description: Rev organization interactions. + name: rev-orgs +- description: DevRev tag interactions. + name: tags +- description: APIs to manage timeline entries for objects. + name: timeline-entries +- description: Webhook event APIs. + name: webhooks +- description: DevRev work interactions. + name: works