From 5386c9522f7a65f8cf9c85ea2495b148de595e89 Mon Sep 17 00:00:00 2001 From: Aditya Bansal Date: Wed, 29 Oct 2025 12:15:01 -0700 Subject: [PATCH 1/2] My Entities local MCP --- swagger.json | 3089 ++++++++++++++++++++++++++++---------------------- 1 file changed, 1705 insertions(+), 1384 deletions(-) diff --git a/swagger.json b/swagger.json index b1d416b..b7e6924 100644 --- a/swagger.json +++ b/swagger.json @@ -2982,11 +2982,7 @@ ], "requestBody": { "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DataCreateRequest" - } - } + "application/json": {} }, "required": true }, @@ -3047,11 +3043,7 @@ ], "requestBody": { "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BulkCustomDataRequest" - } - } + "application/json": {} }, "required": true }, @@ -4416,7 +4408,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/DataCreateRequest" + "type": "string" } } }, @@ -9558,7 +9550,7 @@ "tags": [ "Eng Intel: 2-Metrics" ], - "x-cortex-mcp-description": "Execute point-in-time queries for one or more engineering metrics in a single request.\n\n Returns current metric values for specified time periods, with support for batch queries\n and optional period-over-period comparisons.\n\n Request body supports:\n - Multiple metrics: Query several metrics efficiently in one call\n - Time range (startTime/endTime): Range cannot exceed 6 months (180 days)\n - Flexible filtering: Use filters available for each metric (varies by source)\n - Grouping options: Group results by available attributes or dimensions detailed from Registry API (author, repo, team, etc.)\n - Aggregation methods: COUNT, SUM, AVG, MIN, MAX per metric requirements - check individual metric definitions\n - Period comparisons: Optional comparison to previous time windows\n - Nested queries: Advanced nested metric calculations\n\n PREREQUISITES:\n - Before constructing aggregation methods: Get supportedAggregations from listMetricDefinitions\n - Before constructing orderBy: Get orderByAttribute and other orderable attributes and dimension attributes from listMetricDefinitions\n - Before constructing groupBy: Get groupByOptions.key from listMetricDefinitions\n - Before constructing filters: Get filterOptions.filter from listMetricDefinitions\n\n IMPORTANT: Do NOT guess or assume attribute names.\n Before using this tool for the first time, ALWAYS call listMetricDefinitions with view\u003d\u0027full\u0027 first to discover available metrics, their supported operations, and exact attribute names.\n This tool should be called BEFORE queryPointInTimeMetrics to determine:\n - Whether the metric is available and it\u0027s readiness status\n - Supported aggregations\n - Valid orderBy attributes\n - Valid groupByOptions keys\n - Valid filter attribute names\n Do NOT make the same call to listMetricDefinitions repeatedly. Use the results from the first call to optimize your queries and only make another call if specifically requested or the data may be stale (generally 4+ hours).\n\n Response includes:\n - Lightweight metadata: Column definitions optimized for programmatic use\n - Row data: Actual metric values and dimensional data\n - No heavy schemas: Source definitions excluded (get from Registry API instead)\n\n Error responses:\n - 400: Invalid metric names, date range, validation errors, or unsupported metric combinations\n - 403: Feature not enabled (contact help@cortex.io)", + "x-cortex-mcp-description": "Execute point-in-time queries for one or more engineering metrics.\n\n Returns current metric values for specified time periods, with support for batch queries\n and optional period-over-period comparisons. Time range (startTime/endTime) cannot exceed 6 months (180 days).\n\n PREREQUISITES - Follow this workflow:\n 1. Discover all available metrics ONCE: Call listMetricDefinitions (view\u003d\u0027basic\u0027) - cache this response\n 2. Get metric query metadata ONCE per metric: Call listMetricDefinitions (view\u003d\u0027full\u0027, key\u003dMETRIC_KEY)\n - supportedAggregations: Valid aggregation methods\n - orderByAttribute: Attribute path for sorting by metric values\n - groupByOptions[].key: Valid groupBy keys (use exact values, do NOT guess)\n - filterOptions[].key: Valid filter keys (use exact values, do NOT guess)\n Cache the full view response for each metric. Reuse the metadata from cached responses for subsequent queries on the same metric.\n 3. Construct query: Use the query metadata from the full view responses in step 2 to build valid point-in-time requests\n\n IMPORTANT: Cache only results from listMetricDefinitions. Do NOT cache point-in-time query results - always execute fresh queries for current data.\n Only refresh cached listMetricDefinitions responses if no longer in your context window or explicitly requested.\n Do NOT guess attribute names - always use exact values from listMetricDefinitions responses.\n\n Response includes:\n - Lightweight metadata: Column definitions optimized for programmatic use\n - Row data: Actual metric values and dimensional data\n - No heavy schemas: Source definitions excluded (get from listMetricDefinitions instead)\n\n Error responses:\n - 400: Invalid metric names, date range, validation errors, or unsupported metric combinations\n - 403: Feature not enabled (contact help@cortex.io)", "x-cortex-mcp-enabled": "true", "x-internal": true } @@ -9642,7 +9634,7 @@ "tags": [ "Eng Intel: 1-Registry" ], - "x-cortex-mcp-description": "List all available engineering metric definitions.\n\n Query parameters:\n - view: \u0027basic\u0027 (default) returns minimal info, \u0027full\u0027 includes sources and query metadata\n - key: Filter metrics by key (supports multiple values and comma-separated lists)\n\n Error responses:\n - 400: Invalid view parameter (must be \u0027basic\u0027 or \u0027full\u0027)\n - 403: Restricted Feature (contact help@cortex.io)\n\n Valid orderBy attributes for metric queries:\n - orderByAttribute: The metric value itself (returned in full view)\n - Source attributes: Any attribute from the metric\u0027s source (e.g., \"source_name.attribute_name\")\n - Dimension attributes: Any attribute from related dimensions (e.g., \"source_name.dimension_name.attribute_name\")\n\n Valid groupBy options for metric queries:\n - Use the exact \u0027key\u0027 field from groupByOptions in the source (returned in full view)\n - Do NOT construct or guess groupBy keys - only use the keys explicitly listed in groupByOptions\n\n Valid filter options for metric queries:\n - Use the exact \u0027key\u0027 field from filterOptions in the source (returned in full view)\n - The \u0027filter\u0027 field shows the actual attribute path being filtered\n - Do NOT construct or guess filter keys - only use the keys explicitly listed in filterOptions\n\n Filter operators by type (for constructing queries):\n - STRING: EQUAL, NOT_EQUAL, IS_NULL, IS_NOT_NULL, LIKE, NOT_LIKE, IN, NOT_IN, ANY\n - INTEGER/DECIMAL/DOUBLE: EQUAL, NOT_EQUAL, IS_NULL, IS_NOT_NULL, GREATER_THAN, LESS_THAN, GREATER_THAN_OR_EQUAL, LESS_THAN_OR_EQUAL, IN, NOT_IN, BETWEEN, ANY\n - DATETIME/DATE: EQUAL, NOT_EQUAL, IS_NULL, IS_NOT_NULL, GREATER_THAN, LESS_THAN, GREATER_THAN_OR_EQUAL, LESS_THAN_OR_EQUAL, BETWEEN\n - BOOLEAN: EQUAL, NOT_EQUAL, IS_NULL, IS_NOT_NULL, IN, NOT_IN\n - ARRAY: EQUAL, CONTAINS, IN", + "x-cortex-mcp-description": "List all available engineering metric definitions.\n\n USAGE - Call this endpoint BEFORE querying metrics (queryPointInTimeMetrics):\n 1. Once at start: Call with view\u003d\u0027basic\u0027 to discover all available metrics - cache this response\n 2. Once per metric: Call with view\u003d\u0027full\u0027 and key\u003dMETRIC_KEY to get detailed metadata - cache each response\n 3. Use cached metadata to construct valid point-in-time queries\n\n Cache responses in your context. Only refresh if no longer in your context window or explicitly requested (ex to check if metric readiness has changed).\n\n Query parameters:\n - view: \u0027basic\u0027 (default) returns minimal info, \u0027full\u0027 includes sources and query metadata\n - key: Filter metrics by key (supports multiple values and comma-separated lists)\n\n Full view provides query construction metadata:\n - supportedAggregations: Valid aggregation methods for the metric\n - orderByAttribute: Attribute path for sorting by metric values\n - groupByOptions[].key: Valid groupBy keys (use exact values, do NOT guess)\n - filterOptions[].key: Valid filter keys (use exact values, do NOT guess)\n\n Valid orderBy attributes for metric queries:\n - orderByAttribute: The metric value itself (returned in full view)\n - Source attributes: Any attribute from the metric\u0027s source (e.g., \"source_name.attribute_name\")\n - Dimension attributes: Any attribute from related dimensions (e.g., \"source_name.dimension_name.attribute_name\")\n\n Filter operators by type (for constructing queries):\n - STRING: EQUAL, NOT_EQUAL, IS_NULL, IS_NOT_NULL, LIKE, NOT_LIKE, IN, NOT_IN, ANY\n - INTEGER/DECIMAL/DOUBLE: EQUAL, NOT_EQUAL, IS_NULL, IS_NOT_NULL, GREATER_THAN, LESS_THAN, GREATER_THAN_OR_EQUAL, LESS_THAN_OR_EQUAL, IN, NOT_IN, BETWEEN, ANY\n - DATETIME/DATE: EQUAL, NOT_EQUAL, IS_NULL, IS_NOT_NULL, GREATER_THAN, LESS_THAN, GREATER_THAN_OR_EQUAL, LESS_THAN_OR_EQUAL, BETWEEN\n - BOOLEAN: EQUAL, NOT_EQUAL, IS_NULL, IS_NOT_NULL, IN, NOT_IN\n - ARRAY: EQUAL, CONTAINS, IN\n\n Error responses:\n - 400: Invalid view parameter (must be \u0027basic\u0027 or \u0027full\u0027)\n - 403: Restricted Feature (contact help@cortex.io)", "x-cortex-mcp-enabled": "true", "x-internal": true } @@ -15058,7 +15050,14 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/PublicIdentifier" + "oneOf": [ + { + "$ref": "#/components/schemas/Id" + }, + { + "$ref": "#/components/schemas/Tag" + } + ] } } }, @@ -15070,7 +15069,14 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/PublicIdentifier" + "oneOf": [ + { + "$ref": "#/components/schemas/Id" + }, + { + "$ref": "#/components/schemas/Tag" + } + ] } } }, @@ -18633,6 +18639,34 @@ } }, "Attribute": { + "required": [ + "alias", + "attributeName", + "name", + "ordinal" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/Column" + }, + { + "type": "object", + "properties": { + "attributeName": { + "type": "string", + "description": "Name of the attribute field this column represents" + }, + "ordinal": { + "type": "integer", + "description": "Zero-based column position in the result data rows - use this to map column metadata to actual row data values", + "format": "int32" + } + } + } + ] + }, + "Attribute1": { "required": [ "name", "type" @@ -19159,7 +19193,14 @@ "description": "Unique identifier for the metric (used in queries)" }, "readiness": { - "$ref": "#/components/schemas/Readiness" + "oneOf": [ + { + "$ref": "#/components/schemas/NotReady" + }, + { + "$ref": "#/components/schemas/Ready" + } + ] } }, "description": "List of available metric definitions with basic metadata" @@ -19184,6 +19225,9 @@ } } } + }, + { + "$ref": "#/components/schemas/MetricDefinitionsResponseObject" } ] }, @@ -19308,73 +19352,6 @@ } } }, - "BulkCustomDataRequest": { - "required": [ - "values" - ], - "type": "object", - "properties": { - "values": { - "type": "object", - "additionalProperties": { - "type": "array", - "description": "Map of entity tag -\u003e custom data key/values", - "example": { - "another-service-tag": [ - { - "key": "different-key", - "value": { - "nested": "object" - } - }, - { - "key": "my-cool-key", - "value": "Hello again" - } - ], - "service-x": [ - { - "key": "my-key", - "value": 100 - }, - { - "key": "my-second-key", - "value": "Hello" - } - ] - }, - "items": { - "$ref": "#/components/schemas/DataCreateRequest" - } - }, - "description": "Map of entity tag -\u003e custom data key/values", - "example": { - "another-service-tag": [ - { - "key": "different-key", - "value": { - "nested": "object" - } - }, - { - "key": "my-cool-key", - "value": "Hello again" - } - ], - "service-x": [ - { - "key": "my-key", - "value": 100 - }, - { - "key": "my-second-key", - "value": "Hello" - } - ] - } - } - } - }, "BulkCustomDataResponse": { "required": [ "values" @@ -19555,28 +19532,25 @@ "type" ], "type": "object", - "properties": { - "cqlFilter": { - "$ref": "#/components/schemas/CQL_FILTER" - }, - "entityGroupFilter": { - "$ref": "#/components/schemas/EntityGroupFilterDTO" - }, - "type": { - "type": "string", - "enum": [ - "CQL_FILTER", - "SERVICE_FILTER", - "RESOURCE_FILTER", - "DOMAIN_FILTER", - "TEAM_FILTER", - "COMPOUND_FILTER" - ] + "allOf": [ + { + "$ref": "#/components/schemas/EntityFilter" }, - "typeFilter": { - "$ref": "#/components/schemas/EntityTypeFilter" + { + "type": "object", + "properties": { + "cqlFilter": { + "$ref": "#/components/schemas/CQL_FILTER" + }, + "entityGroupFilter": { + "$ref": "#/components/schemas/EntityGroupFilterDTO" + }, + "typeFilter": { + "$ref": "#/components/schemas/EntityTypeFilter" + } + } } - } + ] }, "CQL_FILTER": { "required": [ @@ -19585,39 +19559,36 @@ "type" ], "type": "object", - "properties": { - "category": { - "type": "string", - "enum": [ - "Service", - "Resource", - "Domain", - "Team", - "Generic" - ] - }, - "cqlVersion": { - "type": "string", - "enum": [ - "V1", - "V2" - ] - }, - "query": { - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/EntityFilter" }, - "type": { - "type": "string", - "enum": [ - "CQL_FILTER", - "SERVICE_FILTER", - "RESOURCE_FILTER", - "DOMAIN_FILTER", - "TEAM_FILTER", - "COMPOUND_FILTER" - ] + { + "type": "object", + "properties": { + "category": { + "type": "string", + "enum": [ + "Service", + "Resource", + "Domain", + "Team", + "Generic" + ] + }, + "cqlVersion": { + "type": "string", + "enum": [ + "V1", + "V2" + ] + }, + "query": { + "type": "string" + } + } } - } + ] }, "CUSTOM": { "required": [ @@ -19625,15 +19596,23 @@ "type" ], "type": "object", - "properties": { - "tag": { - "type": "string", - "description": "Tag of the [custom role](https://docs.cortex.io/docs/walkthroughs/workspace-settings/permissioning/custom-roles)" + "allOf": [ + { + "$ref": "#/components/schemas/ApiKeyRole" }, - "type": { - "type": "string" + { + "type": "object", + "properties": { + "tag": { + "type": "string", + "description": "Tag of the [custom role](https://docs.cortex.io/docs/walkthroughs/workspace-settings/permissioning/custom-roles)" + }, + "type": { + "type": "string" + } + } } - } + ] }, "CallbackRequest": { "required": [ @@ -20456,17 +20435,11 @@ "type" ], "type": "object", - "properties": { - "source": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/CortexTeamMemberRole" } - } + ] }, "CortexTeamMemberRole.TEAM_ROLE": { "title": "TEAM_ROLE", @@ -20476,20 +20449,19 @@ "type" ], "type": "object", - "properties": { - "name": { - "type": "string" - }, - "source": { - "type": "string" - }, - "tag": { - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/CortexTeamMemberRole" }, - "type": { - "type": "string" + { + "type": "object", + "properties": { + "name": { + "type": "string" + } + } } - } + ] }, "CortexUserDefinition": { "required": [ @@ -20860,34 +20832,27 @@ "type" ], "type": "object", - "properties": { - "cortexTeam": { - "$ref": "#/components/schemas/CortexTeamDetails" - }, - "links": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TeamsLink" - } - }, - "metadata": { - "$ref": "#/components/schemas/TeamMetadata" + "description": "Use this request shape when creating a team entry whose memberships are manually maintained via API or the UI.", + "allOf": [ + { + "$ref": "#/components/schemas/CreateTeamRequest" }, - "slackChannels": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SlackChannel1" + { + "type": "object", + "properties": { + "cortexTeam": { + "$ref": "#/components/schemas/CortexTeamDetails" + }, + "teamTag": { + "type": "string", + "description": "A unique identifier for the team, which is used for programmatic access as well as in Catalog Descriptors to define ownership of an entity." + }, + "type": { + "type": "string" + } } - }, - "teamTag": { - "type": "string", - "description": "A unique identifier for the team, which is used for programmatic access as well as in Catalog Descriptors to define ownership of an entity." - }, - "type": { - "type": "string" } - }, - "description": "Use this request shape when creating a team entry whose memberships are manually maintained via API or the UI." + ] }, "CreateTeamRequest.IDP": { "title": "IDP", @@ -20900,34 +20865,27 @@ "type" ], "type": "object", - "properties": { - "idpGroup": { - "$ref": "#/components/schemas/IdpGroupDetailsRequest" + "description": "Use this request shape when creating a team entry whose memberships are synced with an Idp group, such as from Okta, Google Groups, Github Teams, Azure AD, etc.", + "allOf": [ + { + "$ref": "#/components/schemas/CreateTeamRequest" }, - "links": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TeamsLink" - } - }, - "metadata": { - "$ref": "#/components/schemas/TeamMetadata" - }, - "slackChannels": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SlackChannel1" + { + "type": "object", + "properties": { + "idpGroup": { + "$ref": "#/components/schemas/IdpGroupDetailsRequest" + }, + "teamTag": { + "type": "string", + "description": "A unique identifier for the team to be used for API/programmatic access" + }, + "type": { + "type": "string" + } } - }, - "teamTag": { - "type": "string", - "description": "A unique identifier for the team to be used for API/programmatic access" - }, - "type": { - "type": "string" } - }, - "description": "Use this request shape when creating a team entry whose memberships are synced with an Idp group, such as from Okta, Google Groups, Github Teams, Azure AD, etc." + ] }, "CurrentLevel": { "required": [ @@ -20998,21 +20956,6 @@ } } }, - "CustomDataType": { - "type": "object", - "properties": { - "value": { - "type": "object", - "writeOnly": true - } - }, - "description": "Value for the key; can be any valid JSON type", - "example": { - "nested": { - "objects": "are ok" - } - } - }, "CustomDeploy": { "required": [ "serviceId", @@ -21329,42 +21272,47 @@ "type" ], "type": "object", - "properties": { - "role": { - "type": "string", - "description": "The role of the API key", - "enum": [ - "READ_ONLY", - "USER", - "ADMIN" - ] + "allOf": [ + { + "$ref": "#/components/schemas/ApiKeyRole" }, - "type": { - "type": "string" + { + "type": "object", + "properties": { + "role": { + "type": "string", + "description": "The role of the API key", + "enum": [ + "READ_ONLY", + "USER", + "ADMIN" + ] + }, + "type": { + "type": "string" + } + } } - } + ] }, "DOMAIN_FILTER": { "required": [ "type" ], "type": "object", - "properties": { - "entityGroupFilter": { - "$ref": "#/components/schemas/EntityGroupFilterDTO" + "allOf": [ + { + "$ref": "#/components/schemas/EntityFilter" }, - "type": { - "type": "string", - "enum": [ - "CQL_FILTER", - "SERVICE_FILTER", - "RESOURCE_FILTER", - "DOMAIN_FILTER", - "TEAM_FILTER", - "COMPOUND_FILTER" - ] + { + "type": "object", + "properties": { + "entityGroupFilter": { + "$ref": "#/components/schemas/EntityGroupFilterDTO" + } + } } - } + ] }, "DYNATRACE": { "required": [ @@ -21385,26 +21333,6 @@ } ] }, - "DataCreateRequest": { - "required": [ - "key", - "value" - ], - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "key": { - "type": "string", - "description": "Custom data key for the entity", - "example": "my-key" - }, - "value": { - "$ref": "#/components/schemas/CustomDataType" - } - } - }, "DatadogConfiguration": { "required": [ "alias", @@ -21622,14 +21550,19 @@ "type" ], "type": "object", - "properties": { - "tag": { - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/BaseRole" }, - "type": { - "type": "string" + { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + } } - } + ] }, "DepartmentResponse.BaseRole.TEAM_ROLE": { "title": "TEAM_ROLE", @@ -21639,17 +21572,22 @@ "type" ], "type": "object", - "properties": { - "name": { - "type": "string" - }, - "tag": { - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/BaseRole" }, - "type": { - "type": "string" + { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "tag": { + "type": "string" + } + } } - } + ] }, "DependencyCreateRequest": { "type": "object", @@ -21848,7 +21786,7 @@ "type": "array", "description": "Queryable fields available on this dimension", "items": { - "$ref": "#/components/schemas/Attribute" + "$ref": "#/components/schemas/Attribute1" } }, "description": { @@ -21990,14 +21928,19 @@ "type" ], "type": "object", - "properties": { - "entityFilter": { - "$ref": "#/components/schemas/EntityFilter" + "allOf": [ + { + "$ref": "#/components/schemas/CortexPluginContext" }, - "type": { - "type": "string" + { + "type": "object", + "properties": { + "entityFilter": { + "$ref": "#/components/schemas/EntityFilter" + } + } } - } + ] }, "EditPersonalConfigurationRequest": { "required": [ @@ -22437,6 +22380,39 @@ }, "description": "Hierarchy details for the entity. Includes both the parent \u0026 the children chains." }, + "EntityReference": { + "required": [ + "alias", + "attributeName", + "entityType", + "name", + "ordinal" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/Column" + }, + { + "type": "object", + "properties": { + "attributeName": { + "type": "string", + "description": "Name of the attribute that references the entity" + }, + "entityType": { + "type": "string", + "description": "Type of entity being referenced (e.g., \u0027user\u0027, \u0027team\u0027, \u0027service\u0027)" + }, + "ordinal": { + "type": "integer", + "description": "Zero-based column position in the result data rows - use this to map column metadata to actual row data values", + "format": "int32" + } + } + } + ] + }, "EntityRelationship": { "required": [ "destinationEntityTag", @@ -22935,11 +22911,11 @@ }, "description": "API key or person who requested, approved, or rejected the exemption", "discriminator": { - "propertyName": "type", "mapping": { "API": "#/components/schemas/RuleExemptionApiActor", "USER": "#/components/schemas/RuleExemptionUserActor" - } + }, + "propertyName": "type" }, "oneOf": [ { @@ -23076,7 +23052,14 @@ "description": "The attribute used for ordering/sorting metric results" }, "readiness": { - "$ref": "#/components/schemas/Readiness" + "oneOf": [ + { + "$ref": "#/components/schemas/NotReady" + }, + { + "$ref": "#/components/schemas/Ready" + } + ] }, "sourceRef": { "type": "string", @@ -23101,7 +23084,7 @@ } }, "timeAttribute": { - "$ref": "#/components/schemas/Attribute" + "$ref": "#/components/schemas/Attribute1" }, "type": { "type": "string", @@ -23156,6 +23139,9 @@ "description": "Map of source names to source metadata for query construction" } } + }, + { + "$ref": "#/components/schemas/MetricDefinitionsResponseObject" } ] }, @@ -23286,11 +23272,11 @@ "type" ], "type": "object", - "properties": { - "type": { - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/CortexPluginContext" } - } + ] }, "GitDetails": { "required": [ @@ -23667,26 +23653,22 @@ "type" ], "type": "object", - "properties": { - "alias": { - "type": "string" - }, - "appUrl": { - "type": "string" - }, - "host": { - "type": "string" - }, - "installation": { - "$ref": "#/components/schemas/Installation" - }, - "isDefault": { - "type": "boolean" + "allOf": [ + { + "$ref": "#/components/schemas/GithubConfigurationResponse" }, - "type": { - "type": "string" + { + "type": "object", + "properties": { + "appUrl": { + "type": "string" + }, + "installation": { + "$ref": "#/components/schemas/Installation" + } + } } - } + ] }, "GithubConfigurationResponse.PERSONAL_ACCESS_TOKEN": { "title": "PERSONAL_ACCESS_TOKEN", @@ -23696,20 +23678,11 @@ "type" ], "type": "object", - "properties": { - "alias": { - "type": "string" - }, - "host": { - "type": "string" - }, - "isDefault": { - "type": "boolean" - }, - "type": { - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/GithubConfigurationResponse" } - } + ] }, "GitlabConfiguration": { "required": [ @@ -23912,42 +23885,7 @@ "type": "object", "properties": { "children": { - "required": [ - "id", - "name", - "tag", - "type" - ], - "type": "object", - "properties": { - "definition": { - "$ref": "#/components/schemas/JsonNode" - }, - "description": { - "type": "string" - }, - "groups": { - "type": "array", - "description": "List of groups for this node. Only included if includeHierarchyFields contains groups", - "items": { - "type": "string", - "description": "List of groups for this node. Only included if includeHierarchyFields contains groups" - } - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "description": "Child at the current depth, and its children." + "$ref": "#/components/schemas/HierarchyChildNode" }, "definition": { "$ref": "#/components/schemas/JsonNode" @@ -24009,42 +23947,7 @@ "type": "string" }, "parents": { - "required": [ - "id", - "name", - "tag", - "type" - ], - "type": "object", - "properties": { - "definition": { - "$ref": "#/components/schemas/JsonNode" - }, - "description": { - "type": "string" - }, - "groups": { - "type": "array", - "description": "List of groups for this node. Only included if includeHierarchyFields contains groups", - "items": { - "type": "string", - "description": "List of groups for this node. Only included if includeHierarchyFields contains groups" - } - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "tag": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "description": "Parent at the current depth, and its parents." + "$ref": "#/components/schemas/HierarchyParentNode" }, "tag": { "type": "string" @@ -24077,6 +23980,25 @@ } ] }, + "Id": { + "required": [ + "cid" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/Identifier" + }, + { + "type": "object", + "properties": { + "cid": { + "type": "string" + } + } + } + ] + }, "Identifier": { "type": "object" }, @@ -24527,6 +24449,26 @@ } } }, + "JavaScript": { + "required": [ + "script", + "type" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/VariableSource" + }, + { + "type": "object", + "properties": { + "script": { + "type": "string" + } + } + } + ] + }, "JsonDescriptorsListResponse": { "required": [ "descriptors", @@ -24875,6 +24817,49 @@ }, "description": "Custom data key/values associated with the entity." }, + "MetricAggregate": { + "required": [ + "aggregationFunction", + "alias", + "metricKey", + "name", + "ordinal" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/Column" + }, + { + "type": "object", + "properties": { + "aggregationFunction": { + "type": "string", + "enum": [ + "SUM", + "AVG", + "COUNT", + "RATIO", + "MIN", + "MAX", + "P50", + "P95", + "RANKING" + ] + }, + "metricKey": { + "type": "string", + "description": "Unique identifier of the metric being aggregated" + }, + "ordinal": { + "type": "integer", + "description": "Zero-based column position in the result data rows - use this to map column metadata to actual row data values", + "format": "int32" + } + } + } + ] + }, "MetricAggregation": { "required": [ "aggregation", @@ -24920,7 +24905,14 @@ "type": "string" }, "readiness": { - "$ref": "#/components/schemas/Readiness" + "oneOf": [ + { + "$ref": "#/components/schemas/NotReady" + }, + { + "$ref": "#/components/schemas/Ready" + } + ] } } }, @@ -24945,6 +24937,55 @@ "propertyName": "view" } }, + "MetricDefinitionsResponseObject": { + "required": [ + "metrics", + "view" + ], + "type": "object", + "properties": { + "metrics": { + "type": "array", + "items": { + "type": "object" + } + }, + "view": { + "type": "string" + } + }, + "discriminator": { + "propertyName": "view" + } + }, + "MetricValue": { + "required": [ + "alias", + "metricKey", + "name", + "ordinal" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/Column" + }, + { + "type": "object", + "properties": { + "metricKey": { + "type": "string", + "description": "Unique identifier of the metric this column represents" + }, + "ordinal": { + "type": "integer", + "description": "Zero-based column position in the result data rows - use this to map column metadata to actual row data values", + "format": "int32" + } + } + } + ] + }, "ModifiedRuleExemptionsResponse": { "required": [ "exemptions" @@ -25335,6 +25376,25 @@ } } }, + "NotReady": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/Readiness" + }, + { + "type": "object", + "properties": { + "docsUrl": { + "type": "string" + }, + "hint": { + "type": "string" + } + } + } + ] + }, "NotificationLog": { "required": [ "id", @@ -25883,19 +25943,27 @@ "type" ], "type": "object", - "properties": { - "inputKey": { - "type": "string", - "description": "The input key to override" - }, - "outputVariable": { - "type": "string", - "description": "The path to the override value in the workflow context" + "allOf": [ + { + "$ref": "#/components/schemas/InputOverride" }, - "type": { - "type": "string" + { + "type": "object", + "properties": { + "inputKey": { + "type": "string", + "description": "The input key to override" + }, + "outputVariable": { + "type": "string", + "description": "The path to the override value in the workflow context" + }, + "type": { + "type": "string" + } + } } - } + ] }, "OrderBy": { "required": [ @@ -26504,7 +26572,26 @@ "type": "array", "description": "List of column definitions describing each field in the result rows", "items": { - "$ref": "#/components/schemas/Column" + "oneOf": [ + { + "$ref": "#/components/schemas/Attribute" + }, + { + "$ref": "#/components/schemas/EntityReference" + }, + { + "$ref": "#/components/schemas/MetricAggregate" + }, + { + "$ref": "#/components/schemas/MetricValue" + }, + { + "$ref": "#/components/schemas/TimeWindow" + }, + { + "$ref": "#/components/schemas/Url" + } + ] } } }, @@ -26569,25 +26656,22 @@ "type" ], "type": "object", - "properties": { - "entityGroupFilter": { - "$ref": "#/components/schemas/EntityGroupFilterDTO" - }, - "type": { - "type": "string", - "enum": [ - "CQL_FILTER", - "SERVICE_FILTER", - "RESOURCE_FILTER", - "DOMAIN_FILTER", - "TEAM_FILTER", - "COMPOUND_FILTER" - ] + "allOf": [ + { + "$ref": "#/components/schemas/EntityFilter" }, - "typeFilter": { - "$ref": "#/components/schemas/EntityTypeFilter" + { + "type": "object", + "properties": { + "entityGroupFilter": { + "$ref": "#/components/schemas/EntityGroupFilterDTO" + }, + "typeFilter": { + "$ref": "#/components/schemas/EntityTypeFilter" + } + } } - } + ] }, "Readiness": { "required": [ @@ -26604,6 +26688,34 @@ "propertyName": "type" } }, + "Ready": { + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/Readiness" + } + ] + }, + "Reference": { + "required": [ + "path", + "type" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/VariableSource" + }, + { + "type": "object", + "properties": { + "path": { + "type": "string" + } + } + } + ] + }, "RejectRuleExemptionRequest": { "required": [ "reason", @@ -26903,22 +27015,19 @@ "type" ], "type": "object", - "properties": { - "entityGroupFilter": { - "$ref": "#/components/schemas/EntityGroupFilterDTO" + "allOf": [ + { + "$ref": "#/components/schemas/EntityFilter" }, - "type": { - "type": "string", - "enum": [ - "CQL_FILTER", - "SERVICE_FILTER", - "RESOURCE_FILTER", - "DOMAIN_FILTER", - "TEAM_FILTER", - "COMPOUND_FILTER" - ] + { + "type": "object", + "properties": { + "entityGroupFilter": { + "$ref": "#/components/schemas/EntityGroupFilterDTO" + } + } } - } + ] }, "SaveCustomEventRequest": { "required": [ @@ -27537,7 +27646,7 @@ "type": "array", "description": "Queryable fields available directly on this source", "items": { - "$ref": "#/components/schemas/Attribute" + "$ref": "#/components/schemas/Attribute1" } }, "description": { @@ -27577,22 +27686,38 @@ "type" ], "type": "object", - "properties": { - "entityGroupFilter": { - "$ref": "#/components/schemas/EntityGroupFilterDTO" + "allOf": [ + { + "$ref": "#/components/schemas/EntityFilter" }, - "type": { - "type": "string", - "enum": [ - "CQL_FILTER", - "SERVICE_FILTER", - "RESOURCE_FILTER", - "DOMAIN_FILTER", - "TEAM_FILTER", - "COMPOUND_FILTER" - ] + { + "type": "object", + "properties": { + "entityGroupFilter": { + "$ref": "#/components/schemas/EntityGroupFilterDTO" + } + } } - } + ] + }, + "Tag": { + "required": [ + "tag" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/Identifier" + }, + { + "type": "object", + "properties": { + "tag": { + "type": "string" + } + } + } + ] }, "TeamDetails": { "required": [ @@ -27848,41 +27973,19 @@ "type" ], "type": "object", - "properties": { - "catalogEntityTag": { - "type": "string" - }, - "cortexTeam": { - "$ref": "#/components/schemas/CortexTeamDetails" - }, - "id": { - "type": "string" - }, - "isArchived": { - "type": "boolean" - }, - "links": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TeamsLink" - } - }, - "metadata": { - "$ref": "#/components/schemas/TeamMetadata" + "allOf": [ + { + "$ref": "#/components/schemas/TeamResponse" }, - "slackChannels": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SlackChannel1" + { + "type": "object", + "properties": { + "cortexTeam": { + "$ref": "#/components/schemas/CortexTeamDetails" + } } - }, - "teamTag": { - "type": "string" - }, - "type": { - "type": "string" } - } + ] }, "TeamResponse.IDP": { "title": "IDP", @@ -27898,41 +28001,19 @@ "type" ], "type": "object", - "properties": { - "catalogEntityTag": { - "type": "string" - }, - "id": { - "type": "string" - }, - "idpGroup": { - "$ref": "#/components/schemas/IdpGroupDetailsResponse" - }, - "isArchived": { - "type": "boolean" - }, - "links": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TeamsLink" - } - }, - "metadata": { - "$ref": "#/components/schemas/TeamMetadata" + "allOf": [ + { + "$ref": "#/components/schemas/TeamResponse" }, - "slackChannels": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SlackChannel1" + { + "type": "object", + "properties": { + "idpGroup": { + "$ref": "#/components/schemas/IdpGroupDetailsResponse" + } } - }, - "teamTag": { - "type": "string" - }, - "type": { - "type": "string" } - } + ] }, "TeamsLink": { "required": [ @@ -28374,30 +28455,23 @@ "type" ], "type": "object", - "properties": { - "cortexTeam": { - "$ref": "#/components/schemas/CortexTeamDetails" - }, - "links": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TeamsLink" - } - }, - "metadata": { - "$ref": "#/components/schemas/TeamMetadata" + "description": "Use this request shape when updating a team entry whose memberships are manually maintained via API or the UI.", + "allOf": [ + { + "$ref": "#/components/schemas/UpdateTeamRequest" }, - "slackChannels": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SlackChannel1" + { + "type": "object", + "properties": { + "cortexTeam": { + "$ref": "#/components/schemas/CortexTeamDetails" + }, + "type": { + "type": "string" + } } - }, - "type": { - "type": "string" } - }, - "description": "Use this request shape when updating a team entry whose memberships are manually maintained via API or the UI." + ] }, "UpdateTeamRequest.IDP": { "title": "IDP", @@ -28408,27 +28482,48 @@ "type" ], "type": "object", - "properties": { - "links": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TeamsLink" - } - }, - "metadata": { - "$ref": "#/components/schemas/TeamMetadata" + "description": "Use this request shape when updating a team entry whose memberships are synced with an Idp group, such as from Okta, Google Groups, Github Teams, Azure AD, etc.", + "allOf": [ + { + "$ref": "#/components/schemas/UpdateTeamRequest" }, - "slackChannels": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SlackChannel1" + { + "type": "object", + "properties": { + "type": { + "type": "string" + } } + } + ] + }, + "Url": { + "required": [ + "alias", + "attributeName", + "name", + "ordinal" + ], + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/Column" }, - "type": { - "type": "string" + { + "type": "object", + "properties": { + "attributeName": { + "type": "string", + "description": "Name of the attribute containing the URL" + }, + "ordinal": { + "type": "integer", + "description": "Zero-based column position in the result data rows - use this to map column metadata to actual row data values", + "format": "int32" + } + } } - }, - "description": "Use this request shape when updating a team entry whose memberships are synced with an Idp group, such as from Okta, Google Groups, Github Teams, Azure AD, etc." + ] }, "User": { "required": [ @@ -28572,23 +28667,31 @@ "type" ], "type": "object", - "properties": { - "editable": { - "type": "boolean", - "description": "Whether the override is editable by the user. Defaults to `false`. If set to `true` it\u0027ll pause the execution of the workflow and wait for the user to provide the value" - }, - "inputKey": { - "type": "string", - "description": "The input key to override" - }, - "outputVariable": { - "type": "string", - "description": "The path to the override value in the workflow context" + "allOf": [ + { + "$ref": "#/components/schemas/InputOverride" }, - "type": { - "type": "string" + { + "type": "object", + "properties": { + "editable": { + "type": "boolean", + "description": "Whether the override is editable by the user. Defaults to `false`. If set to `true` it\u0027ll pause the execution of the workflow and wait for the user to provide the value" + }, + "inputKey": { + "type": "string", + "description": "The input key to override" + }, + "outputVariable": { + "type": "string", + "description": "The path to the override value in the workflow context" + }, + "type": { + "type": "string" + } + } } - } + ] }, "VariableAssignment": { "required": [ @@ -28602,7 +28705,14 @@ "description": "The type of the variable" }, "source": { - "$ref": "#/components/schemas/VariableSource" + "oneOf": [ + { + "$ref": "#/components/schemas/JavaScript" + }, + { + "$ref": "#/components/schemas/Reference" + } + ] } }, "description": "The variables to set for the action" @@ -28775,23 +28885,31 @@ "type" ], "type": "object", - "properties": { - "actionIdentifier": { - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowActionSchema" }, - "inputs": { + { "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/JsonNode" + "properties": { + "actionIdentifier": { + "type": "string" + }, + "inputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + } + }, + "integrationAlias": { + "type": "string" + }, + "type": { + "type": "string" + } } - }, - "integrationAlias": { - "type": "string" - }, - "type": { - "type": "string" } - } + ] }, "WorkflowActionSchema.AWS": { "title": "AWS", @@ -28803,26 +28921,34 @@ "type" ], "type": "object", - "properties": { - "accountId": { - "type": "string" - }, - "actionIdentifier": { - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowActionSchema" }, - "inputs": { + { "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/JsonNode" + "properties": { + "accountId": { + "type": "string" + }, + "actionIdentifier": { + "type": "string" + }, + "inputs": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/JsonNode" + } + }, + "region": { + "type": "string" + }, + "type": { + "type": "string" + } } - }, - "region": { - "type": "string" - }, - "type": { - "type": "string" } - } + ] }, "WorkflowActionSchema.CONDITIONAL_BRANCH": { "title": "CONDITIONAL_BRANCH", @@ -28831,25 +28957,33 @@ "type" ], "type": "object", - "properties": { - "branches": { - "type": "array", - "description": "The list of conditional branches that will be evaluated in order", - "items": { - "$ref": "#/components/schemas/Conditional" - } - }, - "fallbackBranch": { - "$ref": "#/components/schemas/Fallback" - }, - "joiningAction": { - "type": "string", - "description": "The joining action that will run after all branches" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowActionSchema" }, - "type": { - "type": "string" + { + "type": "object", + "properties": { + "branches": { + "type": "array", + "description": "The list of conditional branches that will be evaluated in order", + "items": { + "$ref": "#/components/schemas/Conditional" + } + }, + "fallbackBranch": { + "$ref": "#/components/schemas/Fallback" + }, + "joiningAction": { + "type": "string", + "description": "The joining action that will run after all branches" + }, + "type": { + "type": "string" + } + } } - } + ] }, "WorkflowActionSchema.GITHUB_CREATE_OR_UPDATE_FILE": { "title": "GITHUB_CREATE_OR_UPDATE_FILE", @@ -28862,41 +28996,49 @@ "type" ], "type": "object", - "properties": { - "alias": { - "type": "string", - "description": "The alias for the github configuration to be used" - }, - "author": { - "$ref": "#/components/schemas/GithubAuthor" - }, - "branch": { - "type": "string", - "description": "The branch in the repository where the changes will be applied (optional; defaults to the main branch if not specified)" - }, - "commitMessage": { - "type": "string", - "description": "A message describing the purpose of the commit" - }, - "committer": { - "$ref": "#/components/schemas/GithubCommitter" - }, - "content": { - "type": "string", - "description": "The content of the file to be created or updated (not base64-encoded)" - }, - "path": { - "type": "string", - "description": "The full path to the file within the repository" - }, - "repositoryName": { - "type": "string", - "description": "The name of the repository where the file is being created or updated" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowActionSchema" }, - "type": { - "type": "string" + { + "type": "object", + "properties": { + "alias": { + "type": "string", + "description": "The alias for the github configuration to be used" + }, + "author": { + "$ref": "#/components/schemas/GithubAuthor" + }, + "branch": { + "type": "string", + "description": "The branch in the repository where the changes will be applied (optional; defaults to the main branch if not specified)" + }, + "commitMessage": { + "type": "string", + "description": "A message describing the purpose of the commit" + }, + "committer": { + "$ref": "#/components/schemas/GithubCommitter" + }, + "content": { + "type": "string", + "description": "The content of the file to be created or updated (not base64-encoded)" + }, + "path": { + "type": "string", + "description": "The full path to the file within the repository" + }, + "repositoryName": { + "type": "string", + "description": "The name of the repository where the file is being created or updated" + }, + "type": { + "type": "string" + } + } } - } + ] }, "WorkflowActionSchema.HTTP_REQUEST": { "title": "HTTP_REQUEST", @@ -28907,38 +29049,46 @@ "url" ], "type": "object", - "properties": { - "headers": { - "type": "object", - "additionalProperties": { - "type": "string", - "description": "The headers for the HTTP request" - }, - "description": "The headers for the HTTP request" - }, - "httpMethod": { - "type": "string", - "description": "The HTTP method for the request", - "enum": [ - "GET", - "POST", - "PUT", - "DELETE", - "PATCH" - ] - }, - "payload": { - "type": "string", - "description": "The payload for the request" - }, - "type": { - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowActionSchema" }, - "url": { - "type": "string", - "description": "The URL for the request" + { + "type": "object", + "properties": { + "headers": { + "type": "object", + "additionalProperties": { + "type": "string", + "description": "The headers for the HTTP request" + }, + "description": "The headers for the HTTP request" + }, + "httpMethod": { + "type": "string", + "description": "The HTTP method for the request", + "enum": [ + "GET", + "POST", + "PUT", + "DELETE", + "PATCH" + ] + }, + "payload": { + "type": "string", + "description": "The payload for the request" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string", + "description": "The URL for the request" + } + } } - } + ] }, "WorkflowActionSchema.HTTP_REQUEST_ASYNC": { "title": "HTTP_REQUEST_ASYNC", @@ -28949,43 +29099,51 @@ "url" ], "type": "object", - "properties": { - "headers": { - "type": "object", - "additionalProperties": { - "type": "string", - "description": "The headers for the HTTP request" - }, - "description": "The headers for the HTTP request" - }, - "httpMethod": { - "type": "string", - "description": "The HTTP method for the request", - "enum": [ - "GET", - "POST", - "PUT", - "DELETE", - "PATCH" - ] - }, - "payload": { - "type": "string", - "description": "The payload for the request" - }, - "timeoutInSeconds": { - "type": "integer", - "description": "The timeout for the request in seconds", - "format": "int32" - }, - "type": { - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowActionSchema" }, - "url": { - "type": "string", - "description": "The URL for the request" + { + "type": "object", + "properties": { + "headers": { + "type": "object", + "additionalProperties": { + "type": "string", + "description": "The headers for the HTTP request" + }, + "description": "The headers for the HTTP request" + }, + "httpMethod": { + "type": "string", + "description": "The HTTP method for the request", + "enum": [ + "GET", + "POST", + "PUT", + "DELETE", + "PATCH" + ] + }, + "payload": { + "type": "string", + "description": "The payload for the request" + }, + "timeoutInSeconds": { + "type": "integer", + "description": "The timeout for the request in seconds", + "format": "int32" + }, + "type": { + "type": "string" + }, + "url": { + "type": "string", + "description": "The URL for the request" + } + } } - } + ] }, "WorkflowActionSchema.JAVASCRIPT": { "title": "JAVASCRIPT", @@ -28994,15 +29152,23 @@ "type" ], "type": "object", - "properties": { - "script": { - "type": "string", - "description": "The JavaScript script for the action" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowActionSchema" }, - "type": { - "type": "string" + { + "type": "object", + "properties": { + "script": { + "type": "string", + "description": "The JavaScript script for the action" + }, + "type": { + "type": "string" + } + } } - } + ] }, "WorkflowActionSchema.JIRA_CREATE_ISSUE": { "title": "JIRA_CREATE_ISSUE", @@ -29018,84 +29184,100 @@ "type" ], "type": "object", - "properties": { - "alias": { - "type": "string", - "description": "The alias for the Jira configuration that will be used." - }, - "assignee": { - "type": "string", - "description": "The identifier of the assignee for the Jira issue. This field is optional." - }, - "components": { - "type": "array", - "description": "A list of components within the Jira project to which the issue belongs. This field is optional.", - "items": { - "type": "string", - "description": "A list of components within the Jira project to which the issue belongs. This field is optional." - } - }, - "description": { - "type": "string", - "description": "A detailed description of the issue, providing more context about what needs to be addressed." + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowActionSchema" }, - "fields": { + { "type": "object", - "additionalProperties": { - "type": "object", - "description": "A map containing additional fields that are to be provided for the Jira issue, such as custom fields or extra attributes. This field is optional." - }, - "description": "A map containing additional fields that are to be provided for the Jira issue, such as custom fields or extra attributes. This field is optional." - }, - "issueSummary": { - "type": "string", - "description": "A brief summary of the issue being created, typically representing the title of the issue." - }, - "issueType": { - "type": "string", - "description": "The type of the issue being created, such as \u0027Bug\u0027, \u0027Task\u0027, or \u0027Story\u0027." - }, - "labels": { - "type": "array", - "description": "A list of labels or tags to categorize or highlight the Jira issue. This field is optional.", - "items": { - "type": "string", - "description": "A list of labels or tags to categorize or highlight the Jira issue. This field is optional." - } - }, - "priority": { - "type": "string", - "description": "The priority of the issue, such as \u0027High\u0027, \u0027Medium\u0027, or \u0027Low\u0027. This field is optional." - }, - "projectKey": { - "type": "string", - "description": "The key of the Jira project where the issue will be created. Typically a short code like \u0027PROJ\u0027." - }, - "reporter": { - "type": "string", - "description": "The identifier of the reporter who is raising the Jira issue. This field is optional." - }, - "type": { - "type": "string" - } - } - }, - "WorkflowActionSchema.JQ": { + "properties": { + "alias": { + "type": "string", + "description": "The alias for the Jira configuration that will be used." + }, + "assignee": { + "type": "string", + "description": "The identifier of the assignee for the Jira issue. This field is optional." + }, + "components": { + "type": "array", + "description": "A list of components within the Jira project to which the issue belongs. This field is optional.", + "items": { + "type": "string", + "description": "A list of components within the Jira project to which the issue belongs. This field is optional." + } + }, + "description": { + "type": "string", + "description": "A detailed description of the issue, providing more context about what needs to be addressed." + }, + "fields": { + "type": "object", + "additionalProperties": { + "type": "object", + "description": "A map containing additional fields that are to be provided for the Jira issue, such as custom fields or extra attributes. This field is optional." + }, + "description": "A map containing additional fields that are to be provided for the Jira issue, such as custom fields or extra attributes. This field is optional." + }, + "issueSummary": { + "type": "string", + "description": "A brief summary of the issue being created, typically representing the title of the issue." + }, + "issueType": { + "type": "string", + "description": "The type of the issue being created, such as \u0027Bug\u0027, \u0027Task\u0027, or \u0027Story\u0027." + }, + "labels": { + "type": "array", + "description": "A list of labels or tags to categorize or highlight the Jira issue. This field is optional.", + "items": { + "type": "string", + "description": "A list of labels or tags to categorize or highlight the Jira issue. This field is optional." + } + }, + "priority": { + "type": "string", + "description": "The priority of the issue, such as \u0027High\u0027, \u0027Medium\u0027, or \u0027Low\u0027. This field is optional." + }, + "projectKey": { + "type": "string", + "description": "The key of the Jira project where the issue will be created. Typically a short code like \u0027PROJ\u0027." + }, + "reporter": { + "type": "string", + "description": "The identifier of the reporter who is raising the Jira issue. This field is optional." + }, + "type": { + "type": "string" + } + } + } + ] + }, + "WorkflowActionSchema.JQ": { "title": "JQ", "required": [ "expression", "type" ], "type": "object", - "properties": { - "expression": { - "type": "string", - "description": "The JQ expression for the action" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowActionSchema" }, - "type": { - "type": "string" + { + "type": "object", + "properties": { + "expression": { + "type": "string", + "description": "The JQ expression for the action" + }, + "type": { + "type": "string" + } + } } - } + ] }, "WorkflowActionSchema.MANUAL_APPROVAL": { "title": "MANUAL_APPROVAL", @@ -29104,23 +29286,31 @@ "type" ], "type": "object", - "properties": { - "approverDescription": { - "type": "string", - "description": "A description that will be shown to approvers" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowActionSchema" }, - "approvingTeamIds": { - "type": "array", - "description": "The IDs of the teams whose members can approve the action", - "items": { - "type": "string", - "description": "The IDs of the teams whose members can approve the action" + { + "type": "object", + "properties": { + "approverDescription": { + "type": "string", + "description": "A description that will be shown to approvers" + }, + "approvingTeamIds": { + "type": "array", + "description": "The IDs of the teams whose members can approve the action", + "items": { + "type": "string", + "description": "The IDs of the teams whose members can approve the action" + } + }, + "type": { + "type": "string" + } } - }, - "type": { - "type": "string" } - } + ] }, "WorkflowActionSchema.MS_TEAMS_SEND_MESSAGE": { "title": "MS_TEAMS_SEND_MESSAGE", @@ -29131,23 +29321,31 @@ "type" ], "type": "object", - "properties": { - "channelId": { - "type": "string", - "description": "The channel id to send the message to" - }, - "message": { - "type": "string", - "description": "The message to send" - }, - "teamId": { - "type": "string", - "description": "The team id to send the message to" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowActionSchema" }, - "type": { - "type": "string" + { + "type": "object", + "properties": { + "channelId": { + "type": "string", + "description": "The channel id to send the message to" + }, + "message": { + "type": "string", + "description": "The message to send" + }, + "teamId": { + "type": "string", + "description": "The team id to send the message to" + }, + "type": { + "type": "string" + } + } } - } + ] }, "WorkflowActionSchema.PAGERDUTY_CREATE_INCIDENT": { "title": "PAGERDUTY_CREATE_INCIDENT", @@ -29160,39 +29358,47 @@ "urgency" ], "type": "object", - "properties": { - "body": { - "type": "string", - "description": "The body of the incident" - }, - "fromEmail": { - "type": "string", - "description": "The email address of a valid user associated with the account making the request" - }, - "incidentTypeName": { - "type": "string", - "description": "The incident type name" - }, - "serviceId": { - "type": "string", - "description": "The ID of the service to create the incident for" - }, - "title": { - "type": "string", - "description": "The title of the incident" - }, - "type": { - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowActionSchema" }, - "urgency": { - "type": "string", - "description": "The urgency of the incident", - "enum": [ - "HIGH", - "LOW" - ] + { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "The body of the incident" + }, + "fromEmail": { + "type": "string", + "description": "The email address of a valid user associated with the account making the request" + }, + "incidentTypeName": { + "type": "string", + "description": "The incident type name" + }, + "serviceId": { + "type": "string", + "description": "The ID of the service to create the incident for" + }, + "title": { + "type": "string", + "description": "The title of the incident" + }, + "type": { + "type": "string" + }, + "urgency": { + "type": "string", + "description": "The urgency of the incident", + "enum": [ + "HIGH", + "LOW" + ] + } + } } - } + ] }, "WorkflowActionSchema.SCAFFOLDER": { "title": "SCAFFOLDER", @@ -29202,30 +29408,38 @@ "type" ], "type": "object", - "properties": { - "createNewRepository": { - "type": "boolean", - "description": "Whether the scaffolder should create a new repository. Defaults to `true`" - }, - "createService": { - "type": "boolean", - "description": "Whether the cortex service should be created." + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowActionSchema" }, - "inputOverrides": { - "type": "array", - "description": "The input overrides for the scaffolder", - "items": { - "$ref": "#/components/schemas/InputOverride" + { + "type": "object", + "properties": { + "createNewRepository": { + "type": "boolean", + "description": "Whether the scaffolder should create a new repository. Defaults to `true`" + }, + "createService": { + "type": "boolean", + "description": "Whether the cortex service should be created." + }, + "inputOverrides": { + "type": "array", + "description": "The input overrides for the scaffolder", + "items": { + "$ref": "#/components/schemas/InputOverride" + } + }, + "scaffolderTemplateId": { + "type": "string", + "description": "The ID of the scaffolder template" + }, + "type": { + "type": "string" + } } - }, - "scaffolderTemplateId": { - "type": "string", - "description": "The ID of the scaffolder template" - }, - "type": { - "type": "string" } - } + ] }, "WorkflowActionSchema.SET_VARIABLES": { "title": "SET_VARIABLES", @@ -29234,18 +29448,26 @@ "variables" ], "type": "object", - "properties": { - "type": { - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowActionSchema" }, - "variables": { - "type": "array", - "description": "The variables to set for the action", - "items": { - "$ref": "#/components/schemas/VariableAssignment" + { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "variables": { + "type": "array", + "description": "The variables to set for the action", + "items": { + "$ref": "#/components/schemas/VariableAssignment" + } + } } } - } + ] }, "WorkflowActionSchema.SLACK": { "title": "SLACK", @@ -29255,19 +29477,27 @@ "type" ], "type": "object", - "properties": { - "channel": { - "type": "string", - "description": "The channel name to send the message to, without the `#`. For example for `#general` use `general`" - }, - "message": { - "type": "string", - "description": "The message to send" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowActionSchema" }, - "type": { - "type": "string" + { + "type": "object", + "properties": { + "channel": { + "type": "string", + "description": "The channel name to send the message to, without the `#`. For example for `#general` use `general`" + }, + "message": { + "type": "string", + "description": "The message to send" + }, + "type": { + "type": "string" + } + } } - } + ] }, "WorkflowActionSchema.USER_INPUT": { "title": "USER_INPUT", @@ -29277,36 +29507,44 @@ "type" ], "type": "object", - "properties": { - "inputOverrides": { - "type": "array", - "description": "The list of overrides for the action inputs", - "items": { - "$ref": "#/components/schemas/InputOverride" - } - }, - "inputs": { - "type": "array", - "description": "The list of inputs required for the action", - "items": { - "$ref": "#/components/schemas/WorkflowInput" - } - }, - "jsValidatorScript": { - "type": "string", - "description": "Optional JavaScript validator script to validate the provided inputs" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowActionSchema" }, - "type": { - "type": "string" - } - } - }, - "WorkflowDefinition": { - "required": [ - "actions", - "filter", - "isDraft", - "name", + { + "type": "object", + "properties": { + "inputOverrides": { + "type": "array", + "description": "The list of overrides for the action inputs", + "items": { + "$ref": "#/components/schemas/InputOverride" + } + }, + "inputs": { + "type": "array", + "description": "The list of inputs required for the action", + "items": { + "$ref": "#/components/schemas/WorkflowInput" + } + }, + "jsValidatorScript": { + "type": "string", + "description": "Optional JavaScript validator script to validate the provided inputs" + }, + "type": { + "type": "string" + } + } + } + ] + }, + "WorkflowDefinition": { + "required": [ + "actions", + "filter", + "isDraft", + "name", "restrictActionCompletionToRunnerUser", "tag", "variables" @@ -29406,28 +29644,28 @@ "type" ], "type": "object", - "properties": { - "entityFilter": { - "$ref": "#/components/schemas/CompoundFilter" - }, - "ownershipScope": { - "type": "string", - "description": "The ownership scope for the workflow", - "enum": [ - "ALL", - "OWNER", - "EDITOR" - ] + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowFilter" }, - "type": { - "type": "string", - "description": "The type of the workflow filter", - "enum": [ - "GLOBAL", - "ENTITY" - ] + { + "type": "object", + "properties": { + "entityFilter": { + "$ref": "#/components/schemas/CompoundFilter" + }, + "ownershipScope": { + "type": "string", + "description": "The ownership scope for the workflow", + "enum": [ + "ALL", + "OWNER", + "EDITOR" + ] + } + } } - } + ] }, "WorkflowFilter.GLOBAL": { "title": "GLOBAL", @@ -29435,16 +29673,11 @@ "type" ], "type": "object", - "properties": { - "type": { - "type": "string", - "description": "The type of the workflow filter", - "enum": [ - "GLOBAL", - "ENTITY" - ] + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowFilter" } - } + ] }, "WorkflowInput": { "required": [ @@ -29523,50 +29756,58 @@ "type" ], "type": "object", - "properties": { - "allowMultiple": { - "type": "boolean", - "description": "Whether the input allows multiple values. Defaults to `false`" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowInput" }, - "defaultValue": { - "type": "array", - "description": "The default value for the input", - "items": { - "type": "string", - "description": "The default value for the input" + { + "type": "object", + "properties": { + "allowMultiple": { + "type": "boolean", + "description": "Whether the input allows multiple values. Defaults to `false`" + }, + "defaultValue": { + "type": "array", + "description": "The default value for the input", + "items": { + "type": "string", + "description": "The default value for the input" + } + }, + "description": { + "type": "string", + "description": "The description of the input" + }, + "entityFilter": { + "$ref": "#/components/schemas/WorkflowInputEntityFilter" + }, + "key": { + "type": "string", + "description": "The key of the input" + }, + "name": { + "type": "string", + "description": "The name of the input" + }, + "placeholder": { + "type": "string", + "description": "The placeholder for the input" + }, + "required": { + "type": "boolean", + "description": "Whether the input is required" + }, + "shouldDisplayOptionsAsHierarchy": { + "type": "boolean", + "description": "Whether the options should be displayed as a hierarchy. Defaults to `false`" + }, + "type": { + "type": "string" + } } - }, - "description": { - "type": "string", - "description": "The description of the input" - }, - "entityFilter": { - "$ref": "#/components/schemas/WorkflowInputEntityFilter" - }, - "key": { - "type": "string", - "description": "The key of the input" - }, - "name": { - "type": "string", - "description": "The name of the input" - }, - "placeholder": { - "type": "string", - "description": "The placeholder for the input" - }, - "required": { - "type": "boolean", - "description": "Whether the input is required" - }, - "shouldDisplayOptionsAsHierarchy": { - "type": "boolean", - "description": "Whether the options should be displayed as a hierarchy. Defaults to `false`" - }, - "type": { - "type": "string" } - } + ] }, "WorkflowInput.CORTEX_USER_FIELD": { "title": "CORTEX_USER_FIELD", @@ -29579,45 +29820,53 @@ "type" ], "type": "object", - "properties": { - "allowMultiple": { - "type": "boolean", - "description": "Whether the input allows multiple values. Defaults to `false`" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowInput" }, - "defaultValue": { - "type": "array", - "description": "The default value for the input", - "items": { - "$ref": "#/components/schemas/CortexUserIdentity" + { + "type": "object", + "properties": { + "allowMultiple": { + "type": "boolean", + "description": "Whether the input allows multiple values. Defaults to `false`" + }, + "defaultValue": { + "type": "array", + "description": "The default value for the input", + "items": { + "$ref": "#/components/schemas/CortexUserIdentity" + } + }, + "description": { + "type": "string", + "description": "The description of the input" + }, + "filter": { + "$ref": "#/components/schemas/WorkflowInputUserFilter" + }, + "key": { + "type": "string", + "description": "The key of the input" + }, + "name": { + "type": "string", + "description": "The name of the input" + }, + "placeholder": { + "type": "string", + "description": "The placeholder for the input" + }, + "required": { + "type": "boolean", + "description": "Whether the input is required" + }, + "type": { + "type": "string" + } } - }, - "description": { - "type": "string", - "description": "The description of the input" - }, - "filter": { - "$ref": "#/components/schemas/WorkflowInputUserFilter" - }, - "key": { - "type": "string", - "description": "The key of the input" - }, - "name": { - "type": "string", - "description": "The name of the input" - }, - "placeholder": { - "type": "string", - "description": "The placeholder for the input" - }, - "required": { - "type": "boolean", - "description": "Whether the input is required" - }, - "type": { - "type": "string" } - } + ] }, "WorkflowInput.DATE_FIELD": { "title": "DATE_FIELD", @@ -29630,47 +29879,55 @@ "type" ], "type": "object", - "properties": { - "defaultValue": { - "type": "string", - "description": "The default value for the input" - }, - "description": { - "type": "string", - "description": "The description of the input" - }, - "disabled": { - "type": "boolean", - "description": "Whether the input should be disabled" - }, - "format": { - "type": "string", - "description": "The date format of the input", - "enum": [ - "DATE", - "DATETIME" - ] - }, - "key": { - "type": "string", - "description": "The key of the input" - }, - "name": { - "type": "string", - "description": "The name of the input" - }, - "placeholder": { - "type": "string", - "description": "The placeholder for the input" - }, - "required": { - "type": "boolean", - "description": "Whether the input is required" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowInput" }, - "type": { - "type": "string" + { + "type": "object", + "properties": { + "defaultValue": { + "type": "string", + "description": "The default value for the input" + }, + "description": { + "type": "string", + "description": "The description of the input" + }, + "disabled": { + "type": "boolean", + "description": "Whether the input should be disabled" + }, + "format": { + "type": "string", + "description": "The date format of the input", + "enum": [ + "DATE", + "DATETIME" + ] + }, + "key": { + "type": "string", + "description": "The key of the input" + }, + "name": { + "type": "string", + "description": "The name of the input" + }, + "placeholder": { + "type": "string", + "description": "The placeholder for the input" + }, + "required": { + "type": "boolean", + "description": "Whether the input is required" + }, + "type": { + "type": "string" + } + } } - } + ] }, "WorkflowInput.INPUT_FIELD": { "title": "INPUT_FIELD", @@ -29681,104 +29938,120 @@ "type" ], "type": "object", - "properties": { - "defaultValue": { - "type": "string", - "description": "The default value for the input" - }, - "description": { - "type": "string", - "description": "The description of the input" - }, - "key": { - "type": "string", - "description": "The key of the input" - }, - "name": { - "type": "string", - "description": "The name of the input" - }, - "placeholder": { - "type": "string", - "description": "The placeholder for the input" - }, - "required": { - "type": "boolean", - "description": "Whether the input is required" - }, - "type": { - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowInput" }, - "validationRegex": { - "type": "string", - "description": "The validation regex for the input" - } - } - }, - "WorkflowInput.MULTISELECT_FIELD": { - "title": "MULTISELECT_FIELD", - "required": [ - "allowAdditionalOptions", - "key", - "name", - "options", - "required", + { + "type": "object", + "properties": { + "defaultValue": { + "type": "string", + "description": "The default value for the input" + }, + "description": { + "type": "string", + "description": "The description of the input" + }, + "key": { + "type": "string", + "description": "The key of the input" + }, + "name": { + "type": "string", + "description": "The name of the input" + }, + "placeholder": { + "type": "string", + "description": "The placeholder for the input" + }, + "required": { + "type": "boolean", + "description": "Whether the input is required" + }, + "type": { + "type": "string" + }, + "validationRegex": { + "type": "string", + "description": "The validation regex for the input" + } + } + } + ] + }, + "WorkflowInput.MULTISELECT_FIELD": { + "title": "MULTISELECT_FIELD", + "required": [ + "allowAdditionalOptions", + "key", + "name", + "options", + "required", "type" ], "type": "object", - "properties": { - "allowAdditionalOptions": { - "type": "boolean", - "description": "Whether additional options are allowed. Defaults to `false`" - }, - "defaultValue": { - "type": "array", - "description": "The default value for the input", - "items": { - "type": "string", - "description": "The default value for the input" - } - }, - "description": { - "type": "string", - "description": "The description of the input" - }, - "key": { - "type": "string", - "description": "The key of the input" - }, - "name": { - "type": "string", - "description": "The name of the input" - }, - "options": { - "type": "array", - "description": "The list of options for the input", - "items": { - "type": "string", - "description": "The list of options for the input" - } + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowInput" }, - "optionsLabels": { - "type": "array", - "description": "The list of labels for the options. If not provided, the options will be used as labels", - "items": { - "type": "string", - "description": "The list of labels for the options. If not provided, the options will be used as labels" + { + "type": "object", + "properties": { + "allowAdditionalOptions": { + "type": "boolean", + "description": "Whether additional options are allowed. Defaults to `false`" + }, + "defaultValue": { + "type": "array", + "description": "The default value for the input", + "items": { + "type": "string", + "description": "The default value for the input" + } + }, + "description": { + "type": "string", + "description": "The description of the input" + }, + "key": { + "type": "string", + "description": "The key of the input" + }, + "name": { + "type": "string", + "description": "The name of the input" + }, + "options": { + "type": "array", + "description": "The list of options for the input", + "items": { + "type": "string", + "description": "The list of options for the input" + } + }, + "optionsLabels": { + "type": "array", + "description": "The list of labels for the options. If not provided, the options will be used as labels", + "items": { + "type": "string", + "description": "The list of labels for the options. If not provided, the options will be used as labels" + } + }, + "placeholder": { + "type": "string", + "description": "The placeholder value for the input" + }, + "required": { + "type": "boolean", + "description": "Whether the input is required" + }, + "type": { + "type": "string" + } } - }, - "placeholder": { - "type": "string", - "description": "The placeholder value for the input" - }, - "required": { - "type": "boolean", - "description": "Whether the input is required" - }, - "type": { - "type": "string" } - } + ] }, "WorkflowInput.NUMBER_FIELD": { "title": "NUMBER_FIELD", @@ -29791,55 +30064,63 @@ "type" ], "type": "object", - "properties": { - "defaultValue": { - "type": "number", - "description": "The default value for the input" - }, - "description": { - "type": "string", - "description": "The description of the input" - }, - "disabled": { - "type": "boolean", - "description": "Whether the input should be disabled" - }, - "format": { - "type": "string", - "description": "The number format of the input", - "enum": [ - "INTEGER", - "DECIMAL" - ] - }, - "key": { - "type": "string", - "description": "The key of the input" - }, - "max": { - "type": "number", - "description": "The maximum value of the input" - }, - "min": { - "type": "number", - "description": "The minimum value of the input" - }, - "name": { - "type": "string", - "description": "The name of the input" - }, - "placeholder": { - "type": "string", - "description": "The placeholder for the input" - }, - "required": { - "type": "boolean", - "description": "Whether the input is required" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowInput" }, - "type": { - "type": "string" + { + "type": "object", + "properties": { + "defaultValue": { + "type": "number", + "description": "The default value for the input" + }, + "description": { + "type": "string", + "description": "The description of the input" + }, + "disabled": { + "type": "boolean", + "description": "Whether the input should be disabled" + }, + "format": { + "type": "string", + "description": "The number format of the input", + "enum": [ + "INTEGER", + "DECIMAL" + ] + }, + "key": { + "type": "string", + "description": "The key of the input" + }, + "max": { + "type": "number", + "description": "The maximum value of the input" + }, + "min": { + "type": "number", + "description": "The minimum value of the input" + }, + "name": { + "type": "string", + "description": "The name of the input" + }, + "placeholder": { + "type": "string", + "description": "The placeholder for the input" + }, + "required": { + "type": "boolean", + "description": "Whether the input is required" + }, + "type": { + "type": "string" + } + } } - } + ] }, "WorkflowInput.SECRET_FIELD": { "title": "SECRET_FIELD", @@ -29851,39 +30132,47 @@ "type" ], "type": "object", - "properties": { - "description": { - "type": "string", - "description": "The description of the input" - }, - "disabled": { - "type": "boolean", - "description": "Whether the input should be disabled" - }, - "key": { - "type": "string", - "description": "The key of the input" - }, - "name": { - "type": "string", - "description": "The name of the input" - }, - "placeholder": { - "type": "string", - "description": "The placeholder for the input" - }, - "required": { - "type": "boolean", - "description": "Whether the input is required" - }, - "type": { - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowInput" }, - "validationRegex": { - "type": "string", - "description": "The validation regex for the input" + { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "The description of the input" + }, + "disabled": { + "type": "boolean", + "description": "Whether the input should be disabled" + }, + "key": { + "type": "string", + "description": "The key of the input" + }, + "name": { + "type": "string", + "description": "The name of the input" + }, + "placeholder": { + "type": "string", + "description": "The placeholder for the input" + }, + "required": { + "type": "boolean", + "description": "Whether the input is required" + }, + "type": { + "type": "string" + }, + "validationRegex": { + "type": "string", + "description": "The validation regex for the input" + } + } } - } + ] }, "WorkflowInput.SELECT_FIELD": { "title": "SELECT_FIELD", @@ -29896,55 +30185,63 @@ "type" ], "type": "object", - "properties": { - "allowAdditionalOptions": { - "type": "boolean", - "description": "Whether additional options are allowed. Defaults to `false`" - }, - "defaultValue": { - "type": "string", - "description": "The default value for the input" - }, - "description": { - "type": "string", - "description": "The description of the input" - }, - "key": { - "type": "string", - "description": "The key of the input" - }, - "name": { - "type": "string", - "description": "The name of the input" - }, - "options": { - "type": "array", - "description": "The list of options for the input", - "items": { - "type": "string", - "description": "The list of options for the input" - } + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowInput" }, - "optionsLabels": { - "type": "array", - "description": "The list of labels for the options. If not provided, the options will be used as labels", - "items": { - "type": "string", - "description": "The list of labels for the options. If not provided, the options will be used as labels" + { + "type": "object", + "properties": { + "allowAdditionalOptions": { + "type": "boolean", + "description": "Whether additional options are allowed. Defaults to `false`" + }, + "defaultValue": { + "type": "string", + "description": "The default value for the input" + }, + "description": { + "type": "string", + "description": "The description of the input" + }, + "key": { + "type": "string", + "description": "The key of the input" + }, + "name": { + "type": "string", + "description": "The name of the input" + }, + "options": { + "type": "array", + "description": "The list of options for the input", + "items": { + "type": "string", + "description": "The list of options for the input" + } + }, + "optionsLabels": { + "type": "array", + "description": "The list of labels for the options. If not provided, the options will be used as labels", + "items": { + "type": "string", + "description": "The list of labels for the options. If not provided, the options will be used as labels" + } + }, + "placeholder": { + "type": "string", + "description": "The placeholder value for the input" + }, + "required": { + "type": "boolean", + "description": "Whether the input is required" + }, + "type": { + "type": "string" + } } - }, - "placeholder": { - "type": "string", - "description": "The placeholder value for the input" - }, - "required": { - "type": "boolean", - "description": "Whether the input is required" - }, - "type": { - "type": "string" } - } + ] }, "WorkflowInput.SLACK_FIELD": { "title": "SLACK_FIELD", @@ -29957,46 +30254,54 @@ "type" ], "type": "object", - "properties": { - "allowMultiple": { - "type": "boolean", - "description": "Whether the input allows multiple values. Defaults to `false`" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowInput" }, - "defaultValue": { - "type": "array", - "description": "The default value for the input", - "items": { - "type": "string", - "description": "The default value for the input" + { + "type": "object", + "properties": { + "allowMultiple": { + "type": "boolean", + "description": "Whether the input allows multiple values. Defaults to `false`" + }, + "defaultValue": { + "type": "array", + "description": "The default value for the input", + "items": { + "type": "string", + "description": "The default value for the input" + } + }, + "description": { + "type": "string", + "description": "The description of the input" + }, + "filter": { + "$ref": "#/components/schemas/WorkflowInputSlackFilter" + }, + "key": { + "type": "string", + "description": "The key of the input" + }, + "name": { + "type": "string", + "description": "The name of the input" + }, + "placeholder": { + "type": "string", + "description": "The placeholder for the input" + }, + "required": { + "type": "boolean", + "description": "Whether the input is required" + }, + "type": { + "type": "string" + } } - }, - "description": { - "type": "string", - "description": "The description of the input" - }, - "filter": { - "$ref": "#/components/schemas/WorkflowInputSlackFilter" - }, - "key": { - "type": "string", - "description": "The key of the input" - }, - "name": { - "type": "string", - "description": "The name of the input" - }, - "placeholder": { - "type": "string", - "description": "The placeholder for the input" - }, - "required": { - "type": "boolean", - "description": "Whether the input is required" - }, - "type": { - "type": "string" } - } + ] }, "WorkflowInput.TEXTAREA_FIELD": { "title": "TEXTAREA_FIELD", @@ -30007,39 +30312,47 @@ "type" ], "type": "object", - "properties": { - "defaultValue": { - "type": "string", - "description": "The default value for the input" - }, - "description": { - "type": "string", - "description": "The description of the input" - }, - "key": { - "type": "string", - "description": "The key of the input" - }, - "name": { - "type": "string", - "description": "The name of the input" - }, - "placeholder": { - "type": "string", - "description": "The placeholder for the input" - }, - "required": { - "type": "boolean", - "description": "Whether the input is required" - }, - "type": { - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowInput" }, - "validationRegex": { - "type": "string", - "description": "The validation regex for the input" + { + "type": "object", + "properties": { + "defaultValue": { + "type": "string", + "description": "The default value for the input" + }, + "description": { + "type": "string", + "description": "The description of the input" + }, + "key": { + "type": "string", + "description": "The key of the input" + }, + "name": { + "type": "string", + "description": "The name of the input" + }, + "placeholder": { + "type": "string", + "description": "The placeholder for the input" + }, + "required": { + "type": "boolean", + "description": "Whether the input is required" + }, + "type": { + "type": "string" + }, + "validationRegex": { + "type": "string", + "description": "The validation regex for the input" + } + } } - } + ] }, "WorkflowInput.TOGGLE_FIELD": { "title": "TOGGLE_FIELD", @@ -30050,31 +30363,39 @@ "type" ], "type": "object", - "properties": { - "defaultValue": { - "type": "boolean", - "description": "The default value for the input" - }, - "description": { - "type": "string", - "description": "The description of the input" - }, - "key": { - "type": "string", - "description": "The key of the input" - }, - "name": { - "type": "string", - "description": "The name of the input" - }, - "required": { - "type": "boolean", - "description": "Whether the input is required" + "allOf": [ + { + "$ref": "#/components/schemas/WorkflowInput" }, - "type": { - "type": "string" + { + "type": "object", + "properties": { + "defaultValue": { + "type": "boolean", + "description": "The default value for the input" + }, + "description": { + "type": "string", + "description": "The description of the input" + }, + "key": { + "type": "string", + "description": "The key of the input" + }, + "name": { + "type": "string", + "description": "The name of the input" + }, + "required": { + "type": "boolean", + "description": "Whether the input is required" + }, + "type": { + "type": "string" + } + } } - } + ] }, "WorkflowInputEntityFilter": { "type": "object", From 4107be2f7c0c30d5d9ef223ce9968239596b72de Mon Sep 17 00:00:00 2001 From: Aditya Bansal Date: Wed, 29 Oct 2025 12:48:54 -0700 Subject: [PATCH 2/2] My Entities local MCP --- swagger.json | 821 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 806 insertions(+), 15 deletions(-) diff --git a/swagger.json b/swagger.json index b7e6924..8dcea15 100644 --- a/swagger.json +++ b/swagger.json @@ -80,6 +80,9 @@ { "name": "Initiatives" }, + { + "name": "My Workspace" + }, { "name": "Notification Logs" }, @@ -12296,6 +12299,64 @@ "x-cortex-mcp-enabled": "false" } }, + "/api/v1/mcp/my/workspace": { + "post": { + "description": "Retrieve various types of resources owned by or assigned to the current user", + "operationId": "getMyWorkspace", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MyWorkspaceRequestWrapper" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MyWorkspaceResponse" + } + } + }, + "description": "Successfully retrieved resources" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MyWorkspaceResponse" + } + } + }, + "description": "Invalid resource type or parameters" + }, + "401": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MyWorkspaceResponse" + } + } + }, + "description": "Authentication required" + }, + "429": { + "$ref": "#/components/responses/TooManyRequests" + } + }, + "summary": "Get resources for the authenticated user", + "tags": [ + "My Workspace" + ], + "x-cortex-mcp-description": "TOOL for retrieving current user\u0027s owned resources and work items across the Cortex workspace.\n\n FLEXIBLE REQUEST STRUCTURE:\n The request accepts an object with optional fields for each resource type:\n - myEntitiesRequest: Fetch entities (services, resources, domains) owned by the user\n - myTeamsRequest: Fetch teams the user belongs to\n - myScorecardsRequest: Fetch scorecards associated with user\u0027s entities\n - myOpenPRsRequest: Fetch user\u0027s open pull requests across all Git repositories\n - myRequestedReviewsRequest: Fetch PRs where user is requested as a reviewer\n - myWorkItemsRequest: Fetch work items (Jira, Linear, Azure DevOps) assigned to the user\n\n Set one or more fields to fetch multiple resource types in a single call.\n All results are combined into a single response array with mixed item types.\n\n RESPONSE STRUCTURE:\n Returns a single array of items where each item has an \u0027itemType\u0027 field indicating its type:\n - \u0027entity\u0027: Catalog entities (services, resources, domains)\n - \u0027team\u0027: Teams the user belongs to\n - \u0027scorecard\u0027: Scorecards for user\u0027s entities\n - \u0027pull_request\u0027: Open pull requests authored by the user\n - \u0027review_request\u0027: Pull requests where user is requested as reviewer\n - \u0027work_item\u0027: Work items (issues/tickets) assigned to the user\n\n EXAMPLES:\n 1. Fetch only services:\n {\"myEntitiesRequest\": {\"entityTypes\": [\"service\"]}}\n\n 2. Fetch teams and their entities:\n {\"myTeamsRequest\": {\"includeMembers\": true}, \"myEntitiesRequest\": {}}\n\n 3. Get all work (PRs, reviews, Jira tickets):\n {\"myOpenPRsRequest\": {}, \"myRequestedReviewsRequest\": {}, \"myWorkItemsRequest\": {}}\n\n 4. Search entities with filters:\n {\"myEntitiesRequest\": {\"query\": \"payment\", \"ownershipSource\": \"DIRECT\", \"entityTypes\": [\"service\", \"resource\"]}}\n ", + "x-cortex-mcp-enabled": "true", + "x-internal": true + } + }, "/api/v1/newrelic/configuration": { "post": { "operationId": "NewRelicSaveConfiguration", @@ -12930,9 +12991,7 @@ "enum": [ "USER_UNSUBSCRIBED", "WORKSPACE_DISABLED", - "TEAM_MEMBER_DISABLED", "CHANNEL_DISABLED", - "SCORECARD_DISABLED", "DUPLICATE", "CORTEX_EMPLOYEE", "NON_CORTEX_USERS_DISABLED", @@ -12955,7 +13014,6 @@ "MEMBER_EMAILS_NOT_FOUND", "MISSING_CONTENT", "CLIENT_ERROR", - "UNEXPECTED_ERROR", "BACKSTAGE_BASE_URL_MISSING", "NO_SEATS_LEFT" ] @@ -13162,7 +13220,6 @@ "enum": [ "PACKET_GENERATOR_ERROR", "CONTEXT_RESOLUTION_ERROR", - "MISSING_RECIPIENTS", "INTERNAL_ERROR" ] } @@ -13171,11 +13228,7 @@ { "description": "A search query to filter the results.", "in": "query", - "name": "searchQuery", - "required": false, - "schema": { - "type": "string" - } + "name": "searchQuery" }, { "description": "Whether to include the objects associated with the notification run.", @@ -13209,6 +13262,15 @@ "format": "date-time" } }, + { + "in": "query", + "name": "deliveredOnly", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, { "description": "Number of results to return per page, between 1 and 1000. Default 250.", "in": "query", @@ -22053,6 +22115,101 @@ }, "description": "Emphasized rules for the Initiative. Either emphasized levels or rules must be provided" }, + "Entities": { + "required": [ + "includeArchived", + "ownershipSource", + "page", + "pageSize" + ], + "type": "object", + "properties": { + "entityTypes": { + "type": "array", + "description": "Filter by entity types", + "example": [ + "service", + "resource", + "domain" + ], + "items": { + "type": "string", + "description": "Filter by entity types", + "example": "[\"service\",\"resource\",\"domain\"]" + } + }, + "includeArchived": { + "type": "boolean", + "description": "Include archived entities" + }, + "ownershipSource": { + "type": "string", + "description": "Source of ownership (DIRECT, INHERITED, ALL)", + "enum": [ + "DIRECT", + "TEAM_HIERARCHY" + ] + }, + "page": { + "type": "integer", + "description": "Page number to return, 0-indexed. Default 0.", + "format": "int32", + "example": 0 + }, + "pageSize": { + "type": "integer", + "description": "Number of results to return per page, between 1 and 1000. Default 250.", + "format": "int32", + "example": 250 + }, + "query": { + "type": "string", + "description": "Optional search query to filter entities by name or other properties" + } + }, + "description": "Request for all entities (services, resources, domains) owned by the user" + }, + "Entity": { + "required": [ + "archived", + "cid", + "name", + "tag", + "type" + ], + "type": "object", + "description": "Catalog entity (service, resource, or domain) owned by the user", + "allOf": [ + { + "$ref": "#/components/schemas/MyWorkspaceItem" + }, + { + "type": "object", + "properties": { + "archived": { + "type": "boolean", + "description": "Whether the entity is archived" + }, + "cid": { + "type": "string", + "description": "Entity CID" + }, + "name": { + "type": "string", + "description": "Entity name" + }, + "tag": { + "type": "string", + "description": "Entity tag" + }, + "type": { + "type": "string", + "description": "Entity type (service, resource, domain)" + } + } + } + ] + }, "EntityCIDListResponse": { "required": [ "ids", @@ -23449,8 +23606,7 @@ "properties": { "provider": { "type": "string", - "description": "Name of the Git provider", - "example": "GITHUB", + "description": "Git provider (GitHub, GitLab, etc.)", "enum": [ "AZURE_DEVOPS", "BITBUCKET", @@ -25245,6 +25401,89 @@ } } }, + "MyWorkspaceItem": { + "required": [ + "itemType" + ], + "type": "object", + "properties": { + "itemType": { + "type": "string" + } + }, + "description": "Item returned in My Workspace response - type varies by resourceType", + "discriminator": { + "mapping": { + "entity": "#/components/schemas/Entity", + "pull_request": "#/components/schemas/PullRequest", + "review_request": "#/components/schemas/ReviewRequest", + "scorecard": "#/components/schemas/Scorecard", + "team": "#/components/schemas/Team", + "work_item": "#/components/schemas/WorkItem" + }, + "propertyName": "itemType" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/Entity" + }, + { + "$ref": "#/components/schemas/Team" + }, + { + "$ref": "#/components/schemas/Scorecard" + }, + { + "$ref": "#/components/schemas/PullRequest" + }, + { + "$ref": "#/components/schemas/ReviewRequest" + }, + { + "$ref": "#/components/schemas/WorkItem" + } + ] + }, + "MyWorkspaceRequestWrapper": { + "type": "object", + "properties": { + "myEntitiesRequest": { + "$ref": "#/components/schemas/Entities" + }, + "myOpenPRsRequest": { + "$ref": "#/components/schemas/OpenPRs" + }, + "myRequestedReviewsRequest": { + "$ref": "#/components/schemas/RequestedReviews" + }, + "myScorecardsRequest": { + "$ref": "#/components/schemas/Scorecards" + }, + "myTeamsRequest": { + "$ref": "#/components/schemas/Teams" + }, + "myWorkItemsRequest": { + "$ref": "#/components/schemas/WorkItems" + } + }, + "description": "\n Request wrapper for fetching user\u0027s workspace. Supports fetching multiple resource types in a single call.\n Set one or more of the request fields to fetch the corresponding resources. Results will be combined into a single response.\n\n Examples:\n - Fetch entities only: {\"myEntitiesRequest\": {\"ownershipSource\": \"DIRECT\", \"entityTypes\": [\"service\"]}}\n - Fetch teams only: {\"myTeamsRequest\": {\"includeMembers\": true}}\n - Fetch both entities and teams: {\"myEntitiesRequest\": {...}, \"myTeamsRequest\": {...}}\n " + }, + "MyWorkspaceResponse": { + "required": [ + "items" + ], + "type": "object", + "properties": { + "items": { + "type": "array", + "description": "Mixed array of resources. Each item\u0027s type is indicated by its \u0027itemType\u0027 field.", + "items": { + "$ref": "#/components/schemas/MyWorkspaceItem" + } + } + }, + "description": "Unified response containing workspace resources of various types (entities, teams, scorecards, etc.)" + }, "NEWRELIC": { "required": [ "id" @@ -25433,7 +25672,6 @@ "MEMBER_EMAILS_NOT_FOUND", "MISSING_CONTENT", "CLIENT_ERROR", - "UNEXPECTED_ERROR", "BACKSTAGE_BASE_URL_MISSING", "NO_SEATS_LEFT" ] @@ -25449,9 +25687,7 @@ "enum": [ "USER_UNSUBSCRIBED", "WORKSPACE_DISABLED", - "TEAM_MEMBER_DISABLED", "CHANNEL_DISABLED", - "SCORECARD_DISABLED", "DUPLICATE", "CORTEX_EMPLOYEE", "NON_CORTEX_USERS_DISABLED", @@ -25655,7 +25891,6 @@ "enum": [ "PACKET_GENERATOR_ERROR", "CONTEXT_RESOLUTION_ERROR", - "MISSING_RECIPIENTS", "INTERNAL_ERROR" ] }, @@ -25936,6 +26171,19 @@ } } }, + "OpenPRs": { + "required": [ + "placeholder" + ], + "type": "object", + "properties": { + "placeholder": { + "type": "boolean", + "description": "No additional parameters required - returns all open PRs for the user" + } + }, + "description": "Request for user\u0027s open pull requests across all Git repositories" + }, "Option": { "required": [ "inputKey", @@ -26531,6 +26779,151 @@ } } }, + "PullRequest": { + "required": [ + "dateOpened", + "entityCids", + "entityIds", + "isComplex", + "isDraft", + "isOld", + "isQuick", + "lastUpdated", + "numComments", + "numReviewers", + "pullRequest", + "repository", + "source", + "status" + ], + "type": "object", + "description": "Pull request authored by the user", + "allOf": [ + { + "$ref": "#/components/schemas/MyWorkspaceItem" + }, + { + "type": "object", + "properties": { + "dateOpened": { + "type": "string", + "description": "Date the PR was opened" + }, + "entityCids": { + "type": "array", + "description": "CIDs of entities associated with this PR", + "items": { + "type": "string", + "description": "CIDs of entities associated with this PR" + } + }, + "entityIds": { + "type": "array", + "description": "IDs of entities associated with this PR", + "items": { + "type": "integer", + "description": "IDs of entities associated with this PR", + "format": "int64" + } + }, + "isComplex": { + "type": "boolean", + "description": "Whether the PR is considered complex" + }, + "isDraft": { + "type": "boolean", + "description": "Whether the PR is a draft" + }, + "isOld": { + "type": "boolean", + "description": "Whether the PR is considered old" + }, + "isQuick": { + "type": "boolean", + "description": "Whether the PR is considered quick" + }, + "lastUpdated": { + "type": "string", + "description": "Last update timestamp" + }, + "numComments": { + "type": "integer", + "description": "Number of comments", + "format": "int32" + }, + "numFilesChanged": { + "type": "integer", + "description": "Number of files changed", + "format": "int32" + }, + "numLinesAdded": { + "type": "integer", + "description": "Number of lines added", + "format": "int32" + }, + "numLinesDeleted": { + "type": "integer", + "description": "Number of lines deleted", + "format": "int32" + }, + "numReviewers": { + "type": "integer", + "description": "Number of reviewers", + "format": "int32" + }, + "pullRequest": { + "$ref": "#/components/schemas/PullRequestInfo" + }, + "repository": { + "$ref": "#/components/schemas/RepositoryInfo" + }, + "source": { + "type": "string", + "description": "Git provider (GitHub, GitLab, etc.)", + "enum": [ + "AZURE_DEVOPS", + "BITBUCKET", + "GITHUB", + "GITLAB" + ] + }, + "status": { + "type": "string", + "description": "Review status", + "enum": [ + "APPROVED", + "CHANGES_REQUESTED", + "REVIEW_REQUIRED" + ] + } + } + } + ] + }, + "PullRequestInfo": { + "required": [ + "number", + "title", + "url" + ], + "type": "object", + "properties": { + "number": { + "type": "integer", + "description": "PR number", + "format": "int64" + }, + "title": { + "type": "string", + "description": "PR title" + }, + "url": { + "type": "string", + "description": "PR URL" + } + }, + "description": "Pull request details" + }, "QueryBuilderResult": { "required": [ "queryDetails", @@ -26767,6 +27160,37 @@ } } }, + "RepositoryInfo": { + "required": [ + "name", + "url" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Repository name" + }, + "url": { + "type": "string", + "description": "Repository URL" + } + }, + "description": "Repository details" + }, + "RequestedReviews": { + "required": [ + "placeholder" + ], + "type": "object", + "properties": { + "placeholder": { + "type": "boolean", + "description": "No additional parameters required - returns all review requests for the user" + } + }, + "description": "Request for pull requests where the user is requested as a reviewer" + }, "RestrictionPolicyRelationship": { "required": [ "id", @@ -26790,6 +27214,127 @@ }, "description": "List of restriction policies for the workflow" }, + "ReviewRequest": { + "required": [ + "dateOpened", + "entityCids", + "entityIds", + "isComplex", + "isDraft", + "isOld", + "isQuick", + "lastUpdated", + "numComments", + "numReviewers", + "pullRequest", + "repository", + "source", + "status" + ], + "type": "object", + "description": "Pull request where the user is requested as a reviewer", + "allOf": [ + { + "$ref": "#/components/schemas/MyWorkspaceItem" + }, + { + "type": "object", + "properties": { + "dateOpened": { + "type": "string", + "description": "Date the PR was opened" + }, + "entityCids": { + "type": "array", + "description": "CIDs of entities associated with this PR", + "items": { + "type": "string", + "description": "CIDs of entities associated with this PR" + } + }, + "entityIds": { + "type": "array", + "description": "IDs of entities associated with this PR", + "items": { + "type": "integer", + "description": "IDs of entities associated with this PR", + "format": "int64" + } + }, + "isComplex": { + "type": "boolean", + "description": "Whether the PR is considered complex" + }, + "isDraft": { + "type": "boolean", + "description": "Whether the PR is a draft" + }, + "isOld": { + "type": "boolean", + "description": "Whether the PR is considered old" + }, + "isQuick": { + "type": "boolean", + "description": "Whether the PR is considered quick" + }, + "lastUpdated": { + "type": "string", + "description": "Last update timestamp" + }, + "numComments": { + "type": "integer", + "description": "Number of comments", + "format": "int32" + }, + "numFilesChanged": { + "type": "integer", + "description": "Number of files changed", + "format": "int32" + }, + "numLinesAdded": { + "type": "integer", + "description": "Number of lines added", + "format": "int32" + }, + "numLinesDeleted": { + "type": "integer", + "description": "Number of lines deleted", + "format": "int32" + }, + "numReviewers": { + "type": "integer", + "description": "Number of reviewers", + "format": "int32" + }, + "pullRequest": { + "$ref": "#/components/schemas/PullRequestInfo" + }, + "repository": { + "$ref": "#/components/schemas/RepositoryInfo" + }, + "source": { + "type": "string", + "description": "Git provider (GitHub, GitLab, etc.)", + "enum": [ + "AZURE_DEVOPS", + "BITBUCKET", + "GITHUB", + "GITLAB" + ] + }, + "status": { + "type": "string", + "description": "Review status", + "enum": [ + "APPROVED", + "CHANGES_REQUESTED", + "REVIEW_REQUIRED" + ] + } + } + } + ] + }, "Role": { "required": [ "name" @@ -27159,6 +27704,41 @@ } } }, + "Scorecard": { + "required": [ + "draft", + "name", + "tag" + ], + "type": "object", + "description": "Scorecard associated with user\u0027s entities", + "allOf": [ + { + "$ref": "#/components/schemas/MyWorkspaceItem" + }, + { + "type": "object", + "properties": { + "description": { + "type": "string", + "description": "Scorecard description" + }, + "draft": { + "type": "boolean", + "description": "Whether the scorecard is a draft" + }, + "name": { + "type": "string", + "description": "Scorecard name" + }, + "tag": { + "type": "string", + "description": "Scorecard tag" + } + } + } + ] + }, "ScorecardDescriptorResponse": { "required": [ "scorecard" @@ -27347,6 +27927,23 @@ } } }, + "Scorecards": { + "required": [ + "ownershipSource" + ], + "type": "object", + "properties": { + "ownershipSource": { + "type": "string", + "description": "Source of ownership (DIRECT, INHERITED, ALL)", + "enum": [ + "DIRECT", + "TEAM_HIERARCHY" + ] + } + }, + "description": "Request for scorecards associated with the user\u0027s entities" + }, "SecretResponse": { "required": [ "id", @@ -27719,6 +28316,48 @@ } ] }, + "Team": { + "required": [ + "cid", + "name", + "tag" + ], + "type": "object", + "description": "Team that the user belongs to", + "allOf": [ + { + "$ref": "#/components/schemas/MyWorkspaceItem" + }, + { + "type": "object", + "properties": { + "cid": { + "type": "string", + "description": "Team CID" + }, + "description": { + "type": "string", + "description": "Team description" + }, + "members": { + "type": "array", + "description": "Team members (only populated if includeMembers is true)", + "items": { + "$ref": "#/components/schemas/TeamMember" + } + }, + "name": { + "type": "string", + "description": "Team name" + }, + "tag": { + "type": "string", + "description": "Team tag" + } + } + } + ] + }, "TeamDetails": { "required": [ "id", @@ -28015,6 +28654,33 @@ } ] }, + "Teams": { + "required": [ + "includeMembers", + "page", + "pageSize" + ], + "type": "object", + "properties": { + "includeMembers": { + "type": "boolean", + "description": "Include team member details (name, email, description)" + }, + "page": { + "type": "integer", + "description": "Page number to return, 0-indexed. Default 0.", + "format": "int32", + "example": 0 + }, + "pageSize": { + "type": "integer", + "description": "Number of results to return per page, between 1 and 1000. Default 250.", + "format": "int32", + "example": 250 + } + }, + "description": "Request for teams the user belongs to" + }, "TeamsLink": { "required": [ "name", @@ -28775,6 +29441,131 @@ } } }, + "WorkItem": { + "required": [ + "id", + "source", + "status", + "title", + "url" + ], + "type": "object", + "description": "Work item (Jira, Linear, Azure DevOps issue) assigned to the user", + "allOf": [ + { + "$ref": "#/components/schemas/MyWorkspaceItem" + }, + { + "type": "object", + "properties": { + "alias": { + "type": "string", + "description": "Work item alias/key" + }, + "dueDate": { + "type": "string", + "description": "Due date", + "format": "date-time" + }, + "id": { + "type": "string", + "description": "Work item ID" + }, + "project": { + "$ref": "#/components/schemas/WorkItemProject" + }, + "source": { + "type": "string", + "description": "Issue tracking system (Jira, Linear, Azure)", + "enum": [ + "AZURE_DEVOPS_WORK_ITEMS", + "CLICKUP", + "GITHUB", + "JIRA" + ] + }, + "status": { + "$ref": "#/components/schemas/WorkItemStatus" + }, + "title": { + "type": "string", + "description": "Work item title" + }, + "url": { + "type": "string", + "description": "URL to the work item" + } + } + } + ] + }, + "WorkItemProject": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Project name" + }, + "url": { + "type": "string", + "description": "Project URL" + } + }, + "description": "Work item project details" + }, + "WorkItemStatus": { + "required": [ + "statusBackgroundColor", + "statusIconColor", + "statusText", + "statusType" + ], + "type": "object", + "properties": { + "statusBackgroundColor": { + "type": "string", + "description": "Status background color" + }, + "statusIconColor": { + "type": "string", + "description": "Status icon color" + }, + "statusText": { + "type": "string", + "description": "Status text" + }, + "statusType": { + "type": "string", + "description": "Status type" + } + }, + "description": "Work item status information" + }, + "WorkItems": { + "required": [ + "page", + "pageSize" + ], + "type": "object", + "properties": { + "page": { + "type": "integer", + "description": "Page number for pagination (0-indexed)", + "format": "int32", + "example": 0 + }, + "pageSize": { + "type": "integer", + "description": "Maximum number of work items to return", + "format": "int32", + "example": 50 + } + }, + "description": "Request for work items (Jira, Linear, Azure DevOps issues) assigned to the user" + }, "WorkflowAction": { "required": [ "isRootAction",