diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index e2a81b44..714cda06 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -11,8 +11,13 @@ jobs: steps: - name: Get current date id: date + env: + GH_TOKEN: ${{ github.token }} + PR_NUMBER: ${{ github.event.number }} run: | - echo "DATE=$(date +'%Y-%m-%d')" >> $GITHUB_ENV + DATE=$(gh pr view --repo https://github.com/devrev/fern-api-docs ${{ env.PR_NUMBER }} --json createdAt --jq .[] | cut -d 'T' -f 1) + echo "DATE=$DATE" >> $GITHUB_ENV + echo "Date PR opened is ${{ env.DATE }}" - name: Check out repository content uses: actions/checkout@v2 with: diff --git a/changelog.py b/changelog.py index 74ee1344..43c9b841 100644 --- a/changelog.py +++ b/changelog.py @@ -15,15 +15,15 @@ def main(vrn, d): outfile.write(p) print(f"Wrote prompt to {pr_file}.") + print('Sending request to LLM.') l = llm_client.get_response(p) - log_file = f"./fern/apis/{vrn}/changelog/{d}.md" if (l): with open(log_file, 'w', encoding="utf-8") as outfile: - outfile.write(l) + outfile.write(llm_client.get_lines_between_tags(l, 'changelog')) print(f"Wrote log to {log_file}.") else: - print(f"Failed to generate {log_file}.") + print(f"Failed to generate {log_file}. No response from LLM.") @@ -32,7 +32,7 @@ def gen_prompt(oasdiff, links, version): oasdiff = infile.read() prompt = f""" -Please provide an API changelog for the {version} API from the following OASDiff of OpenAPI spec changes. The output should be in markdown format grouping endpoints by use case/object type. For cases where some schema is modified, please also tell what endpoints it affects. Wherever an endpoint, property, or enum value is mentioned, surround it with backticks (`). Wherever an API is mentioned, include a hyperlink to the corresponding path from `` section. +Please provide an API changelog for the {version} API from the following OASDiff of OpenAPI spec changes. The output should be in markdown format grouping endpoints by use case/object type. For cases where some schema is modified, please also tell what endpoints it affects. Wherever an endpoint, property, or enum value is mentioned, surround it with backticks (`). Use only H2 and H3 headings. Wherever an API is mentioned, include a hyperlink to the corresponding path from `` section. Place the changelog in a `` element in your response so I can parse it out. {oasdiff} diff --git a/fern/apis/beta/changelog/2025-04-24.md b/fern/apis/beta/changelog/2025-04-24.md new file mode 100644 index 00000000..349f7a13 --- /dev/null +++ b/fern/apis/beta/changelog/2025-04-24.md @@ -0,0 +1,19 @@ + +## New Endpoints + +### Service Accounts +- Added [`POST /service-accounts.create`](/beta/api-reference/service-accounts/create) for creating service accounts + +### Widgets +- Added [`GET /widgets.get`](/beta/api-reference/widgets/get) for retrieving widgets + +## Modified Features + +### Customization +- Added `is_overridable` property to schema enum fields + +### Timeline +- Added `references` property to timeline comments + +### Parts +- Added support for part types `linkable` and `runnable` diff --git a/fern/apis/beta/openapi-beta.yaml b/fern/apis/beta/openapi-beta.yaml index 4e96d951..01e014f4 100644 --- a/fern/apis/beta/openapi-beta.yaml +++ b/fern/apis/beta/openapi-beta.yaml @@ -2217,6 +2217,7 @@ components: incident: '#/components/schemas/incident' issue: '#/components/schemas/issue' link: '#/components/schemas/link' + linkable: '#/components/schemas/linkable' meeting: '#/components/schemas/meeting' object_member: '#/components/schemas/object-member' opportunity: '#/components/schemas/opportunity' @@ -2224,6 +2225,7 @@ components: question_answer: '#/components/schemas/question-answer' rev_org: '#/components/schemas/rev-org' rev_user: '#/components/schemas/rev-user' + runnable: '#/components/schemas/runnable' service_account: '#/components/schemas/service-account' sla: '#/components/schemas/sla' sla_tracker: '#/components/schemas/sla-tracker' @@ -2261,6 +2263,7 @@ components: - $ref: '#/components/schemas/incident' - $ref: '#/components/schemas/issue' - $ref: '#/components/schemas/link' + - $ref: '#/components/schemas/linkable' - $ref: '#/components/schemas/meeting' - $ref: '#/components/schemas/object-member' - $ref: '#/components/schemas/opportunity' @@ -2268,6 +2271,7 @@ components: - $ref: '#/components/schemas/question-answer' - $ref: '#/components/schemas/rev-org' - $ref: '#/components/schemas/rev-user' + - $ref: '#/components/schemas/runnable' - $ref: '#/components/schemas/service-account' - $ref: '#/components/schemas/sla' - $ref: '#/components/schemas/sla-tracker' @@ -2355,6 +2359,7 @@ components: incident: '#/components/schemas/incident-summary' issue: '#/components/schemas/issue-summary' link: '#/components/schemas/link-summary' + linkable: '#/components/schemas/linkable-summary' meeting: '#/components/schemas/meeting-summary' object_member: '#/components/schemas/object-member-summary' opportunity: '#/components/schemas/opportunity-summary' @@ -2362,6 +2367,7 @@ components: question_answer: '#/components/schemas/question-answer-summary' rev_org: '#/components/schemas/rev-org-summary' rev_user: '#/components/schemas/rev-user-summary' + runnable: '#/components/schemas/runnable-summary' service_account: '#/components/schemas/service-account-summary' sla: '#/components/schemas/sla-summary' sla_tracker: '#/components/schemas/sla-tracker-summary' @@ -2399,6 +2405,7 @@ components: - $ref: '#/components/schemas/incident-summary' - $ref: '#/components/schemas/issue-summary' - $ref: '#/components/schemas/link-summary' + - $ref: '#/components/schemas/linkable-summary' - $ref: '#/components/schemas/meeting-summary' - $ref: '#/components/schemas/object-member-summary' - $ref: '#/components/schemas/opportunity-summary' @@ -2406,6 +2413,7 @@ components: - $ref: '#/components/schemas/question-answer-summary' - $ref: '#/components/schemas/rev-org-summary' - $ref: '#/components/schemas/rev-user-summary' + - $ref: '#/components/schemas/runnable-summary' - $ref: '#/components/schemas/service-account-summary' - $ref: '#/components/schemas/sla-summary' - $ref: '#/components/schemas/sla-tracker-summary' @@ -2450,6 +2458,7 @@ components: - incident - issue - link + - linkable - meeting - object_member - opportunity @@ -2457,6 +2466,7 @@ components: - question_answer - rev_org - rev_user + - runnable - service_account - sla - sla_tracker @@ -3252,6 +3262,84 @@ components: type: boolean description: Manually set presence to away. title: availability-preferences-group + bar-visualization-x-axis: + type: object + description: The X-axis for a bar visualization. + properties: + color: + $ref: '#/components/schemas/visualization-axis-color' + drill_throughs: + type: array + description: The drill through configurations for the axis. + items: + $ref: '#/components/schemas/visualization-axis-drill-through' + is_hidden: + type: boolean + description: Whether the axis should be hidden. + label: + type: string + description: The label for the axis. + format: text + reference_name: + type: string + description: The reference name of the axis. + format: text + required: + - reference_name + title: bar-visualization-x-axis + bar-visualization-y-axis: + type: object + description: The Y-axis for a bar visualization. + properties: + color: + $ref: '#/components/schemas/visualization-axis-color' + drill_throughs: + type: array + description: The drill through configurations for the axis. + items: + $ref: '#/components/schemas/visualization-axis-drill-through' + is_hidden: + type: boolean + description: Whether the axis should be hidden. + label: + type: string + description: The label for the axis. + format: text + reference_name: + type: string + description: The reference name of the axis. + format: text + required: + - reference_name + title: bar-visualization-y-axis + bar-widget-visualization: + type: object + description: | + A bar chart visualization configuration. Includes metadata specific to + bar charts. + properties: + is_stacked: + type: boolean + description: Whether the bar should be stacked. + scrollbar: + $ref: '#/components/schemas/visualization-scrollbar' + show_data_labels: + type: boolean + description: Whether to show data labels. + x: + type: array + description: The configuration for the X-axis. + items: + $ref: '#/components/schemas/bar-visualization-x-axis' + "y": + type: array + description: The configuration for the Y-axes. + items: + $ref: '#/components/schemas/bar-visualization-y-axis' + required: + - x + - "y" + title: bar-widget-visualization boolean-expression: type: object description: Boolean expression. @@ -3903,6 +3991,84 @@ components: - code_change title: code-changes-update-response x-go-name: CodeChangesUpdateResponseBody + column-visualization-x-axis: + type: object + description: The X-axis for a column visualization. + properties: + color: + $ref: '#/components/schemas/visualization-axis-color' + drill_throughs: + type: array + description: The drill through configurations for the axis. + items: + $ref: '#/components/schemas/visualization-axis-drill-through' + is_hidden: + type: boolean + description: Whether the axis should be hidden. + label: + type: string + description: The label for the axis. + format: text + reference_name: + type: string + description: The reference name of the axis. + format: text + required: + - reference_name + title: column-visualization-x-axis + column-visualization-y-axis: + type: object + description: The Y-axis for a column visualization. + properties: + color: + $ref: '#/components/schemas/visualization-axis-color' + drill_throughs: + type: array + description: The drill through configurations for the axis. + items: + $ref: '#/components/schemas/visualization-axis-drill-through' + is_hidden: + type: boolean + description: Whether the axis should be hidden. + label: + type: string + description: The label for the axis. + format: text + reference_name: + type: string + description: The reference name of the axis. + format: text + required: + - reference_name + title: column-visualization-y-axis + column-widget-visualization: + type: object + description: | + A column chart visualization configuration. Includes metadata specific + to column charts. + properties: + is_stacked: + type: boolean + description: Whether the columns should be stacked. + scrollbar: + $ref: '#/components/schemas/visualization-scrollbar' + show_data_labels: + type: boolean + description: Whether to show data labels. + x: + type: array + description: The configuration for the X-axis. + items: + $ref: '#/components/schemas/column-visualization-x-axis' + "y": + type: array + description: The configuration for the Y-axes. + items: + $ref: '#/components/schemas/column-visualization-y-axis' + required: + - x + - "y" + title: column-widget-visualization command: allOf: - $ref: '#/components/schemas/atom-base' @@ -5630,6 +5796,26 @@ components: - $ref: '#/components/schemas/vista-base-summary' description: Static collection of Devrev objects. title: curated-vista-summary + custom-field-widget-column-projection: + type: object + description: A custom field widget column projection. + properties: + leaf_type: + type: string + description: The leaf type of the custom field. + format: text + name: + type: string + description: The name of the custom field. + format: text + subtype: + type: string + description: The subtype of the custom field. + format: text + required: + - leaf_type + - name + title: custom-field-widget-column-projection custom-link-type: allOf: - $ref: '#/components/schemas/atom-base' @@ -6891,6 +7077,13 @@ components: allOf: - $ref: '#/components/schemas/atom-base' title: dashboard + dashboard-filter: + type: object + additionalProperties: false + description: | + A dashboard filter is a filter that can be applied to tabs, sections, + and widgets. + title: dashboard-filter dashboard-search-summary: allOf: - $ref: '#/components/schemas/search-summary-base' @@ -6905,6 +7098,13 @@ components: allOf: - $ref: '#/components/schemas/atom-base-summary' title: dashboard-summary + data-source-join: + type: object + additionalProperties: false + description: | + A list of possible joins for the data source. Follows foreign key + semantics. + title: data-source-join date-filter: type: object description: Provides ways to specify date ranges on objects. @@ -8283,6 +8483,73 @@ components: required: - users title: dm-summary + donut-visualization-x-axis: + type: object + description: The X-axis for a donut visualization. + properties: + color: + $ref: '#/components/schemas/visualization-axis-color' + drill_throughs: + type: array + description: The drill through configurations for the axis. + items: + $ref: '#/components/schemas/visualization-axis-drill-through' + is_hidden: + type: boolean + description: Whether the axis should be hidden. + label: + type: string + description: The label for the axis. + format: text + reference_name: + type: string + description: The reference name of the axis. + format: text + required: + - reference_name + title: donut-visualization-x-axis + donut-visualization-y-axis: + type: object + description: The Y-axis for a donut visualization. + properties: + color: + $ref: '#/components/schemas/visualization-axis-color' + drill_throughs: + type: array + description: The drill through configurations for the axis. + items: + $ref: '#/components/schemas/visualization-axis-drill-through' + is_hidden: + type: boolean + description: Whether the axis should be hidden. + label: + type: string + description: The label for the axis. + format: text + reference_name: + type: string + description: The reference name of the axis. + format: text + required: + - reference_name + title: donut-visualization-y-axis + donut-widget-visualization: + type: object + description: | + A donut chart visualization configuration. Includes metadata specific + to donut charts. + properties: + x: + type: array + description: The configuration for the X-axis. + items: + $ref: '#/components/schemas/donut-visualization-x-axis' + "y": + $ref: '#/components/schemas/donut-visualization-y-axis' + required: + - x + - "y" + title: donut-widget-visualization dynamic-group-info: type: object additionalProperties: false @@ -8401,6 +8668,25 @@ components: - reply_to - to title: email-preview-widget + embed-links-create-request: + type: object + description: | + The request to create a new link embedded inside another create + request. + properties: + link_type: + $ref: '#/components/schemas/link-type' + source: + type: string + description: The ID of the source object. + format: id + target: + type: string + description: The ID of the target object. + format: id + required: + - link_type + title: embed-links-create-request empty: type: object additionalProperties: false @@ -9720,8 +10006,8 @@ components: enum: - error - message + - message_generation_started - progress - - started client_metadata: type: object description: | @@ -9733,6 +10019,8 @@ components: description: | The final response of asynchronous agent events execution. format: text + message_generation_started: + $ref: '#/components/schemas/ai-agent-message-generation-started' progress: $ref: '#/components/schemas/ai-agent-event-execute-progress' session: @@ -9745,8 +10033,6 @@ components: type: string description: An identifier of the session with the AI agent. format: text - started: - $ref: '#/components/schemas/ai-agent-message-generation-started' required: - agent - session @@ -10966,6 +11252,60 @@ components: notified. title: get-rev-users-personal-data-response x-go-name: GetRevUsersPersonalDataResponseBody + grid-layout: + type: object + description: | + Grid layout represents the organization of the elements within a + layout. + properties: + layout: + type: array + description: Layout of the elements within the current element. + items: + $ref: '#/components/schemas/grid-layout' + position: + $ref: '#/components/schemas/grid-position' + reference_id: + type: string + description: | + The reference ID for the element to be laid out. It should be an ID + of a tab, section, or widget. + format: text + required: + - reference_id + title: grid-layout + grid-position: + type: object + description: | + A grid position represents the location and size of a widget or section + within its container (dashboard, tab, or section). + properties: + height: + type: integer + description: The height of the widget or section, in grid units. + format: int32 + width: + type: integer + description: The width of the widget or section, in grid units. + format: int32 + x: + type: integer + description: | + The x-coordinate of the top-left corner of the widget or section, + based on a grid system. + format: int32 + "y": + type: integer + description: | + The y-coordinate of the top-left corner of the widget or section, + based on a grid system. + format: int32 + required: + - height + - width + - x + - "y" + title: grid-position group: allOf: - $ref: '#/components/schemas/atom-base' @@ -11336,6 +11676,102 @@ components: - group title: groups-update-response x-go-name: GroupsUpdateResponseBody + heatmap-visualization-x-axis: + type: object + description: The X-axis for a heatmap visualization. + properties: + color: + $ref: '#/components/schemas/visualization-axis-color' + drill_throughs: + type: array + description: The drill through configurations for the axis. + items: + $ref: '#/components/schemas/visualization-axis-drill-through' + is_hidden: + type: boolean + description: Whether the axis should be hidden. + label: + type: string + description: The label for the axis. + format: text + reference_name: + type: string + description: The reference name of the axis. + format: text + required: + - reference_name + title: heatmap-visualization-x-axis + heatmap-visualization-y-axis: + type: object + description: The Y-axis for a heatmap visualization. + properties: + color: + $ref: '#/components/schemas/visualization-axis-color' + drill_throughs: + type: array + description: The drill through configurations for the axis. + items: + $ref: '#/components/schemas/visualization-axis-drill-through' + is_hidden: + type: boolean + description: Whether the axis should be hidden. + label: + type: string + description: The label for the axis. + format: text + reference_name: + type: string + description: The reference name of the axis. + format: text + required: + - reference_name + title: heatmap-visualization-y-axis + heatmap-visualization-z-axis: + type: object + description: The Z-axis for a heatmap visualization. + properties: + color: + $ref: '#/components/schemas/visualization-axis-color' + drill_throughs: + type: array + description: The drill through configurations for the axis. + items: + $ref: '#/components/schemas/visualization-axis-drill-through' + is_hidden: + type: boolean + description: Whether the axis should be hidden. + label: + type: string + description: The label for the axis. + format: text + reference_name: + type: string + description: The reference name of the axis. + format: text + required: + - reference_name + title: heatmap-visualization-z-axis + heatmap-widget-visualization: + type: object + description: | + A heatmap chart visualization configuration. Includes metadata specific + to heatmap charts. + properties: + color: + type: string + description: Color for heatmap. + format: text + x: + $ref: '#/components/schemas/heatmap-visualization-x-axis' + "y": + $ref: '#/components/schemas/heatmap-visualization-y-axis' + z: + $ref: '#/components/schemas/heatmap-visualization-z-axis' + required: + - x + - "y" + - z + title: heatmap-widget-visualization impacted-customer-details: type: object description: Details of the impact due to the incident. @@ -12195,6 +12631,66 @@ components: description: The job title for the user. format: text title: job-history-item + kanban-visualization-card-attribute: + type: object + description: A card attribute in a kanban visualization. + properties: + color: + $ref: '#/components/schemas/visualization-axis-color' + drill_throughs: + type: array + description: The drill through configurations for the axis. + items: + $ref: '#/components/schemas/visualization-axis-drill-through' + is_hidden: + type: boolean + description: Whether the axis should be hidden. + label: + type: string + description: The label for the axis. + format: text + order: + type: integer + description: | + The order in which the attribute should be displayed in a card. + format: int32 + position: + $ref: '#/components/schemas/kanban-visualization-card-attribute-position' + reference_name: + type: string + description: The reference name of the axis. + format: text + required: + - reference_name + title: kanban-visualization-card-attribute + kanban-visualization-card-attribute-position: + type: string + description: | + Whether the attribute should be placed in the body or footer of the + kanban. + enum: + - body + - footer + kanban-widget-visualization: + type: object + description: | + A kanban visualization configuration. Includes metadata specific to + kanban. + properties: + card_attributes: + type: array + description: The configuration for the card in the kanban. + items: + $ref: '#/components/schemas/kanban-visualization-card-attribute' + group_by: + type: array + description: The group_by configuration in the kanban. + items: + $ref: '#/components/schemas/widget-group-by-config' + required: + - card_attributes + - group_by + title: kanban-widget-visualization keyrings-create-callback-request: type: object properties: @@ -12246,6 +12742,91 @@ components: required: - name title: legacy-stage-summary + line-visualization-x-axis: + type: object + description: The X-axis for a line visualization. + properties: + color: + $ref: '#/components/schemas/visualization-axis-color' + drill_throughs: + type: array + description: The drill through configurations for the axis. + items: + $ref: '#/components/schemas/visualization-axis-drill-through' + is_hidden: + type: boolean + description: Whether the axis should be hidden. + label: + type: string + description: The label for the axis. + format: text + reference_name: + type: string + description: The reference name of the axis. + format: text + required: + - reference_name + title: line-visualization-x-axis + line-visualization-y-axis: + type: object + description: The Y-axis for a line visualization. + properties: + color: + $ref: '#/components/schemas/visualization-axis-color' + drill_throughs: + type: array + description: The drill through configurations for the axis. + items: + $ref: '#/components/schemas/visualization-axis-drill-through' + is_area_filled: + type: boolean + description: Whether the area under the line should be filled. + is_hidden: + type: boolean + description: Whether the axis should be hidden. + is_spline: + type: boolean + description: Whether the line should be a spline. + label: + type: string + description: The label for the axis. + format: text + marker: + type: boolean + description: Whether the line have circular. + reference_name: + type: string + description: The reference name of the axis. + format: text + required: + - reference_name + title: line-visualization-y-axis + line-widget-visualization: + type: object + description: | + A line chart visualization configuration. Includes metadata specific to + line charts. + properties: + is_stacked: + type: boolean + description: Whether the line should be stacked. + show_data_labels: + type: boolean + description: Whether to show data labels. + x: + type: array + description: The configuration for the X-axis. + items: + $ref: '#/components/schemas/line-visualization-x-axis' + "y": + type: array + description: The configuration for the Y-axes. + items: + $ref: '#/components/schemas/line-visualization-y-axis' + required: + - x + - "y" + title: line-widget-visualization lines-of-code: type: object description: Details of lines of code in this code change. @@ -12308,11 +12889,13 @@ components: feature: '#/components/schemas/feature-summary' incident: '#/components/schemas/incident-summary' issue: '#/components/schemas/issue-summary' + linkable: '#/components/schemas/linkable-summary' meeting: '#/components/schemas/meeting-summary' opportunity: '#/components/schemas/opportunity-summary' product: '#/components/schemas/product-summary' rev_org: '#/components/schemas/rev-org-summary' rev_user: '#/components/schemas/rev-user-summary' + runnable: '#/components/schemas/runnable-summary' task: '#/components/schemas/task-summary' ticket: '#/components/schemas/ticket-summary' widget: '#/components/schemas/widget-summary' @@ -12328,11 +12911,13 @@ components: - $ref: '#/components/schemas/feature-summary' - $ref: '#/components/schemas/incident-summary' - $ref: '#/components/schemas/issue-summary' + - $ref: '#/components/schemas/linkable-summary' - $ref: '#/components/schemas/meeting-summary' - $ref: '#/components/schemas/opportunity-summary' - $ref: '#/components/schemas/product-summary' - $ref: '#/components/schemas/rev-org-summary' - $ref: '#/components/schemas/rev-user-summary' + - $ref: '#/components/schemas/runnable-summary' - $ref: '#/components/schemas/task-summary' - $ref: '#/components/schemas/ticket-summary' - $ref: '#/components/schemas/widget-summary' @@ -12355,11 +12940,13 @@ components: - feature - incident - issue + - linkable - meeting - opportunity - product - rev_org - rev_user + - runnable - task - ticket - widget @@ -12467,6 +13054,14 @@ components: - is_part_of - is_related_to - serves + linkable: + allOf: + - $ref: '#/components/schemas/part-base' + title: linkable + linkable-summary: + allOf: + - $ref: '#/components/schemas/part-base-summary' + title: linkable-summary links-create-request: type: object description: The request to create a new link. @@ -12628,6 +13223,65 @@ components: enum: - after - before + meerkat-widget-column-function: + type: object + description: A meerkat specific column function. + properties: + type: + $ref: '#/components/schemas/meerkat-widget-column-function-type' + required: + - type + title: meerkat-widget-column-function + meerkat-widget-column-function-type: + type: string + description: The type of the function. + enum: + - avg + - count + - count_distinct + - max + - median + - min + - sum + meerkat-widget-column-projection: + type: object + description: A meerkat specific column projection. + properties: + type: + $ref: '#/components/schemas/meerkat-widget-column-projection-type' + function: + $ref: '#/components/schemas/meerkat-widget-column-function' + sql_expression: + type: string + description: | + The SQL expression used to extract or transform the column from the + data source. + format: text + timestamp_rollup: + $ref: '#/components/schemas/meerkat-widget-column-projection-timestamp-rollup' + required: + - sql_expression + - type + title: meerkat-widget-column-projection + meerkat-widget-column-projection-timestamp-rollup: + type: string + description: The rollup granularity for the timestamp. + enum: + - day + - hour + - month + - week + - year + meerkat-widget-column-projection-type: + type: string + description: The data type of the column generated by the SQL expression. + enum: + - boolean + - number + - number_array + - string + - string_array + - time meeting: allOf: - $ref: '#/components/schemas/atom-base' @@ -13530,6 +14184,47 @@ components: - metric_definition title: metric-definitions-update-response x-go-name: MetricDefinitionsUpdateResponseBody + metric-visualization-y-axis: + type: object + description: The y axis for a metric visualization. + properties: + color: + $ref: '#/components/schemas/visualization-axis-color' + drill_throughs: + type: array + description: The drill through configurations for the axis. + items: + $ref: '#/components/schemas/visualization-axis-drill-through' + is_hidden: + type: boolean + description: Whether the axis should be hidden. + label: + type: string + description: The label for the axis. + format: text + reference_name: + type: string + description: The reference name of the axis. + format: text + required: + - reference_name + title: metric-visualization-y-axis + metric-widget-visualization: + type: object + description: | + A metric visualization configuration. Includes metadata specific to + metrics. + properties: + pvp: + $ref: '#/components/schemas/widget-pvp-config' + "y": + type: array + description: The configuration for the Y-axis. + items: + $ref: '#/components/schemas/metric-visualization-y-axis' + required: + - "y" + title: metric-widget-visualization metrics-data: type: object properties: @@ -14278,6 +14973,76 @@ components: - account - dev_org - rev_org + packed-bubble-visualization-x-axis: + type: object + description: The X-axis for a packed bubble visualization. + properties: + color: + $ref: '#/components/schemas/visualization-axis-color' + drill_throughs: + type: array + description: The drill through configurations for the axis. + items: + $ref: '#/components/schemas/visualization-axis-drill-through' + is_hidden: + type: boolean + description: Whether the axis should be hidden. + label: + type: string + description: The label for the axis. + format: text + reference_name: + type: string + description: The reference name of the axis. + format: text + required: + - reference_name + title: packed-bubble-visualization-x-axis + packed-bubble-visualization-y-axis: + type: object + description: The Y-axis for a packed bubble visualization. + properties: + color: + $ref: '#/components/schemas/visualization-axis-color' + drill_throughs: + type: array + description: The drill through configurations for the axis. + items: + $ref: '#/components/schemas/visualization-axis-drill-through' + is_hidden: + type: boolean + description: Whether the axis should be hidden. + label: + type: string + description: The label for the axis. + format: text + reference_name: + type: string + description: The reference name of the axis. + format: text + required: + - reference_name + title: packed-bubble-visualization-y-axis + packed-bubble-widget-visualization: + type: object + description: | + A Packed Bubble chart visualization configuration. Includes metadata + specific to packed bubble charts. + properties: + x: + type: array + description: The configuration for the X-axis. + items: + $ref: '#/components/schemas/packed-bubble-visualization-x-axis' + "y": + type: array + description: The configuration for the Y-axes. + items: + $ref: '#/components/schemas/packed-bubble-visualization-y-axis' + required: + - x + - "y" + title: packed-bubble-widget-visualization parent-part-filter: type: object description: The filter for specifying parent part. @@ -14306,13 +15071,17 @@ components: capability: '#/components/schemas/capability' enhancement: '#/components/schemas/enhancement' feature: '#/components/schemas/feature' + linkable: '#/components/schemas/linkable' product: '#/components/schemas/product' + runnable: '#/components/schemas/runnable' propertyName: type oneOf: - $ref: '#/components/schemas/capability' - $ref: '#/components/schemas/enhancement' - $ref: '#/components/schemas/feature' + - $ref: '#/components/schemas/linkable' - $ref: '#/components/schemas/product' + - $ref: '#/components/schemas/runnable' properties: type: $ref: '#/components/schemas/part-type' @@ -14416,13 +15185,17 @@ components: capability: '#/components/schemas/capability-summary' enhancement: '#/components/schemas/enhancement-summary' feature: '#/components/schemas/feature-summary' + linkable: '#/components/schemas/linkable-summary' product: '#/components/schemas/product-summary' + runnable: '#/components/schemas/runnable-summary' propertyName: type oneOf: - $ref: '#/components/schemas/capability-summary' - $ref: '#/components/schemas/enhancement-summary' - $ref: '#/components/schemas/feature-summary' + - $ref: '#/components/schemas/linkable-summary' - $ref: '#/components/schemas/product-summary' + - $ref: '#/components/schemas/runnable-summary' properties: type: $ref: '#/components/schemas/part-type' @@ -14435,7 +15208,9 @@ components: - capability - enhancement - feature + - linkable - product + - runnable parts-create-request: type: object discriminator: @@ -14443,13 +15218,17 @@ components: capability: '#/components/schemas/parts-create-request-capability' enhancement: '#/components/schemas/parts-create-request-enhancement' feature: '#/components/schemas/parts-create-request-feature' + linkable: '#/components/schemas/parts-create-request-linkable' product: '#/components/schemas/parts-create-request-product' + runnable: '#/components/schemas/parts-create-request-runnable' 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-linkable' - $ref: '#/components/schemas/parts-create-request-product' + - $ref: '#/components/schemas/parts-create-request-runnable' properties: type: $ref: '#/components/schemas/part-type' @@ -14478,6 +15257,11 @@ components: type: string description: Description of the part. format: text + links: + type: array + description: Links associated with the part. + items: + $ref: '#/components/schemas/embed-links-create-request' name: type: string description: Name of the part. @@ -14570,10 +15354,46 @@ components: required: - parent_part title: parts-create-request-feature + parts-create-request-linkable: + type: object + properties: + code_inferred_surface_area: + type: array + description: Code Inferred surface area of the linkable. + items: + type: string + format: text + code_repo_paths: + type: string + description: Repo Path of the linkable. + format: text + code_repo_url: + type: string + description: Repo url of the linkable. + format: text + title: parts-create-request-linkable parts-create-request-product: type: object additionalProperties: false title: parts-create-request-product + parts-create-request-runnable: + type: object + properties: + code_inferred_surface_area: + type: array + description: Code Inferred surface area of the runnable. + items: + type: string + format: text + code_repo_paths: + type: string + description: Repo Path of the runnable. + format: text + code_repo_url: + type: string + description: Repo url of the runnable. + format: text + title: parts-create-request-runnable parts-create-response: type: object properties: @@ -14701,6 +15521,9 @@ components: The cursor to resume iteration from. If not provided, then iteration starts from the beginning. format: text + custom_fields: + type: object + description: Filters for custom fields. enhancement: $ref: '#/components/schemas/parts-filter-enhancement' limit: @@ -14766,15 +15589,19 @@ components: capability: '#/components/schemas/parts-update-request-capability' enhancement: '#/components/schemas/parts-update-request-enhancement' feature: '#/components/schemas/parts-update-request-feature' + linkable: '#/components/schemas/parts-update-request-linkable' none: '#/components/schemas/empty' product: '#/components/schemas/parts-update-request-product' + runnable: '#/components/schemas/parts-update-request-runnable' propertyName: type oneOf: - $ref: '#/components/schemas/empty' - $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-linkable' - $ref: '#/components/schemas/parts-update-request-product' + - $ref: '#/components/schemas/parts-update-request-runnable' properties: type: $ref: '#/components/schemas/part-type' @@ -14863,6 +15690,24 @@ components: type: object additionalProperties: false title: parts-update-request-feature + parts-update-request-linkable: + type: object + properties: + code_inferred_surface_area: + type: array + description: Code Inferred surface area of the linkable. + items: + type: string + format: text + code_repo_paths: + type: string + description: Repo Path of the linkable. + format: text + code_repo_url: + type: string + description: Repo url of the linkable. + format: text + title: parts-update-request-linkable parts-update-request-owned-by: type: object properties: @@ -14881,6 +15726,24 @@ components: type: object additionalProperties: false title: parts-update-request-product + parts-update-request-runnable: + type: object + properties: + code_inferred_surface_area: + type: array + description: Code Inferred surface area of the runnable. + items: + type: string + format: text + code_repo_paths: + type: string + description: Repo Path of the runnable. + format: text + code_repo_url: + type: string + description: Repo url of the runnable. + format: text + title: parts-update-request-runnable parts-update-request-tags: type: object properties: @@ -14899,6 +15762,73 @@ components: - part title: parts-update-response x-go-name: PartsUpdateResponseBody + pie-visualization-x-axis: + type: object + description: The X-axis for a pie visualization. + properties: + color: + $ref: '#/components/schemas/visualization-axis-color' + drill_throughs: + type: array + description: The drill through configurations for the axis. + items: + $ref: '#/components/schemas/visualization-axis-drill-through' + is_hidden: + type: boolean + description: Whether the axis should be hidden. + label: + type: string + description: The label for the axis. + format: text + reference_name: + type: string + description: The reference name of the axis. + format: text + required: + - reference_name + title: pie-visualization-x-axis + pie-visualization-y-axis: + type: object + description: The Y-axis for a pie visualization. + properties: + color: + $ref: '#/components/schemas/visualization-axis-color' + drill_throughs: + type: array + description: The drill through configurations for the axis. + items: + $ref: '#/components/schemas/visualization-axis-drill-through' + is_hidden: + type: boolean + description: Whether the axis should be hidden. + label: + type: string + description: The label for the axis. + format: text + reference_name: + type: string + description: The reference name of the axis. + format: text + required: + - reference_name + title: pie-visualization-y-axis + pie-widget-visualization: + type: object + description: | + A pie chart visualization configuration. Includes metadata specific to + pie charts. + properties: + x: + type: array + description: The configuration for the X-axis. + items: + $ref: '#/components/schemas/pie-visualization-x-axis' + "y": + $ref: '#/components/schemas/pie-visualization-y-axis' + required: + - x + - "y" + title: pie-widget-visualization preferences: type: object discriminator: @@ -14926,6 +15856,10 @@ components: properties: type: $ref: '#/components/schemas/preferences-type' + language_code: + type: string + description: Language code for which to get the preferences for. + format: text object: type: string description: | @@ -14961,6 +15895,10 @@ components: properties: type: $ref: '#/components/schemas/preferences-type' + language_code: + type: string + description: Language code for which to update the preferences for. + format: text object: type: string description: | @@ -16601,6 +17539,14 @@ components: - rev_user title: rev-users-update-response x-go-name: RevUsersUpdateResponseBody + rich-text-widget-visualization: + type: object + description: The configuration for a rich text visualization. + properties: + content: + type: object + description: The content of the rich text. + title: rich-text-widget-visualization role: allOf: - $ref: '#/components/schemas/atom-base' @@ -16711,6 +17657,14 @@ components: - role title: roles-create-response x-go-name: RolesCreateResponseBody + runnable: + allOf: + - $ref: '#/components/schemas/part-base' + title: runnable + runnable-summary: + allOf: + - $ref: '#/components/schemas/part-base-summary' + title: runnable-summary saml-connection-fields-map: type: object properties: @@ -16727,6 +17681,76 @@ components: map to the user ID of the user. format: text title: saml-connection-fields-map + scatter-visualization-x-axis: + type: object + description: The X-axis for a scatter visualization. + properties: + color: + $ref: '#/components/schemas/visualization-axis-color' + drill_throughs: + type: array + description: The drill through configurations for the axis. + items: + $ref: '#/components/schemas/visualization-axis-drill-through' + is_hidden: + type: boolean + description: Whether the axis should be hidden. + label: + type: string + description: The label for the axis. + format: text + reference_name: + type: string + description: The reference name of the axis. + format: text + required: + - reference_name + title: scatter-visualization-x-axis + scatter-visualization-y-axis: + type: object + description: The Y-axis for a scatter visualization. + properties: + color: + $ref: '#/components/schemas/visualization-axis-color' + drill_throughs: + type: array + description: The drill through configurations for the axis. + items: + $ref: '#/components/schemas/visualization-axis-drill-through' + is_hidden: + type: boolean + description: Whether the axis should be hidden. + label: + type: string + description: The label for the axis. + format: text + reference_name: + type: string + description: The reference name of the axis. + format: text + required: + - reference_name + title: scatter-visualization-y-axis + scatter-widget-visualization: + type: object + description: | + A Scatter chart visualization configuration. Includes metadata specific + to scatter charts. + properties: + x: + type: array + description: The configuration for the X-axis. + items: + $ref: '#/components/schemas/scatter-visualization-x-axis' + "y": + type: array + description: The configuration for the Y-axes. + items: + $ref: '#/components/schemas/scatter-visualization-y-axis' + required: + - x + - "y" + title: scatter-widget-visualization schema-bool-field-descriptor: allOf: - $ref: '#/components/schemas/schema-field-descriptor-base' @@ -16826,6 +17850,9 @@ components: type: string description: Default value. format: text + is_overridable: + type: boolean + description: Whether the enum is overridable. translated_values: type: object additionalProperties: @@ -16852,6 +17879,9 @@ components: items: type: string format: text + is_overridable: + type: boolean + description: Whether the enum is overridable. translated_values: type: object additionalProperties: @@ -18085,6 +19115,36 @@ components: allOf: - $ref: '#/components/schemas/user-base-summary' title: service-account-summary + service-accounts-create-request: + type: object + description: The request object to create a new service account. + properties: + display_name: + type: string + description: | + The service account's display name. A unique, human readable name + to identify a service account. + format: text + gen_keyring: + type: boolean + description: | + Indicates whether to generate a keyring along with the new service + account. The default is false. + required: + - display_name + title: service-accounts-create-request + service-accounts-create-response: + type: object + description: | + The response object to the corresponding create service account + request. + properties: + service_account: + $ref: '#/components/schemas/service-account' + required: + - service_account + title: service-accounts-create-response + x-go-name: ServiceAccountsCreateResponseBody service-accounts-get-request: type: object description: The request object to get a service account's information. @@ -19779,6 +20839,26 @@ components: - result title: stock-schema-fragments-list-response x-go-name: StockSchemaFragmentsListResponseBody + sub-widget: + type: object + description: | + A sub-widget represents a data visualization unit contained within a + widget. + properties: + query: + $ref: '#/components/schemas/widget-query' + reference_id: + type: string + description: | + A reference ID for the sub-widget. It should be unique within the + widget. + format: text + visualization: + $ref: '#/components/schemas/widget-visualization' + required: + - reference_id + - visualization + title: sub-widget subtype: type: object properties: @@ -19904,7 +20984,34 @@ components: format: id dispatched_channels: type: array - description: Source channels on which the survey is sent. + description: | + Source channels on which the survey is sent. Stock allowed values: + ``` + { + "id": 1, + "label": "plug", + "ordinal": 1, + "overridable": false + }, + { + "id": 2, + "label": "portal", + "ordinal": 2, + "overridable": false + }, + { + "id": 3, + "label": "email", + "ordinal": 3, + "overridable": false + }, + { + "id": 4, + "label": "slack", + "ordinal": 4, + "overridable": false + } + ``` items: $ref: '#/components/schemas/enum-value' object: @@ -20738,6 +21845,102 @@ components: - sys_user title: sys-users-update-response x-go-name: SysUsersUpdateResponseBody + table-visualization-column: + type: object + description: A column in a table visualization. + properties: + color: + $ref: '#/components/schemas/visualization-axis-color' + drill_throughs: + type: array + description: The drill through configurations for the axis. + items: + $ref: '#/components/schemas/visualization-axis-drill-through' + is_hidden: + type: boolean + description: Whether the axis should be hidden. + is_movable: + type: boolean + description: Whether the column should be movable. + is_pinned: + type: boolean + description: | + Whether the column should be pinned, by default set to false. + is_resizable: + type: boolean + description: Whether the column should be resizable. + is_sortable: + type: boolean + description: Whether the column should be sortable. + is_visibility_togglable: + type: boolean + description: Whether the column visibility can be toggled. + label: + type: string + description: The label for the axis. + format: text + lock_position: + $ref: '#/components/schemas/table-visualization-column-lock-position' + max_width: + type: integer + description: The maximum width of the column. + format: int32 + min_width: + type: integer + description: The minimum width of the column. + format: int32 + order: + type: integer + description: The order in which the column should be displayed. + format: int32 + pin_position: + $ref: '#/components/schemas/table-visualization-column-pin-position' + reference_name: + type: string + description: The reference name of the axis. + format: text + width: + type: integer + description: The width of the column in pixel. + format: int32 + required: + - reference_name + title: table-visualization-column + table-visualization-column-lock-position: + type: string + description: | + Whether the column should be locked to the left or right side of the + table. + enum: + - left + - right + table-visualization-column-pin-position: + type: string + description: | + Whether the column should be pinned to the left or right side of the + table. + enum: + - left + - right + table-widget-visualization: + type: object + description: | + A table visualization configuration. Includes metadata specific to + tables. + properties: + columns: + type: array + description: The configuration for the columns in the table. + items: + $ref: '#/components/schemas/table-visualization-column' + group_by: + type: array + description: The group_by configuration in the table. + items: + $ref: '#/components/schemas/widget-group-by-config' + required: + - columns + title: table-widget-visualization tag: allOf: - $ref: '#/components/schemas/atom-base' @@ -21219,6 +22422,13 @@ components: format: text body_type: $ref: '#/components/schemas/timeline-comment-body-type' + references: + type: array + description: | + Summary information about objects that are referenced in the + comment. + items: + $ref: '#/components/schemas/atom-summary' snap_kit_body: $ref: '#/components/schemas/timeline-snap-kit-body' snap_widget_body: @@ -21706,11 +22916,13 @@ components: - feature - incident - issue + - linkable - meeting - opportunity - product - rev_org - rev_user + - runnable - snap_in - task - ticket @@ -22971,6 +24183,59 @@ components: - curated - dynamic - grouped + visualization-axis-color: + type: object + description: | + The color for an axis. This can be a single color or a gradient. + properties: + type: + $ref: '#/components/schemas/visualization-axis-color-type' + key_lookup: + type: array + description: The key lookup color. + items: + $ref: '#/components/schemas/visualization-axis-color-key-lookup' + static: + type: string + description: The static color. + format: text + required: + - type + title: visualization-axis-color + visualization-axis-color-key-lookup: + type: object + description: | + The key lookup color for an axis. This is used to map a value to a + color. + properties: + key: + type: string + description: The key to map to a color. + format: text + value: + type: string + description: The color value. + format: text + required: + - key + - value + title: visualization-axis-color-key-lookup + visualization-axis-color-type: + type: string + description: The type of the color. + enum: + - key_lookup + - static + visualization-axis-drill-through: + type: object + additionalProperties: false + description: The drill through configuration for an axis. + title: visualization-axis-drill-through + visualization-scrollbar: + type: object + additionalProperties: false + description: The scrollbar configuration for chart. + title: visualization-scrollbar web-crawler-job: allOf: - $ref: '#/components/schemas/atom-base' @@ -23826,11 +25091,441 @@ components: widget: allOf: - $ref: '#/components/schemas/atom-base' + - type: object + properties: + data_sources: + type: array + description: | + Data sources provide the backing data tables for the widget. + items: + $ref: '#/components/schemas/widget-data-source' + description: + type: string + description: | + A brief summary of what the widget displays or represents. + format: text + is_draft: + type: boolean + description: Whether the widget is a draft widget. + is_system: + type: boolean + description: Whether the widget is a system widget. + layout: + type: array + description: | + Layout of the widget. It determines the organization of the sub + widgets. + items: + $ref: '#/components/schemas/grid-layout' + name: + type: string + description: A unique identifying name for the widget (optional). + format: text + sub_widgets: + type: array + description: | + A list of sub-widgets that the widget contains. Each widget can + contain multiple sub-widgets. + items: + $ref: '#/components/schemas/sub-widget' + title: + type: string + description: The title of the widget. + format: text + required: + - description + - layout + - sub_widgets + - title title: widget + widget-api-data-source: + type: object + description: An API-backed data source. + properties: + include: + type: array + description: Object IDs to include in the data source. + items: + $ref: '#/components/schemas/work-summary' + is_custom_leaf_type: + type: boolean + description: Indicates if the leaf type is custom. + leaf_type: + type: string + description: The object's type. + format: text + subtypes: + type: array + description: The subtypes of the object. + items: + type: string + format: text + title: widget-api-data-source + widget-column-projection: + type: object + description: A widget column projection. + properties: + type: + $ref: '#/components/schemas/widget-column-projection-type' + custom_field: + $ref: '#/components/schemas/custom-field-widget-column-projection' + devrev_schema: + $ref: '#/components/schemas/schema-field-descriptor' + has_custom_expression: + type: boolean + description: Whether the column has a custom expression. + is_derived: + type: boolean + description: Whether the column is derived. + meerkat_schema: + $ref: '#/components/schemas/meerkat-widget-column-projection' + reference_name: + type: string + description: The reference name of the column. + format: text + required: + - devrev_schema + - reference_name + title: widget-column-projection + widget-column-projection-type: + type: string + description: The type of the column. + enum: + - custom_field + - native + widget-data-source: + type: object + description: A data source for a widget. + properties: + type: + $ref: '#/components/schemas/widget-data-source-type' + api: + $ref: '#/components/schemas/widget-api-data-source' + data_source: + type: string + description: | + The ID of the data source. Meant to be set when the type is + data_source. + format: text + dimensions: + type: array + description: | + The dimensions (or the extended dimensions) provided by the data + source. These are the categories that can be used to group or + segment the measures. + items: + $ref: '#/components/schemas/widget-column-projection' + external_data_source: + $ref: '#/components/schemas/widget-data-source-reference' + joins: + type: array + description: | + A list of possible joins for the data source. Follows foreign key + semantics. + items: + $ref: '#/components/schemas/data-source-join' + measures: + type: array + description: | + The measures (or the extended measures) provided by the data + source. These are the numerical values that can be analyzed. + items: + $ref: '#/components/schemas/widget-column-projection' + oasis: + $ref: '#/components/schemas/widget-oasis-data-source' + reference_name: + type: string + description: The reference name of the data source. + format: text + required: + - reference_name + - type + title: widget-data-source + widget-data-source-reference: + type: object + description: An referenced data source for a widget. + properties: + dataset_projections: + type: array + description: | + The column projections for the data source. These are the columns + that are projected from the datasets. + items: + $ref: '#/components/schemas/widget-oasis-dataset-column-projection' + id: + type: string + description: The id of the data source. + format: text + required: + - id + title: widget-data-source-reference + widget-data-source-type: + type: string + description: The type of the data source. + enum: + - api + - data_source + - data_view + - external_data_source + - oasis + widget-group-by-config: + type: object + description: The configuration for group_by operation. + properties: + key: + type: string + description: The key on which group_by is applied. + format: text + limit: + type: integer + description: | + The maximum number of unique values that can be returned for the + key. + format: int32 + title: widget-group-by-config + widget-oasis-data-source: + type: object + description: An oasis backed data source. + properties: + datasets: + type: array + description: List of datasets used by the data source. + items: + type: string + format: text + projections: + type: array + description: | + The column projections for the data source. These are the columns + that are projected from the datasets. + items: + $ref: '#/components/schemas/widget-oasis-dataset-column-projection' + sql_query: + type: string + description: | + The base SQL query that constructs the view for the data source. + The SQL can reference the datasets using their aliases. + format: text + required: + - sql_query + title: widget-oasis-data-source + widget-oasis-dataset-column: + type: object + description: An oasis dataset column. + properties: + custom_field: + $ref: '#/components/schemas/custom-field-widget-column-projection' + name: + type: string + description: The name of the column. + format: text + required: + - name + title: widget-oasis-dataset-column + widget-oasis-dataset-column-projection: + type: object + description: An oasis dataset column projection. + properties: + columns: + type: array + description: The column name. + items: + $ref: '#/components/schemas/widget-oasis-dataset-column' + dataset: + type: string + description: The dataset ID. + format: text + required: + - columns + - dataset + title: widget-oasis-dataset-column-projection + widget-pvp-config: + type: object + description: | + Configuration settings for enabling and customizing PVP (past vs. + present) value in widgets. + properties: + enabled: + type: boolean + description: Indicates whether PVP is enabled. + invert_correlation_color: + type: boolean + description: Specifies whether the color scheme for PVP is inverted. + percentage_precision: + type: integer + description: Decimal precision for percentage. + format: int32 + title: widget-pvp-config + widget-query: + type: object + description: | + The query for a widget. This includes measures and dimensions to be + visualized. + properties: + dimensions: + type: array + description: | + The dimensions for the query, which are the categories to group or + segment the measures. Usually these are the X-axis values in a + visualization. + items: + type: string + format: text + filters: + type: array + description: | + Set of filters to apply on the widgets. These filters are applied + on top of the dashboard level filters. + items: + $ref: '#/components/schemas/dashboard-filter' + joins: + type: array + description: Join paths to use for the query. + items: + $ref: '#/components/schemas/widget-query-joins' + limit: + type: integer + description: | + The maximum number of records to return. This is used to limit the + amount of data returned by the query. + format: int32 + measures: + type: array + description: | + The measures for the query, which are the numerical values to be + analyzed. Usually these are the Y-axis values in a visualization. + items: + type: string + format: text + order_by: + type: array + description: | + The order in which the data should be returned. This is used to + sort the data returned by the query. + items: + $ref: '#/components/schemas/widget-query-order-by' + title: widget-query + widget-query-joins: + type: object + description: | + A list of possible joins for the data source. Follows foreign key + semantics. + properties: + path: + type: array + description: A list of joins. + items: + type: string + format: text + required: + - path + title: widget-query-joins + widget-query-order-by: + type: object + description: | + The order in which the data should be returned. This is used to sort + the data returned by the query. + properties: + direction: + $ref: '#/components/schemas/widget-query-order-by-direction' + reference_name: + type: string + description: The column to sort by. + format: text + required: + - direction + - reference_name + title: widget-query-order-by + widget-query-order-by-direction: + type: string + description: The direction of the sort. + enum: + - ascending + - descending widget-summary: allOf: - $ref: '#/components/schemas/atom-base-summary' + - type: object + properties: + title: + type: string + description: The title of the widget. + format: text + required: + - title title: widget-summary + widget-visualization: + type: object + description: | + The visualization for a widget. This includes the type of visualization + and any configuration specific to that type. + properties: + type: + $ref: '#/components/schemas/widget-visualization-type' + bar: + $ref: '#/components/schemas/bar-widget-visualization' + column: + $ref: '#/components/schemas/column-widget-visualization' + donut: + $ref: '#/components/schemas/donut-widget-visualization' + heatmap: + $ref: '#/components/schemas/heatmap-widget-visualization' + kanban: + $ref: '#/components/schemas/kanban-widget-visualization' + line: + $ref: '#/components/schemas/line-widget-visualization' + metric: + $ref: '#/components/schemas/metric-widget-visualization' + packed_bubble: + $ref: '#/components/schemas/packed-bubble-widget-visualization' + pie: + $ref: '#/components/schemas/pie-widget-visualization' + rich_text: + $ref: '#/components/schemas/rich-text-widget-visualization' + scatter: + $ref: '#/components/schemas/scatter-widget-visualization' + table: + $ref: '#/components/schemas/table-widget-visualization' + required: + - type + title: widget-visualization + widget-visualization-type: + type: string + description: The type of the visualization, such as line, bar, pie, etc. + enum: + - bar + - column + - donut + - heatmap + - kanban + - line + - metric + - packed_bubble + - pie + - rich_text + - scatter + - table + widgets-get-request: + type: object + description: The request to get a widget. + properties: + id: + type: string + description: The requested widget's ID. + format: text + required: + - id + title: widgets-get-request + widgets-get-response: + type: object + description: The response to a widget get request. + properties: + widget: + $ref: '#/components/schemas/widget' + required: + - widget + title: widgets-get-response + x-go-name: WidgetsGetResponseBody work: type: object discriminator: @@ -24122,8 +25817,53 @@ components: priority_v2: type: integer description: | - Priority enum id of the work based upon impact and criticality. + Priority enum id of the work based upon impact and criticality. The + allowed ids can be extended by the user. Stock allowed values: + ``` + { + "id": 1, + "label": "P0", + "ordinal": 1, + "overridable": true + }, + { + "id": 2, + "label": "P1", + "ordinal": 2, + "overridable": true + }, + { + "id": 3, + "label": "P2", + "ordinal": 3, + "overridable": true + }, + { + "id": 4, + "label": "P3", + "ordinal": 4, + "overridable": true + } + ``` format: int64 + x-devrev-uenum-overridable: true + x-devrev-uenum-values: + - id: 1 + label: P0 + ordinal: 1 + overridable: true + - id: 2 + label: P1 + ordinal: 2 + overridable: true + - id: 3 + label: P2 + ordinal: 3 + overridable: true + - id: 4 + label: P3 + ordinal: 4 + overridable: true sprint: type: string description: The sprint that the issue belongs to. @@ -24163,8 +25903,74 @@ components: $ref: '#/components/schemas/opportunity-forecast-category' forecast_category_v2: type: integer - description: Forecast category enum ID of an opportunity. + description: | + Forecast category enum ID of an opportunity. The allowed ids can be + extended by the user. Stock allowed values: + ``` + { + "id": 1, + "label": "Omitted", + "ordinal": 1, + "overridable": true + }, + { + "id": 2, + "label": "Pipeline", + "ordinal": 2, + "overridable": true + }, + { + "id": 3, + "label": "Upside", + "ordinal": 3, + "overridable": true + }, + { + "id": 4, + "label": "Strong Upside", + "ordinal": 4, + "overridable": true + }, + { + "id": 5, + "label": "Commit", + "ordinal": 5, + "overridable": true + }, + { + "id": 6, + "label": "Won", + "ordinal": 6, + "overridable": true + } + ``` format: int64 + x-devrev-uenum-overridable: true + x-devrev-uenum-values: + - id: 1 + label: Omitted + ordinal: 1 + overridable: true + - id: 2 + label: Pipeline + ordinal: 2 + overridable: true + - id: 3 + label: Upside + ordinal: 3 + overridable: true + - id: 4 + label: Strong Upside + ordinal: 4 + overridable: true + - id: 5 + label: Commit + ordinal: 5 + overridable: true + - id: 6 + label: Won + ordinal: 6 + overridable: true priority: $ref: '#/components/schemas/opportunity-priority' probability: @@ -24779,8 +26585,53 @@ components: priority_v2: type: integer description: | - Priority enum id of the work based upon impact and criticality. + Priority enum id of the work based upon impact and criticality. The + allowed ids can be extended by the user. Stock allowed values: + ``` + { + "id": 1, + "label": "P0", + "ordinal": 1, + "overridable": true + }, + { + "id": 2, + "label": "P1", + "ordinal": 2, + "overridable": true + }, + { + "id": 3, + "label": "P2", + "ordinal": 3, + "overridable": true + }, + { + "id": 4, + "label": "P3", + "ordinal": 4, + "overridable": true + } + ``` format: int64 + x-devrev-uenum-overridable: true + x-devrev-uenum-values: + - id: 1 + label: P0 + ordinal: 1 + overridable: true + - id: 2 + label: P1 + ordinal: 2 + overridable: true + - id: 3 + label: P2 + ordinal: 3 + overridable: true + - id: 4 + label: P3 + ordinal: 4 + overridable: true sprint: type: string description: Updates the sprint that the issue belongs to. @@ -24832,8 +26683,74 @@ components: nullable: true forecast_category_v2: type: integer - description: Forecast category enum ID of an opportunity. + description: | + Forecast category enum ID of an opportunity. The allowed ids can be + extended by the user. Stock allowed values: + ``` + { + "id": 1, + "label": "Omitted", + "ordinal": 1, + "overridable": true + }, + { + "id": 2, + "label": "Pipeline", + "ordinal": 2, + "overridable": true + }, + { + "id": 3, + "label": "Upside", + "ordinal": 3, + "overridable": true + }, + { + "id": 4, + "label": "Strong Upside", + "ordinal": 4, + "overridable": true + }, + { + "id": 5, + "label": "Commit", + "ordinal": 5, + "overridable": true + }, + { + "id": 6, + "label": "Won", + "ordinal": 6, + "overridable": true + } + ``` format: int64 + x-devrev-uenum-overridable: true + x-devrev-uenum-values: + - id: 1 + label: Omitted + ordinal: 1 + overridable: true + - id: 2 + label: Pipeline + ordinal: 2 + overridable: true + - id: 3 + label: Upside + ordinal: 3 + overridable: true + - id: 4 + label: Strong Upside + ordinal: 4 + overridable: true + - id: 5 + label: Commit + ordinal: 5 + overridable: true + - id: 6 + label: Won + ordinal: 6 + overridable: true probability: type: number description: | @@ -24997,8 +26914,64 @@ components: nullable: true sentiment: type: integer - description: The enum ID for the sentiment of the ticket. + description: | + The enum ID for the sentiment of the ticket. The allowed ids can be + extended by the user. Stock allowed values: + ``` + { + "id": 1, + "label": "Delighted", + "ordinal": 1, + "overridable": true + }, + { + "id": 2, + "label": "Happy", + "ordinal": 2, + "overridable": true + }, + { + "id": 3, + "label": "Neutral", + "ordinal": 3, + "overridable": true + }, + { + "id": 4, + "label": "Unhappy", + "ordinal": 4, + "overridable": true + }, + { + "id": 5, + "label": "Frustrated", + "ordinal": 5, + "overridable": true + } + ``` format: int64 + x-devrev-uenum-overridable: true + x-devrev-uenum-values: + - id: 1 + label: Delighted + ordinal: 1 + overridable: true + - id: 2 + label: Happy + ordinal: 2 + overridable: true + - id: 3 + label: Neutral + ordinal: 3 + overridable: true + - id: 4 + label: Unhappy + ordinal: 4 + overridable: true + - id: 5 + label: Frustrated + ordinal: 5 + overridable: true sentiment_modified_date: type: string description: Timestamp at which sentiment was last modified. @@ -34867,6 +36840,12 @@ paths: schema: type: string format: text + - description: Filters for custom fields. + explode: false + in: query + name: custom_fields + schema: + type: object - description: Filters for enhancement by its accounts. explode: false in: query @@ -35199,6 +37178,13 @@ paths: required: true schema: $ref: '#/components/schemas/preferences-type' + - description: Language code for which to get the preferences for. + explode: false + in: query + name: language_code + schema: + type: string + format: text responses: "200": content: @@ -38245,6 +40231,43 @@ paths: x-fern-audiences: - docs - sdks + /service-accounts.create: + post: + description: Creates a service account. + operationId: service-accounts-create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/service-accounts-create-request' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/service-accounts-create-response' + description: | + The response object to the corresponding create service account + request. + "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' + summary: Create Service Account + tags: + - service-accounts + x-fern-audiences: + - docs + - sdks /service-accounts.get: get: description: Gets a service account. @@ -42271,6 +44294,78 @@ paths: x-fern-audiences: - docs - sdks + /widgets.get: + get: + description: Returns the requested widget. + operationId: widgets-get + parameters: + - description: The requested widget's ID. + explode: false + in: query + name: id + required: true + schema: + type: string + format: text + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/widgets-get-response' + description: The response to a widget get request. + "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' + summary: Get Widget + tags: + - widgets + x-fern-audiences: + - docs + x-request-name: WidgetsGetQuery + post: + description: Returns the requested widget. + operationId: widgets-get-post + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/widgets-get-request' + required: true + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/widgets-get-response' + description: The response to a widget get request. + "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' + summary: Get Widget (POST) + tags: + - widgets + x-fern-audiences: + - docs + - sdks /works.create: post: description: | @@ -43446,6 +45541,8 @@ tags: name: web-crawler-job - description: Webhook event APIs. name: webhooks + - description: Widgets APIs. + name: widgets - description: DevRev work interactions. name: works x-fern-version: diff --git a/fern/apis/public/changelog/2025-04-24.md b/fern/apis/public/changelog/2025-04-24.md new file mode 100644 index 00000000..413df314 --- /dev/null +++ b/fern/apis/public/changelog/2025-04-24.md @@ -0,0 +1,13 @@ + +## New Endpoints + +### Service Accounts +- Added [`POST /service-accounts.create`](/public/api-reference/service-accounts/create) for creating service accounts + +## Modified Endpoints + +### Customization +- Added `is_overridable` property to schema enum fields + +### Timeline +- Added `references` property to timeline comments diff --git a/fern/apis/public/openapi-public.yaml b/fern/apis/public/openapi-public.yaml index 4e9ffd07..a565af16 100644 --- a/fern/apis/public/openapi-public.yaml +++ b/fern/apis/public/openapi-public.yaml @@ -4658,8 +4658,8 @@ components: enum: - error - message + - message_generation_started - progress - - started client_metadata: type: object description: | @@ -4671,6 +4671,8 @@ components: description: | The final response of asynchronous agent events execution. format: text + message_generation_started: + $ref: '#/components/schemas/ai-agent-message-generation-started' progress: $ref: '#/components/schemas/ai-agent-event-execute-progress' session: @@ -4683,8 +4685,6 @@ components: type: string description: An identifier of the session with the AI agent. format: text - started: - $ref: '#/components/schemas/ai-agent-message-generation-started' required: - agent - session @@ -7593,6 +7593,9 @@ components: type: string description: Default value. format: text + is_overridable: + type: boolean + description: Whether the enum is overridable. translated_values: type: object additionalProperties: @@ -7619,6 +7622,9 @@ components: items: type: string format: text + is_overridable: + type: boolean + description: Whether the enum is overridable. translated_values: type: object additionalProperties: @@ -8250,6 +8256,36 @@ components: allOf: - $ref: '#/components/schemas/user-base-summary' title: service-account-summary + service-accounts-create-request: + type: object + description: The request object to create a new service account. + properties: + display_name: + type: string + description: | + The service account's display name. A unique, human readable name + to identify a service account. + format: text + gen_keyring: + type: boolean + description: | + Indicates whether to generate a keyring along with the new service + account. The default is false. + required: + - display_name + title: service-accounts-create-request + service-accounts-create-response: + type: object + description: | + The response object to the corresponding create service account + request. + properties: + service_account: + $ref: '#/components/schemas/service-account' + required: + - service_account + title: service-accounts-create-response + x-go-name: ServiceAccountsCreateResponseBody service-accounts-get-request: type: object description: The request object to get a service account's information. @@ -9264,7 +9300,34 @@ components: format: id dispatched_channels: type: array - description: Source channels on which the survey is sent. + description: | + Source channels on which the survey is sent. Stock allowed values: + ``` + { + "id": 1, + "label": "plug", + "ordinal": 1, + "overridable": false + }, + { + "id": 2, + "label": "portal", + "ordinal": 2, + "overridable": false + }, + { + "id": 3, + "label": "email", + "ordinal": 3, + "overridable": false + }, + { + "id": 4, + "label": "slack", + "ordinal": 4, + "overridable": false + } + ``` items: $ref: '#/components/schemas/enum-value' object: @@ -9993,6 +10056,13 @@ components: format: text body_type: $ref: '#/components/schemas/timeline-comment-body-type' + references: + type: array + description: | + Summary information about objects that are referenced in the + comment. + items: + $ref: '#/components/schemas/atom-summary' snap_kit_body: $ref: '#/components/schemas/timeline-snap-kit-body' snap_widget_body: @@ -11159,8 +11229,53 @@ components: priority_v2: type: integer description: | - Priority enum id of the work based upon impact and criticality. + Priority enum id of the work based upon impact and criticality. The + allowed ids can be extended by the user. Stock allowed values: + ``` + { + "id": 1, + "label": "P0", + "ordinal": 1, + "overridable": true + }, + { + "id": 2, + "label": "P1", + "ordinal": 2, + "overridable": true + }, + { + "id": 3, + "label": "P2", + "ordinal": 3, + "overridable": true + }, + { + "id": 4, + "label": "P3", + "ordinal": 4, + "overridable": true + } + ``` format: int64 + x-devrev-uenum-overridable: true + x-devrev-uenum-values: + - id: 1 + label: P0 + ordinal: 1 + overridable: true + - id: 2 + label: P1 + ordinal: 2 + overridable: true + - id: 3 + label: P2 + ordinal: 3 + overridable: true + - id: 4 + label: P3 + ordinal: 4 + overridable: true sprint: type: string description: The sprint that the issue belongs to. @@ -11670,8 +11785,53 @@ components: priority_v2: type: integer description: | - Priority enum id of the work based upon impact and criticality. + Priority enum id of the work based upon impact and criticality. The + allowed ids can be extended by the user. Stock allowed values: + ``` + { + "id": 1, + "label": "P0", + "ordinal": 1, + "overridable": true + }, + { + "id": 2, + "label": "P1", + "ordinal": 2, + "overridable": true + }, + { + "id": 3, + "label": "P2", + "ordinal": 3, + "overridable": true + }, + { + "id": 4, + "label": "P3", + "ordinal": 4, + "overridable": true + } + ``` format: int64 + x-devrev-uenum-overridable: true + x-devrev-uenum-values: + - id: 1 + label: P0 + ordinal: 1 + overridable: true + - id: 2 + label: P1 + ordinal: 2 + overridable: true + - id: 3 + label: P2 + ordinal: 3 + overridable: true + - id: 4 + label: P3 + ordinal: 4 + overridable: true sprint: type: string description: Updates the sprint that the issue belongs to. @@ -11815,8 +11975,64 @@ components: nullable: true sentiment: type: integer - description: The enum ID for the sentiment of the ticket. + description: | + The enum ID for the sentiment of the ticket. The allowed ids can be + extended by the user. Stock allowed values: + ``` + { + "id": 1, + "label": "Delighted", + "ordinal": 1, + "overridable": true + }, + { + "id": 2, + "label": "Happy", + "ordinal": 2, + "overridable": true + }, + { + "id": 3, + "label": "Neutral", + "ordinal": 3, + "overridable": true + }, + { + "id": 4, + "label": "Unhappy", + "ordinal": 4, + "overridable": true + }, + { + "id": 5, + "label": "Frustrated", + "ordinal": 5, + "overridable": true + } + ``` format: int64 + x-devrev-uenum-overridable: true + x-devrev-uenum-values: + - id: 1 + label: Delighted + ordinal: 1 + overridable: true + - id: 2 + label: Happy + ordinal: 2 + overridable: true + - id: 3 + label: Neutral + ordinal: 3 + overridable: true + - id: 4 + label: Unhappy + ordinal: 4 + overridable: true + - id: 5 + label: Frustrated + ordinal: 5 + overridable: true sentiment_modified_date: type: string description: Timestamp at which sentiment was last modified. @@ -16663,6 +16879,43 @@ paths: x-fern-audiences: - docs - sdks + /service-accounts.create: + post: + description: Creates a service account. + operationId: service-accounts-create + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/service-accounts-create-request' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/service-accounts-create-response' + description: | + The response object to the corresponding create service account + request. + "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' + summary: Create Service Account + tags: + - service-accounts + x-fern-audiences: + - docs + - sdks /service-accounts.get: get: description: Gets a service account. diff --git a/llm_client.py b/llm_client.py index 16f22a14..f95a8e5b 100644 --- a/llm_client.py +++ b/llm_client.py @@ -9,6 +9,7 @@ def get_response(prompt): headers = {"Content-Type": "application/json", "Authorization": f"Bearer {auth}"} payload = { "model": "us.anthropic.claude-3-5-sonnet-20241022-v2:0", + "temperature": 0, "messages": [ { "role": "user", @@ -16,17 +17,37 @@ def get_response(prompt): } ] } - try: r = requests.post('https://openwebui.dev.devrev-eng.ai/api/chat/completions', json=payload, - headers=headers) - response = r.json()['choices'][0]['message']['content'] - response = re.sub(r"^# .*\n?", '', response, flags=re.MULTILINE) - response = re.sub(r"^Here.*\n?", '', response, flags=re.MULTILINE) - response = re.sub(r"^Let me know.*\n?", '', response, flags=re.MULTILINE) + headers=headers) + r.raise_for_status() + + if not r.text: + raise ValueError("Empty response received from API") + json_response = r.json() + if not json_response.get('choices'): + raise ValueError("No 'choices' field in response") + if not json_response['choices'][0].get('message'): + raise ValueError("No 'message' field in response") + if not json_response['choices'][0]['message'].get('content'): + raise ValueError("No 'content' field in response") + + response = json_response['choices'][0]['message']['content'] + + # Check if final response is empty + if not response: + raise ValueError("Empty content received from API") + return response + + except requests.RequestException as e: + print(f"HTTP request failed. Error: {type(e)} {e}") + return None + except ValueError as e: + print(f"Invalid response received. Error: {e}") + return None except Exception as e: - print(f"Failed to generate changelog. Error: {type(e)} {e} {r}") + print(f"Failed to generate response. Error: {type(e)} {e}") return None def get_lines_between_tags(text, tag):