diff --git a/descriptions-next/api.github.com/api.github.com.2022-11-28.json b/descriptions-next/api.github.com/api.github.com.2022-11-28.json index 16c7d8e43b..33de030c27 100644 --- a/descriptions-next/api.github.com/api.github.com.2022-11-28.json +++ b/descriptions-next/api.github.com/api.github.com.2022-11-28.json @@ -19849,6 +19849,365 @@ } } }, + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs": { + "post": { + "summary": "Create a cluster deployment records job", + "description": "Create a background job to set deployment records for a given cluster.\nPerforms validation and permission checks synchronously, returning rejected\ndeployments immediately, then enqueues a background job for the actual\ndeployment updates. Use the companion GET endpoint to poll for job status.", + "tags": [ + "orgs" + ], + "operationId": "orgs/create-cluster-deployment-records-job", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/artifact-metadata#create-a-cluster-deployment-records-job" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "name": "cluster", + "in": "path", + "description": "The cluster name.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "^[a-zA-Z0-9._-]+$" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "logical_environment": { + "type": "string", + "description": "The stage of the deployment.", + "minLength": 1, + "maxLength": 128 + }, + "physical_environment": { + "type": "string", + "description": "The physical region of the deployment.", + "maxLength": 128 + }, + "deployments": { + "type": "array", + "description": "The list of deployments to record.", + "maxItems": 5000, + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the artifact.", + "minLength": 1, + "maxLength": 256 + }, + "digest": { + "type": "string", + "description": "The hex encoded digest of the artifact.", + "minLength": 71, + "maxLength": 71, + "pattern": "^sha256:[a-f0-9]{64}$" + }, + "version": { + "type": "string", + "description": "The artifact version.", + "maxLength": 100, + "x-multi-segment": true, + "examples": [ + "1.2.3" + ] + }, + "status": { + "type": "string", + "description": "The deployment status of the artifact.", + "default": "deployed", + "enum": [ + "deployed", + "decommissioned" + ] + }, + "deployment_name": { + "type": "string", + "description": "The unique identifier for the deployment represented by the new record.\n", + "minLength": 1, + "maxLength": 256 + }, + "github_repository": { + "type": "string", + "description": "The name of the GitHub repository associated with the artifact.", + "maxLength": 100, + "pattern": "^[A-Za-z0-9.\\-_]+$", + "examples": [ + "my-github-repo" + ] + }, + "tags": { + "type": "object", + "description": "Key-value pairs to tag the deployment record.", + "additionalProperties": { + "type": "string" + } + }, + "runtime_risks": { + "type": "array", + "description": "A list of runtime risks associated with the deployment.", + "maxItems": 4, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "critical-resource", + "internet-exposed", + "lateral-movement", + "sensitive-data" + ] + } + } + }, + "required": [ + "name", + "deployment_name", + "digest" + ] + } + } + }, + "required": [ + "logical_environment", + "deployments" + ] + }, + "examples": { + "default": { + "value": { + "logical_environment": "prod", + "physical_environment": "pacific-east", + "deployments": [ + { + "name": "awesome-image", + "digest": "sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72", + "version": "2.1.0", + "status": "deployed", + "deployment_name": "deployment-pod", + "tags": { + "owning-team": "platform" + }, + "runtime_risks": [ + "sensitive-data" + ] + } + ] + } + } + } + } + } + }, + "responses": { + "202": { + "description": "Job created successfully. Authorized deployments will be processed in the background.\n", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "job_id": { + "description": "The ID of the created job.", + "type": "integer" + }, + "errors": { + "description": "Deployments that were rejected during authorization.", + "type": "array", + "items": { + "type": "object" + } + } + }, + "required": [ + "job_id" + ] + }, + "examples": { + "default": { + "value": { + "job_id": 123 + } + } + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "409": { + "description": "A job is already in progress for this cluster.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "artifact-metadata" + } + } + }, + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs/{job_id}": { + "get": { + "summary": "Get cluster deployment records job status", + "description": "Get the status and results of a previously created cluster deployment records job.", + "tags": [ + "orgs" + ], + "operationId": "orgs/get-cluster-deployment-records-job", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/artifact-metadata#get-cluster-deployment-records-job-status" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "name": "cluster", + "in": "path", + "description": "The cluster name.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "^[a-zA-Z0-9._-]+$" + } + }, + { + "name": "job_id", + "in": "path", + "description": "The ID of the job.", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Job status retrieved successfully.\n", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "job_id": { + "description": "The ID of the job.", + "type": "integer" + }, + "status": { + "description": "The current status of the job.", + "type": "string", + "enum": [ + "pending", + "processing", + "completed", + "failed" + ] + }, + "started_at": { + "description": "When the job started processing (only present when processing, completed, or failed).", + "type": "string", + "format": "date-time" + }, + "total_count": { + "description": "The number of records successfully mutated (only present when completed).", + "type": "integer" + }, + "errors": { + "description": "Processing errors (only present when completed or failed).", + "type": "array", + "items": { + "type": "object" + } + } + }, + "required": [ + "job_id", + "status" + ] + }, + "examples": { + "default": { + "value": { + "job_id": 123, + "status": "completed", + "started_at": "2026-06-10T12:00:00Z", + "total_count": 5 + } + } + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "artifact-metadata" + } + } + }, "/orgs/{org}/artifacts/metadata/storage-record": { "post": { "summary": "Create artifact metadata storage record", @@ -28431,7 +28790,7 @@ "/orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}": { "get": { "summary": "Get route stats by actor", - "description": "Get API request count statistics for an actor broken down by route within a specified time frame.", + "description": "Get API request count statistics for an actor broken down by route within a specified time frame.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28499,7 +28858,7 @@ "/orgs/{org}/insights/api/subject-stats": { "get": { "summary": "Get subject stats", - "description": "Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps.", + "description": "Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28561,7 +28920,7 @@ "/orgs/{org}/insights/api/summary-stats": { "get": { "summary": "Get summary stats", - "description": "Get overall statistics of API requests made within an organization by all users and apps within a specified time frame.", + "description": "Get overall statistics of API requests made within an organization by all users and apps within a specified time frame.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28608,7 +28967,7 @@ "/orgs/{org}/insights/api/summary-stats/users/{user_id}": { "get": { "summary": "Get summary stats by user", - "description": "Get overall statistics of API requests within the organization for a user.", + "description": "Get overall statistics of API requests within the organization for a user.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28658,7 +29017,7 @@ "/orgs/{org}/insights/api/summary-stats/{actor_type}/{actor_id}": { "get": { "summary": "Get summary stats by actor", - "description": "Get overall statistics of API requests within the organization made by a specific actor. Actors can be GitHub App installations, OAuth apps or other tokens on behalf of a user.", + "description": "Get overall statistics of API requests within the organization made by a specific actor. Actors can be GitHub App installations, OAuth apps or other tokens on behalf of a user.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28711,7 +29070,7 @@ "/orgs/{org}/insights/api/time-stats": { "get": { "summary": "Get time stats", - "description": "Get the number of API requests and rate-limited requests made within an organization over a specified time period.", + "description": "Get the number of API requests and rate-limited requests made within an organization over a specified time period.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28761,7 +29120,7 @@ "/orgs/{org}/insights/api/time-stats/users/{user_id}": { "get": { "summary": "Get time stats by user", - "description": "Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period.", + "description": "Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28814,7 +29173,7 @@ "/orgs/{org}/insights/api/time-stats/{actor_type}/{actor_id}": { "get": { "summary": "Get time stats by actor", - "description": "Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period.", + "description": "Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28870,7 +29229,7 @@ "/orgs/{org}/insights/api/user-stats/{user_id}": { "get": { "summary": "Get user stats", - "description": "Get API usage statistics within an organization for a user broken down by the type of access.", + "description": "Get API usage statistics within an organization for a user broken down by the type of access.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -66580,6 +66939,7 @@ "approved", "dismissed", "replaced", + "invalidated", "all" ], "default": "pending" @@ -152100,7 +152460,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { diff --git a/descriptions-next/api.github.com/api.github.com.2022-11-28.yaml b/descriptions-next/api.github.com/api.github.com.2022-11-28.yaml index d0ab2677a2..b3209ba8da 100644 --- a/descriptions-next/api.github.com/api.github.com.2022-11-28.yaml +++ b/descriptions-next/api.github.com/api.github.com.2022-11-28.yaml @@ -14751,6 +14751,273 @@ paths: enabledForGitHubApps: true category: orgs subcategory: artifact-metadata + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs": + post: + summary: Create a cluster deployment records job + description: |- + Create a background job to set deployment records for a given cluster. + Performs validation and permission checks synchronously, returning rejected + deployments immediately, then enqueues a background job for the actual + deployment updates. Use the companion GET endpoint to poll for job status. + tags: + - orgs + operationId: orgs/create-cluster-deployment-records-job + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/artifact-metadata#create-a-cluster-deployment-records-job + parameters: + - "$ref": "#/components/parameters/org" + - name: cluster + in: path + description: The cluster name. + required: true + schema: + type: string + minLength: 1 + maxLength: 128 + pattern: "^[a-zA-Z0-9._-]+$" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + logical_environment: + type: string + description: The stage of the deployment. + minLength: 1 + maxLength: 128 + physical_environment: + type: string + description: The physical region of the deployment. + maxLength: 128 + deployments: + type: array + description: The list of deployments to record. + maxItems: 5000 + items: + type: object + properties: + name: + type: string + description: The name of the artifact. + minLength: 1 + maxLength: 256 + digest: + type: string + description: The hex encoded digest of the artifact. + minLength: 71 + maxLength: 71 + pattern: "^sha256:[a-f0-9]{64}$" + version: + type: string + description: The artifact version. + maxLength: 100 + x-multi-segment: true + examples: + - 1.2.3 + status: + type: string + description: The deployment status of the artifact. + default: deployed + enum: + - deployed + - decommissioned + deployment_name: + type: string + description: 'The unique identifier for the deployment represented + by the new record. + + ' + minLength: 1 + maxLength: 256 + github_repository: + type: string + description: The name of the GitHub repository associated + with the artifact. + maxLength: 100 + pattern: "^[A-Za-z0-9.\\-_]+$" + examples: + - my-github-repo + tags: + type: object + description: Key-value pairs to tag the deployment record. + additionalProperties: + type: string + runtime_risks: + type: array + description: A list of runtime risks associated with the deployment. + maxItems: 4 + uniqueItems: true + items: + type: string + enum: + - critical-resource + - internet-exposed + - lateral-movement + - sensitive-data + required: + - name + - deployment_name + - digest + required: + - logical_environment + - deployments + examples: + default: + value: + logical_environment: prod + physical_environment: pacific-east + deployments: + - name: awesome-image + digest: sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 + version: 2.1.0 + status: deployed + deployment_name: deployment-pod + tags: + owning-team: platform + runtime_risks: + - sensitive-data + responses: + '202': + description: 'Job created successfully. Authorized deployments will be processed + in the background. + + ' + content: + application/json: + schema: + type: object + properties: + job_id: + description: The ID of the created job. + type: integer + errors: + description: Deployments that were rejected during authorization. + type: array + items: + type: object + required: + - job_id + examples: + default: + value: + job_id: 123 + '400': + description: Bad Request + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '403': + description: Forbidden + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '404': + description: Resource not found + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '409': + description: A job is already in progress for this cluster. + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: artifact-metadata + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs/{job_id}": + get: + summary: Get cluster deployment records job status + description: Get the status and results of a previously created cluster deployment + records job. + tags: + - orgs + operationId: orgs/get-cluster-deployment-records-job + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/artifact-metadata#get-cluster-deployment-records-job-status + parameters: + - "$ref": "#/components/parameters/org" + - name: cluster + in: path + description: The cluster name. + required: true + schema: + type: string + minLength: 1 + maxLength: 128 + pattern: "^[a-zA-Z0-9._-]+$" + - name: job_id + in: path + description: The ID of the job. + required: true + schema: + type: integer + responses: + '200': + description: 'Job status retrieved successfully. + + ' + content: + application/json: + schema: + type: object + properties: + job_id: + description: The ID of the job. + type: integer + status: + description: The current status of the job. + type: string + enum: + - pending + - processing + - completed + - failed + started_at: + description: When the job started processing (only present when + processing, completed, or failed). + type: string + format: date-time + total_count: + description: The number of records successfully mutated (only + present when completed). + type: integer + errors: + description: Processing errors (only present when completed or + failed). + type: array + items: + type: object + required: + - job_id + - status + examples: + default: + value: + job_id: 123 + status: completed + started_at: '2026-06-10T12:00:00Z' + total_count: 5 + '404': + description: Resource not found + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: artifact-metadata "/orgs/{org}/artifacts/metadata/storage-record": post: summary: Create artifact metadata storage record @@ -21213,8 +21480,10 @@ paths: "/orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}": get: summary: Get route stats by actor - description: Get API request count statistics for an actor broken down by route - within a specified time frame. + description: |- + Get API request count statistics for an actor broken down by route within a specified time frame. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-route-stats-by-actor @@ -21249,8 +21518,10 @@ paths: "/orgs/{org}/insights/api/subject-stats": get: summary: Get subject stats - description: Get API request statistics for all subjects within an organization - within a specified time frame. Subjects can be users or GitHub Apps. + description: |- + Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-subject-stats @@ -21283,8 +21554,10 @@ paths: "/orgs/{org}/insights/api/summary-stats": get: summary: Get summary stats - description: Get overall statistics of API requests made within an organization - by all users and apps within a specified time frame. + description: |- + Get overall statistics of API requests made within an organization by all users and apps within a specified time frame. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats @@ -21312,8 +21585,10 @@ paths: "/orgs/{org}/insights/api/summary-stats/users/{user_id}": get: summary: Get summary stats by user - description: Get overall statistics of API requests within the organization - for a user. + description: |- + Get overall statistics of API requests within the organization for a user. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats-by-user @@ -21342,9 +21617,10 @@ paths: "/orgs/{org}/insights/api/summary-stats/{actor_type}/{actor_id}": get: summary: Get summary stats by actor - description: Get overall statistics of API requests within the organization - made by a specific actor. Actors can be GitHub App installations, OAuth apps - or other tokens on behalf of a user. + description: |- + Get overall statistics of API requests within the organization made by a specific actor. Actors can be GitHub App installations, OAuth apps or other tokens on behalf of a user. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats-by-actor @@ -21374,8 +21650,10 @@ paths: "/orgs/{org}/insights/api/time-stats": get: summary: Get time stats - description: Get the number of API requests and rate-limited requests made within - an organization over a specified time period. + description: |- + Get the number of API requests and rate-limited requests made within an organization over a specified time period. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-time-stats @@ -21404,8 +21682,10 @@ paths: "/orgs/{org}/insights/api/time-stats/users/{user_id}": get: summary: Get time stats by user - description: Get the number of API requests and rate-limited requests made within - an organization by a specific user over a specified time period. + description: |- + Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-time-stats-by-user @@ -21435,8 +21715,10 @@ paths: "/orgs/{org}/insights/api/time-stats/{actor_type}/{actor_id}": get: summary: Get time stats by actor - description: Get the number of API requests and rate-limited requests made within - an organization by a specific actor within a specified time period. + description: |- + Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-time-stats-by-actor @@ -21467,8 +21749,10 @@ paths: "/orgs/{org}/insights/api/user-stats/{user_id}": get: summary: Get user stats - description: Get API usage statistics within an organization for a user broken - down by the type of access. + description: |- + Get API usage statistics within an organization for a user broken down by the type of access. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-user-stats @@ -48956,6 +49240,7 @@ paths: - approved - dismissed - replaced + - invalidated - all default: pending - name: action @@ -110756,6 +111041,7 @@ components: - approved - dismissed - replaced + - invalidated target_id: type: - integer diff --git a/descriptions-next/api.github.com/api.github.com.2026-03-10.json b/descriptions-next/api.github.com/api.github.com.2026-03-10.json index 74bc6ea83e..da0d95106a 100644 --- a/descriptions-next/api.github.com/api.github.com.2026-03-10.json +++ b/descriptions-next/api.github.com/api.github.com.2026-03-10.json @@ -19848,6 +19848,365 @@ } } }, + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs": { + "post": { + "summary": "Create a cluster deployment records job", + "description": "Create a background job to set deployment records for a given cluster.\nPerforms validation and permission checks synchronously, returning rejected\ndeployments immediately, then enqueues a background job for the actual\ndeployment updates. Use the companion GET endpoint to poll for job status.", + "tags": [ + "orgs" + ], + "operationId": "orgs/create-cluster-deployment-records-job", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/artifact-metadata#create-a-cluster-deployment-records-job" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "name": "cluster", + "in": "path", + "description": "The cluster name.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "^[a-zA-Z0-9._-]+$" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "logical_environment": { + "type": "string", + "description": "The stage of the deployment.", + "minLength": 1, + "maxLength": 128 + }, + "physical_environment": { + "type": "string", + "description": "The physical region of the deployment.", + "maxLength": 128 + }, + "deployments": { + "type": "array", + "description": "The list of deployments to record.", + "maxItems": 5000, + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the artifact.", + "minLength": 1, + "maxLength": 256 + }, + "digest": { + "type": "string", + "description": "The hex encoded digest of the artifact.", + "minLength": 71, + "maxLength": 71, + "pattern": "^sha256:[a-f0-9]{64}$" + }, + "version": { + "type": "string", + "description": "The artifact version.", + "maxLength": 100, + "x-multi-segment": true, + "examples": [ + "1.2.3" + ] + }, + "status": { + "type": "string", + "description": "The deployment status of the artifact.", + "default": "deployed", + "enum": [ + "deployed", + "decommissioned" + ] + }, + "deployment_name": { + "type": "string", + "description": "The unique identifier for the deployment represented by the new record.\n", + "minLength": 1, + "maxLength": 256 + }, + "github_repository": { + "type": "string", + "description": "The name of the GitHub repository associated with the artifact.", + "maxLength": 100, + "pattern": "^[A-Za-z0-9.\\-_]+$", + "examples": [ + "my-github-repo" + ] + }, + "tags": { + "type": "object", + "description": "Key-value pairs to tag the deployment record.", + "additionalProperties": { + "type": "string" + } + }, + "runtime_risks": { + "type": "array", + "description": "A list of runtime risks associated with the deployment.", + "maxItems": 4, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "critical-resource", + "internet-exposed", + "lateral-movement", + "sensitive-data" + ] + } + } + }, + "required": [ + "name", + "deployment_name", + "digest" + ] + } + } + }, + "required": [ + "logical_environment", + "deployments" + ] + }, + "examples": { + "default": { + "value": { + "logical_environment": "prod", + "physical_environment": "pacific-east", + "deployments": [ + { + "name": "awesome-image", + "digest": "sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72", + "version": "2.1.0", + "status": "deployed", + "deployment_name": "deployment-pod", + "tags": { + "owning-team": "platform" + }, + "runtime_risks": [ + "sensitive-data" + ] + } + ] + } + } + } + } + } + }, + "responses": { + "202": { + "description": "Job created successfully. Authorized deployments will be processed in the background.\n", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "job_id": { + "description": "The ID of the created job.", + "type": "integer" + }, + "errors": { + "description": "Deployments that were rejected during authorization.", + "type": "array", + "items": { + "type": "object" + } + } + }, + "required": [ + "job_id" + ] + }, + "examples": { + "default": { + "value": { + "job_id": 123 + } + } + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "409": { + "description": "A job is already in progress for this cluster.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "artifact-metadata" + } + } + }, + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs/{job_id}": { + "get": { + "summary": "Get cluster deployment records job status", + "description": "Get the status and results of a previously created cluster deployment records job.", + "tags": [ + "orgs" + ], + "operationId": "orgs/get-cluster-deployment-records-job", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/artifact-metadata#get-cluster-deployment-records-job-status" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "name": "cluster", + "in": "path", + "description": "The cluster name.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "^[a-zA-Z0-9._-]+$" + } + }, + { + "name": "job_id", + "in": "path", + "description": "The ID of the job.", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Job status retrieved successfully.\n", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "job_id": { + "description": "The ID of the job.", + "type": "integer" + }, + "status": { + "description": "The current status of the job.", + "type": "string", + "enum": [ + "pending", + "processing", + "completed", + "failed" + ] + }, + "started_at": { + "description": "When the job started processing (only present when processing, completed, or failed).", + "type": "string", + "format": "date-time" + }, + "total_count": { + "description": "The number of records successfully mutated (only present when completed).", + "type": "integer" + }, + "errors": { + "description": "Processing errors (only present when completed or failed).", + "type": "array", + "items": { + "type": "object" + } + } + }, + "required": [ + "job_id", + "status" + ] + }, + "examples": { + "default": { + "value": { + "job_id": 123, + "status": "completed", + "started_at": "2026-06-10T12:00:00Z", + "total_count": 5 + } + } + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "artifact-metadata" + } + } + }, "/orgs/{org}/artifacts/metadata/storage-record": { "post": { "summary": "Create artifact metadata storage record", @@ -28382,7 +28741,7 @@ "/orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}": { "get": { "summary": "Get route stats by actor", - "description": "Get API request count statistics for an actor broken down by route within a specified time frame.", + "description": "Get API request count statistics for an actor broken down by route within a specified time frame.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28450,7 +28809,7 @@ "/orgs/{org}/insights/api/subject-stats": { "get": { "summary": "Get subject stats", - "description": "Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps.", + "description": "Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28512,7 +28871,7 @@ "/orgs/{org}/insights/api/summary-stats": { "get": { "summary": "Get summary stats", - "description": "Get overall statistics of API requests made within an organization by all users and apps within a specified time frame.", + "description": "Get overall statistics of API requests made within an organization by all users and apps within a specified time frame.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28559,7 +28918,7 @@ "/orgs/{org}/insights/api/summary-stats/users/{user_id}": { "get": { "summary": "Get summary stats by user", - "description": "Get overall statistics of API requests within the organization for a user.", + "description": "Get overall statistics of API requests within the organization for a user.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28609,7 +28968,7 @@ "/orgs/{org}/insights/api/summary-stats/{actor_type}/{actor_id}": { "get": { "summary": "Get summary stats by actor", - "description": "Get overall statistics of API requests within the organization made by a specific actor. Actors can be GitHub App installations, OAuth apps or other tokens on behalf of a user.", + "description": "Get overall statistics of API requests within the organization made by a specific actor. Actors can be GitHub App installations, OAuth apps or other tokens on behalf of a user.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28662,7 +29021,7 @@ "/orgs/{org}/insights/api/time-stats": { "get": { "summary": "Get time stats", - "description": "Get the number of API requests and rate-limited requests made within an organization over a specified time period.", + "description": "Get the number of API requests and rate-limited requests made within an organization over a specified time period.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28712,7 +29071,7 @@ "/orgs/{org}/insights/api/time-stats/users/{user_id}": { "get": { "summary": "Get time stats by user", - "description": "Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period.", + "description": "Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28765,7 +29124,7 @@ "/orgs/{org}/insights/api/time-stats/{actor_type}/{actor_id}": { "get": { "summary": "Get time stats by actor", - "description": "Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period.", + "description": "Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28821,7 +29180,7 @@ "/orgs/{org}/insights/api/user-stats/{user_id}": { "get": { "summary": "Get user stats", - "description": "Get API usage statistics within an organization for a user broken down by the type of access.", + "description": "Get API usage statistics within an organization for a user broken down by the type of access.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -66491,6 +66850,7 @@ "approved", "dismissed", "replaced", + "invalidated", "all" ], "default": "pending" @@ -151458,7 +151818,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { diff --git a/descriptions-next/api.github.com/api.github.com.2026-03-10.yaml b/descriptions-next/api.github.com/api.github.com.2026-03-10.yaml index 49d44b1192..8f59533fb1 100644 --- a/descriptions-next/api.github.com/api.github.com.2026-03-10.yaml +++ b/descriptions-next/api.github.com/api.github.com.2026-03-10.yaml @@ -14749,6 +14749,273 @@ paths: enabledForGitHubApps: true category: orgs subcategory: artifact-metadata + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs": + post: + summary: Create a cluster deployment records job + description: |- + Create a background job to set deployment records for a given cluster. + Performs validation and permission checks synchronously, returning rejected + deployments immediately, then enqueues a background job for the actual + deployment updates. Use the companion GET endpoint to poll for job status. + tags: + - orgs + operationId: orgs/create-cluster-deployment-records-job + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/artifact-metadata#create-a-cluster-deployment-records-job + parameters: + - "$ref": "#/components/parameters/org" + - name: cluster + in: path + description: The cluster name. + required: true + schema: + type: string + minLength: 1 + maxLength: 128 + pattern: "^[a-zA-Z0-9._-]+$" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + logical_environment: + type: string + description: The stage of the deployment. + minLength: 1 + maxLength: 128 + physical_environment: + type: string + description: The physical region of the deployment. + maxLength: 128 + deployments: + type: array + description: The list of deployments to record. + maxItems: 5000 + items: + type: object + properties: + name: + type: string + description: The name of the artifact. + minLength: 1 + maxLength: 256 + digest: + type: string + description: The hex encoded digest of the artifact. + minLength: 71 + maxLength: 71 + pattern: "^sha256:[a-f0-9]{64}$" + version: + type: string + description: The artifact version. + maxLength: 100 + x-multi-segment: true + examples: + - 1.2.3 + status: + type: string + description: The deployment status of the artifact. + default: deployed + enum: + - deployed + - decommissioned + deployment_name: + type: string + description: 'The unique identifier for the deployment represented + by the new record. + + ' + minLength: 1 + maxLength: 256 + github_repository: + type: string + description: The name of the GitHub repository associated + with the artifact. + maxLength: 100 + pattern: "^[A-Za-z0-9.\\-_]+$" + examples: + - my-github-repo + tags: + type: object + description: Key-value pairs to tag the deployment record. + additionalProperties: + type: string + runtime_risks: + type: array + description: A list of runtime risks associated with the deployment. + maxItems: 4 + uniqueItems: true + items: + type: string + enum: + - critical-resource + - internet-exposed + - lateral-movement + - sensitive-data + required: + - name + - deployment_name + - digest + required: + - logical_environment + - deployments + examples: + default: + value: + logical_environment: prod + physical_environment: pacific-east + deployments: + - name: awesome-image + digest: sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 + version: 2.1.0 + status: deployed + deployment_name: deployment-pod + tags: + owning-team: platform + runtime_risks: + - sensitive-data + responses: + '202': + description: 'Job created successfully. Authorized deployments will be processed + in the background. + + ' + content: + application/json: + schema: + type: object + properties: + job_id: + description: The ID of the created job. + type: integer + errors: + description: Deployments that were rejected during authorization. + type: array + items: + type: object + required: + - job_id + examples: + default: + value: + job_id: 123 + '400': + description: Bad Request + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '403': + description: Forbidden + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '404': + description: Resource not found + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '409': + description: A job is already in progress for this cluster. + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: artifact-metadata + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs/{job_id}": + get: + summary: Get cluster deployment records job status + description: Get the status and results of a previously created cluster deployment + records job. + tags: + - orgs + operationId: orgs/get-cluster-deployment-records-job + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/artifact-metadata#get-cluster-deployment-records-job-status + parameters: + - "$ref": "#/components/parameters/org" + - name: cluster + in: path + description: The cluster name. + required: true + schema: + type: string + minLength: 1 + maxLength: 128 + pattern: "^[a-zA-Z0-9._-]+$" + - name: job_id + in: path + description: The ID of the job. + required: true + schema: + type: integer + responses: + '200': + description: 'Job status retrieved successfully. + + ' + content: + application/json: + schema: + type: object + properties: + job_id: + description: The ID of the job. + type: integer + status: + description: The current status of the job. + type: string + enum: + - pending + - processing + - completed + - failed + started_at: + description: When the job started processing (only present when + processing, completed, or failed). + type: string + format: date-time + total_count: + description: The number of records successfully mutated (only + present when completed). + type: integer + errors: + description: Processing errors (only present when completed or + failed). + type: array + items: + type: object + required: + - job_id + - status + examples: + default: + value: + job_id: 123 + status: completed + started_at: '2026-06-10T12:00:00Z' + total_count: 5 + '404': + description: Resource not found + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: artifact-metadata "/orgs/{org}/artifacts/metadata/storage-record": post: summary: Create artifact metadata storage record @@ -21177,8 +21444,10 @@ paths: "/orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}": get: summary: Get route stats by actor - description: Get API request count statistics for an actor broken down by route - within a specified time frame. + description: |- + Get API request count statistics for an actor broken down by route within a specified time frame. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-route-stats-by-actor @@ -21213,8 +21482,10 @@ paths: "/orgs/{org}/insights/api/subject-stats": get: summary: Get subject stats - description: Get API request statistics for all subjects within an organization - within a specified time frame. Subjects can be users or GitHub Apps. + description: |- + Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-subject-stats @@ -21247,8 +21518,10 @@ paths: "/orgs/{org}/insights/api/summary-stats": get: summary: Get summary stats - description: Get overall statistics of API requests made within an organization - by all users and apps within a specified time frame. + description: |- + Get overall statistics of API requests made within an organization by all users and apps within a specified time frame. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats @@ -21276,8 +21549,10 @@ paths: "/orgs/{org}/insights/api/summary-stats/users/{user_id}": get: summary: Get summary stats by user - description: Get overall statistics of API requests within the organization - for a user. + description: |- + Get overall statistics of API requests within the organization for a user. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats-by-user @@ -21306,9 +21581,10 @@ paths: "/orgs/{org}/insights/api/summary-stats/{actor_type}/{actor_id}": get: summary: Get summary stats by actor - description: Get overall statistics of API requests within the organization - made by a specific actor. Actors can be GitHub App installations, OAuth apps - or other tokens on behalf of a user. + description: |- + Get overall statistics of API requests within the organization made by a specific actor. Actors can be GitHub App installations, OAuth apps or other tokens on behalf of a user. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats-by-actor @@ -21338,8 +21614,10 @@ paths: "/orgs/{org}/insights/api/time-stats": get: summary: Get time stats - description: Get the number of API requests and rate-limited requests made within - an organization over a specified time period. + description: |- + Get the number of API requests and rate-limited requests made within an organization over a specified time period. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-time-stats @@ -21368,8 +21646,10 @@ paths: "/orgs/{org}/insights/api/time-stats/users/{user_id}": get: summary: Get time stats by user - description: Get the number of API requests and rate-limited requests made within - an organization by a specific user over a specified time period. + description: |- + Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-time-stats-by-user @@ -21399,8 +21679,10 @@ paths: "/orgs/{org}/insights/api/time-stats/{actor_type}/{actor_id}": get: summary: Get time stats by actor - description: Get the number of API requests and rate-limited requests made within - an organization by a specific actor within a specified time period. + description: |- + Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-time-stats-by-actor @@ -21431,8 +21713,10 @@ paths: "/orgs/{org}/insights/api/user-stats/{user_id}": get: summary: Get user stats - description: Get API usage statistics within an organization for a user broken - down by the type of access. + description: |- + Get API usage statistics within an organization for a user broken down by the type of access. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-user-stats @@ -48881,6 +49165,7 @@ paths: - approved - dismissed - replaced + - invalidated - all default: pending - name: action @@ -110283,6 +110568,7 @@ components: - approved - dismissed - replaced + - invalidated target_id: type: - integer diff --git a/descriptions-next/api.github.com/api.github.com.json b/descriptions-next/api.github.com/api.github.com.json index 1d6ce6970f..594fddf7e0 100644 --- a/descriptions-next/api.github.com/api.github.com.json +++ b/descriptions-next/api.github.com/api.github.com.json @@ -19895,6 +19895,365 @@ } } }, + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs": { + "post": { + "summary": "Create a cluster deployment records job", + "description": "Create a background job to set deployment records for a given cluster.\nPerforms validation and permission checks synchronously, returning rejected\ndeployments immediately, then enqueues a background job for the actual\ndeployment updates. Use the companion GET endpoint to poll for job status.", + "tags": [ + "orgs" + ], + "operationId": "orgs/create-cluster-deployment-records-job", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/artifact-metadata#create-a-cluster-deployment-records-job" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "name": "cluster", + "in": "path", + "description": "The cluster name.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "^[a-zA-Z0-9._-]+$" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "logical_environment": { + "type": "string", + "description": "The stage of the deployment.", + "minLength": 1, + "maxLength": 128 + }, + "physical_environment": { + "type": "string", + "description": "The physical region of the deployment.", + "maxLength": 128 + }, + "deployments": { + "type": "array", + "description": "The list of deployments to record.", + "maxItems": 5000, + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the artifact.", + "minLength": 1, + "maxLength": 256 + }, + "digest": { + "type": "string", + "description": "The hex encoded digest of the artifact.", + "minLength": 71, + "maxLength": 71, + "pattern": "^sha256:[a-f0-9]{64}$" + }, + "version": { + "type": "string", + "description": "The artifact version.", + "maxLength": 100, + "x-multi-segment": true, + "examples": [ + "1.2.3" + ] + }, + "status": { + "type": "string", + "description": "The deployment status of the artifact.", + "default": "deployed", + "enum": [ + "deployed", + "decommissioned" + ] + }, + "deployment_name": { + "type": "string", + "description": "The unique identifier for the deployment represented by the new record.\n", + "minLength": 1, + "maxLength": 256 + }, + "github_repository": { + "type": "string", + "description": "The name of the GitHub repository associated with the artifact.", + "maxLength": 100, + "pattern": "^[A-Za-z0-9.\\-_]+$", + "examples": [ + "my-github-repo" + ] + }, + "tags": { + "type": "object", + "description": "Key-value pairs to tag the deployment record.", + "additionalProperties": { + "type": "string" + } + }, + "runtime_risks": { + "type": "array", + "description": "A list of runtime risks associated with the deployment.", + "maxItems": 4, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "critical-resource", + "internet-exposed", + "lateral-movement", + "sensitive-data" + ] + } + } + }, + "required": [ + "name", + "deployment_name", + "digest" + ] + } + } + }, + "required": [ + "logical_environment", + "deployments" + ] + }, + "examples": { + "default": { + "value": { + "logical_environment": "prod", + "physical_environment": "pacific-east", + "deployments": [ + { + "name": "awesome-image", + "digest": "sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72", + "version": "2.1.0", + "status": "deployed", + "deployment_name": "deployment-pod", + "tags": { + "owning-team": "platform" + }, + "runtime_risks": [ + "sensitive-data" + ] + } + ] + } + } + } + } + } + }, + "responses": { + "202": { + "description": "Job created successfully. Authorized deployments will be processed in the background.\n", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "job_id": { + "description": "The ID of the created job.", + "type": "integer" + }, + "errors": { + "description": "Deployments that were rejected during authorization.", + "type": "array", + "items": { + "type": "object" + } + } + }, + "required": [ + "job_id" + ] + }, + "examples": { + "default": { + "value": { + "job_id": 123 + } + } + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "409": { + "description": "A job is already in progress for this cluster.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "artifact-metadata" + } + } + }, + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs/{job_id}": { + "get": { + "summary": "Get cluster deployment records job status", + "description": "Get the status and results of a previously created cluster deployment records job.", + "tags": [ + "orgs" + ], + "operationId": "orgs/get-cluster-deployment-records-job", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/artifact-metadata#get-cluster-deployment-records-job-status" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "name": "cluster", + "in": "path", + "description": "The cluster name.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "^[a-zA-Z0-9._-]+$" + } + }, + { + "name": "job_id", + "in": "path", + "description": "The ID of the job.", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Job status retrieved successfully.\n", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "job_id": { + "description": "The ID of the job.", + "type": "integer" + }, + "status": { + "description": "The current status of the job.", + "type": "string", + "enum": [ + "pending", + "processing", + "completed", + "failed" + ] + }, + "started_at": { + "description": "When the job started processing (only present when processing, completed, or failed).", + "type": "string", + "format": "date-time" + }, + "total_count": { + "description": "The number of records successfully mutated (only present when completed).", + "type": "integer" + }, + "errors": { + "description": "Processing errors (only present when completed or failed).", + "type": "array", + "items": { + "type": "object" + } + } + }, + "required": [ + "job_id", + "status" + ] + }, + "examples": { + "default": { + "value": { + "job_id": 123, + "status": "completed", + "started_at": "2026-06-10T12:00:00Z", + "total_count": 5 + } + } + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "artifact-metadata" + } + } + }, "/orgs/{org}/artifacts/metadata/storage-record": { "post": { "summary": "Create artifact metadata storage record", @@ -28548,7 +28907,7 @@ "/orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}": { "get": { "summary": "Get route stats by actor", - "description": "Get API request count statistics for an actor broken down by route within a specified time frame.", + "description": "Get API request count statistics for an actor broken down by route within a specified time frame.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28616,7 +28975,7 @@ "/orgs/{org}/insights/api/subject-stats": { "get": { "summary": "Get subject stats", - "description": "Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps.", + "description": "Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28678,7 +29037,7 @@ "/orgs/{org}/insights/api/summary-stats": { "get": { "summary": "Get summary stats", - "description": "Get overall statistics of API requests made within an organization by all users and apps within a specified time frame.", + "description": "Get overall statistics of API requests made within an organization by all users and apps within a specified time frame.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28725,7 +29084,7 @@ "/orgs/{org}/insights/api/summary-stats/users/{user_id}": { "get": { "summary": "Get summary stats by user", - "description": "Get overall statistics of API requests within the organization for a user.", + "description": "Get overall statistics of API requests within the organization for a user.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28775,7 +29134,7 @@ "/orgs/{org}/insights/api/summary-stats/{actor_type}/{actor_id}": { "get": { "summary": "Get summary stats by actor", - "description": "Get overall statistics of API requests within the organization made by a specific actor. Actors can be GitHub App installations, OAuth apps or other tokens on behalf of a user.", + "description": "Get overall statistics of API requests within the organization made by a specific actor. Actors can be GitHub App installations, OAuth apps or other tokens on behalf of a user.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28828,7 +29187,7 @@ "/orgs/{org}/insights/api/time-stats": { "get": { "summary": "Get time stats", - "description": "Get the number of API requests and rate-limited requests made within an organization over a specified time period.", + "description": "Get the number of API requests and rate-limited requests made within an organization over a specified time period.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28878,7 +29237,7 @@ "/orgs/{org}/insights/api/time-stats/users/{user_id}": { "get": { "summary": "Get time stats by user", - "description": "Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period.", + "description": "Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28931,7 +29290,7 @@ "/orgs/{org}/insights/api/time-stats/{actor_type}/{actor_id}": { "get": { "summary": "Get time stats by actor", - "description": "Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period.", + "description": "Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -28987,7 +29346,7 @@ "/orgs/{org}/insights/api/user-stats/{user_id}": { "get": { "summary": "Get user stats", - "description": "Get API usage statistics within an organization for a user broken down by the type of access.", + "description": "Get API usage statistics within an organization for a user broken down by the type of access.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -66887,6 +67246,7 @@ "approved", "dismissed", "replaced", + "invalidated", "all" ], "default": "pending" @@ -153136,7 +153496,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { diff --git a/descriptions-next/api.github.com/api.github.com.yaml b/descriptions-next/api.github.com/api.github.com.yaml index 395d1590a2..d84371c62f 100644 --- a/descriptions-next/api.github.com/api.github.com.yaml +++ b/descriptions-next/api.github.com/api.github.com.yaml @@ -14776,6 +14776,273 @@ paths: enabledForGitHubApps: true category: orgs subcategory: artifact-metadata + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs": + post: + summary: Create a cluster deployment records job + description: |- + Create a background job to set deployment records for a given cluster. + Performs validation and permission checks synchronously, returning rejected + deployments immediately, then enqueues a background job for the actual + deployment updates. Use the companion GET endpoint to poll for job status. + tags: + - orgs + operationId: orgs/create-cluster-deployment-records-job + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/artifact-metadata#create-a-cluster-deployment-records-job + parameters: + - "$ref": "#/components/parameters/org" + - name: cluster + in: path + description: The cluster name. + required: true + schema: + type: string + minLength: 1 + maxLength: 128 + pattern: "^[a-zA-Z0-9._-]+$" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + logical_environment: + type: string + description: The stage of the deployment. + minLength: 1 + maxLength: 128 + physical_environment: + type: string + description: The physical region of the deployment. + maxLength: 128 + deployments: + type: array + description: The list of deployments to record. + maxItems: 5000 + items: + type: object + properties: + name: + type: string + description: The name of the artifact. + minLength: 1 + maxLength: 256 + digest: + type: string + description: The hex encoded digest of the artifact. + minLength: 71 + maxLength: 71 + pattern: "^sha256:[a-f0-9]{64}$" + version: + type: string + description: The artifact version. + maxLength: 100 + x-multi-segment: true + examples: + - 1.2.3 + status: + type: string + description: The deployment status of the artifact. + default: deployed + enum: + - deployed + - decommissioned + deployment_name: + type: string + description: 'The unique identifier for the deployment represented + by the new record. + + ' + minLength: 1 + maxLength: 256 + github_repository: + type: string + description: The name of the GitHub repository associated + with the artifact. + maxLength: 100 + pattern: "^[A-Za-z0-9.\\-_]+$" + examples: + - my-github-repo + tags: + type: object + description: Key-value pairs to tag the deployment record. + additionalProperties: + type: string + runtime_risks: + type: array + description: A list of runtime risks associated with the deployment. + maxItems: 4 + uniqueItems: true + items: + type: string + enum: + - critical-resource + - internet-exposed + - lateral-movement + - sensitive-data + required: + - name + - deployment_name + - digest + required: + - logical_environment + - deployments + examples: + default: + value: + logical_environment: prod + physical_environment: pacific-east + deployments: + - name: awesome-image + digest: sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 + version: 2.1.0 + status: deployed + deployment_name: deployment-pod + tags: + owning-team: platform + runtime_risks: + - sensitive-data + responses: + '202': + description: 'Job created successfully. Authorized deployments will be processed + in the background. + + ' + content: + application/json: + schema: + type: object + properties: + job_id: + description: The ID of the created job. + type: integer + errors: + description: Deployments that were rejected during authorization. + type: array + items: + type: object + required: + - job_id + examples: + default: + value: + job_id: 123 + '400': + description: Bad Request + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '403': + description: Forbidden + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '404': + description: Resource not found + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + '409': + description: A job is already in progress for this cluster. + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: artifact-metadata + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs/{job_id}": + get: + summary: Get cluster deployment records job status + description: Get the status and results of a previously created cluster deployment + records job. + tags: + - orgs + operationId: orgs/get-cluster-deployment-records-job + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/artifact-metadata#get-cluster-deployment-records-job-status + parameters: + - "$ref": "#/components/parameters/org" + - name: cluster + in: path + description: The cluster name. + required: true + schema: + type: string + minLength: 1 + maxLength: 128 + pattern: "^[a-zA-Z0-9._-]+$" + - name: job_id + in: path + description: The ID of the job. + required: true + schema: + type: integer + responses: + '200': + description: 'Job status retrieved successfully. + + ' + content: + application/json: + schema: + type: object + properties: + job_id: + description: The ID of the job. + type: integer + status: + description: The current status of the job. + type: string + enum: + - pending + - processing + - completed + - failed + started_at: + description: When the job started processing (only present when + processing, completed, or failed). + type: string + format: date-time + total_count: + description: The number of records successfully mutated (only + present when completed). + type: integer + errors: + description: Processing errors (only present when completed or + failed). + type: array + items: + type: object + required: + - job_id + - status + examples: + default: + value: + job_id: 123 + status: completed + started_at: '2026-06-10T12:00:00Z' + total_count: 5 + '404': + description: Resource not found + content: + application/json: + schema: + "$ref": "#/components/schemas/basic-error" + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: artifact-metadata "/orgs/{org}/artifacts/metadata/storage-record": post: summary: Create artifact metadata storage record @@ -21275,8 +21542,10 @@ paths: "/orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}": get: summary: Get route stats by actor - description: Get API request count statistics for an actor broken down by route - within a specified time frame. + description: |- + Get API request count statistics for an actor broken down by route within a specified time frame. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-route-stats-by-actor @@ -21311,8 +21580,10 @@ paths: "/orgs/{org}/insights/api/subject-stats": get: summary: Get subject stats - description: Get API request statistics for all subjects within an organization - within a specified time frame. Subjects can be users or GitHub Apps. + description: |- + Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-subject-stats @@ -21345,8 +21616,10 @@ paths: "/orgs/{org}/insights/api/summary-stats": get: summary: Get summary stats - description: Get overall statistics of API requests made within an organization - by all users and apps within a specified time frame. + description: |- + Get overall statistics of API requests made within an organization by all users and apps within a specified time frame. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats @@ -21374,8 +21647,10 @@ paths: "/orgs/{org}/insights/api/summary-stats/users/{user_id}": get: summary: Get summary stats by user - description: Get overall statistics of API requests within the organization - for a user. + description: |- + Get overall statistics of API requests within the organization for a user. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats-by-user @@ -21404,9 +21679,10 @@ paths: "/orgs/{org}/insights/api/summary-stats/{actor_type}/{actor_id}": get: summary: Get summary stats by actor - description: Get overall statistics of API requests within the organization - made by a specific actor. Actors can be GitHub App installations, OAuth apps - or other tokens on behalf of a user. + description: |- + Get overall statistics of API requests within the organization made by a specific actor. Actors can be GitHub App installations, OAuth apps or other tokens on behalf of a user. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats-by-actor @@ -21436,8 +21712,10 @@ paths: "/orgs/{org}/insights/api/time-stats": get: summary: Get time stats - description: Get the number of API requests and rate-limited requests made within - an organization over a specified time period. + description: |- + Get the number of API requests and rate-limited requests made within an organization over a specified time period. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-time-stats @@ -21466,8 +21744,10 @@ paths: "/orgs/{org}/insights/api/time-stats/users/{user_id}": get: summary: Get time stats by user - description: Get the number of API requests and rate-limited requests made within - an organization by a specific user over a specified time period. + description: |- + Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-time-stats-by-user @@ -21497,8 +21777,10 @@ paths: "/orgs/{org}/insights/api/time-stats/{actor_type}/{actor_id}": get: summary: Get time stats by actor - description: Get the number of API requests and rate-limited requests made within - an organization by a specific actor within a specified time period. + description: |- + Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-time-stats-by-actor @@ -21529,8 +21811,10 @@ paths: "/orgs/{org}/insights/api/user-stats/{user_id}": get: summary: Get user stats - description: Get API usage statistics within an organization for a user broken - down by the type of access. + description: |- + Get API usage statistics within an organization for a user broken down by the type of access. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-user-stats @@ -49144,6 +49428,7 @@ paths: - approved - dismissed - replaced + - invalidated - all default: pending - name: action @@ -111477,6 +111762,7 @@ components: - approved - dismissed - replaced + - invalidated target_id: type: - integer diff --git a/descriptions-next/api.github.com/dereferenced/api.github.com.2022-11-28.deref.json b/descriptions-next/api.github.com/dereferenced/api.github.com.2022-11-28.deref.json index fe77c6e5e1..18d39284b7 100644 --- a/descriptions-next/api.github.com/dereferenced/api.github.com.2022-11-28.deref.json +++ b/descriptions-next/api.github.com/dereferenced/api.github.com.2022-11-28.deref.json @@ -117133,6 +117133,457 @@ } } }, + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs": { + "post": { + "summary": "Create a cluster deployment records job", + "description": "Create a background job to set deployment records for a given cluster.\nPerforms validation and permission checks synchronously, returning rejected\ndeployments immediately, then enqueues a background job for the actual\ndeployment updates. Use the companion GET endpoint to poll for job status.", + "tags": [ + "orgs" + ], + "operationId": "orgs/create-cluster-deployment-records-job", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/artifact-metadata#create-a-cluster-deployment-records-job" + }, + "parameters": [ + { + "name": "org", + "description": "The organization name. The name is not case sensitive.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "cluster", + "in": "path", + "description": "The cluster name.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "^[a-zA-Z0-9._-]+$" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "logical_environment": { + "type": "string", + "description": "The stage of the deployment.", + "minLength": 1, + "maxLength": 128 + }, + "physical_environment": { + "type": "string", + "description": "The physical region of the deployment.", + "maxLength": 128 + }, + "deployments": { + "type": "array", + "description": "The list of deployments to record.", + "maxItems": 5000, + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the artifact.", + "minLength": 1, + "maxLength": 256 + }, + "digest": { + "type": "string", + "description": "The hex encoded digest of the artifact.", + "minLength": 71, + "maxLength": 71, + "pattern": "^sha256:[a-f0-9]{64}$" + }, + "version": { + "type": "string", + "description": "The artifact version.", + "maxLength": 100, + "x-multi-segment": true, + "examples": [ + "1.2.3" + ] + }, + "status": { + "type": "string", + "description": "The deployment status of the artifact.", + "default": "deployed", + "enum": [ + "deployed", + "decommissioned" + ] + }, + "deployment_name": { + "type": "string", + "description": "The unique identifier for the deployment represented by the new record.\n", + "minLength": 1, + "maxLength": 256 + }, + "github_repository": { + "type": "string", + "description": "The name of the GitHub repository associated with the artifact.", + "maxLength": 100, + "pattern": "^[A-Za-z0-9.\\-_]+$", + "examples": [ + "my-github-repo" + ] + }, + "tags": { + "type": "object", + "description": "Key-value pairs to tag the deployment record.", + "additionalProperties": { + "type": "string" + } + }, + "runtime_risks": { + "type": "array", + "description": "A list of runtime risks associated with the deployment.", + "maxItems": 4, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "critical-resource", + "internet-exposed", + "lateral-movement", + "sensitive-data" + ] + } + } + }, + "required": [ + "name", + "deployment_name", + "digest" + ] + } + } + }, + "required": [ + "logical_environment", + "deployments" + ] + }, + "examples": { + "default": { + "value": { + "logical_environment": "prod", + "physical_environment": "pacific-east", + "deployments": [ + { + "name": "awesome-image", + "digest": "sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72", + "version": "2.1.0", + "status": "deployed", + "deployment_name": "deployment-pod", + "tags": { + "owning-team": "platform" + }, + "runtime_risks": [ + "sensitive-data" + ] + } + ] + } + } + } + } + } + }, + "responses": { + "202": { + "description": "Job created successfully. Authorized deployments will be processed in the background.\n", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "job_id": { + "description": "The ID of the created job.", + "type": "integer" + }, + "errors": { + "description": "Deployments that were rejected during authorization.", + "type": "array", + "items": { + "type": "object" + } + } + }, + "required": [ + "job_id" + ] + }, + "examples": { + "default": { + "value": { + "job_id": 123 + } + } + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + }, + "409": { + "description": "A job is already in progress for this cluster.", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "artifact-metadata" + } + } + }, + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs/{job_id}": { + "get": { + "summary": "Get cluster deployment records job status", + "description": "Get the status and results of a previously created cluster deployment records job.", + "tags": [ + "orgs" + ], + "operationId": "orgs/get-cluster-deployment-records-job", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/artifact-metadata#get-cluster-deployment-records-job-status" + }, + "parameters": [ + { + "name": "org", + "description": "The organization name. The name is not case sensitive.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "cluster", + "in": "path", + "description": "The cluster name.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "^[a-zA-Z0-9._-]+$" + } + }, + { + "name": "job_id", + "in": "path", + "description": "The ID of the job.", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Job status retrieved successfully.\n", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "job_id": { + "description": "The ID of the job.", + "type": "integer" + }, + "status": { + "description": "The current status of the job.", + "type": "string", + "enum": [ + "pending", + "processing", + "completed", + "failed" + ] + }, + "started_at": { + "description": "When the job started processing (only present when processing, completed, or failed).", + "type": "string", + "format": "date-time" + }, + "total_count": { + "description": "The number of records successfully mutated (only present when completed).", + "type": "integer" + }, + "errors": { + "description": "Processing errors (only present when completed or failed).", + "type": "array", + "items": { + "type": "object" + } + } + }, + "required": [ + "job_id", + "status" + ] + }, + "examples": { + "default": { + "value": { + "job_id": 123, + "status": "completed", + "started_at": "2026-06-10T12:00:00Z", + "total_count": 5 + } + } + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "artifact-metadata" + } + } + }, "/orgs/{org}/artifacts/metadata/storage-record": { "post": { "summary": "Create artifact metadata storage record", @@ -169360,7 +169811,7 @@ "/orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}": { "get": { "summary": "Get route stats by actor", - "description": "Get API request count statistics for an actor broken down by route within a specified time frame.", + "description": "Get API request count statistics for an actor broken down by route within a specified time frame.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -169555,7 +170006,7 @@ "/orgs/{org}/insights/api/subject-stats": { "get": { "summary": "Get subject stats", - "description": "Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps.", + "description": "Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -169723,7 +170174,7 @@ "/orgs/{org}/insights/api/summary-stats": { "get": { "summary": "Get summary stats", - "description": "Get overall statistics of API requests made within an organization by all users and apps within a specified time frame.", + "description": "Get overall statistics of API requests made within an organization by all users and apps within a specified time frame.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -169805,7 +170256,7 @@ "/orgs/{org}/insights/api/summary-stats/users/{user_id}": { "get": { "summary": "Get summary stats by user", - "description": "Get overall statistics of API requests within the organization for a user.", + "description": "Get overall statistics of API requests within the organization for a user.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -169896,7 +170347,7 @@ "/orgs/{org}/insights/api/summary-stats/{actor_type}/{actor_id}": { "get": { "summary": "Get summary stats by actor", - "description": "Get overall statistics of API requests within the organization made by a specific actor. Actors can be GitHub App installations, OAuth apps or other tokens on behalf of a user.", + "description": "Get overall statistics of API requests within the organization made by a specific actor. Actors can be GitHub App installations, OAuth apps or other tokens on behalf of a user.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -170003,7 +170454,7 @@ "/orgs/{org}/insights/api/time-stats": { "get": { "summary": "Get time stats", - "description": "Get the number of API requests and rate-limited requests made within an organization over a specified time period.", + "description": "Get the number of API requests and rate-limited requests made within an organization over a specified time period.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -170126,7 +170577,7 @@ "/orgs/{org}/insights/api/time-stats/users/{user_id}": { "get": { "summary": "Get time stats by user", - "description": "Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period.", + "description": "Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -170258,7 +170709,7 @@ "/orgs/{org}/insights/api/time-stats/{actor_type}/{actor_id}": { "get": { "summary": "Get time stats by actor", - "description": "Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period.", + "description": "Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -170406,7 +170857,7 @@ "/orgs/{org}/insights/api/user-stats/{user_id}": { "get": { "summary": "Get user stats", - "description": "Get API usage statistics within an organization for a user broken down by the type of access.", + "description": "Get API usage statistics within an organization for a user broken down by the type of access.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -573605,6 +574056,7 @@ "approved", "dismissed", "replaced", + "invalidated", "all" ], "default": "pending" @@ -573684,7 +574136,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { @@ -574034,7 +574487,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { @@ -574384,7 +574838,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { diff --git a/descriptions-next/api.github.com/dereferenced/api.github.com.2022-11-28.deref.yaml b/descriptions-next/api.github.com/dereferenced/api.github.com.2022-11-28.deref.yaml index 6ad228291e..bcbbbdc77f 100644 --- a/descriptions-next/api.github.com/dereferenced/api.github.com.2022-11-28.deref.yaml +++ b/descriptions-next/api.github.com/dereferenced/api.github.com.2022-11-28.deref.yaml @@ -30775,6 +30775,268 @@ paths: enabledForGitHubApps: true category: orgs subcategory: artifact-metadata + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs": + post: + summary: Create a cluster deployment records job + description: |- + Create a background job to set deployment records for a given cluster. + Performs validation and permission checks synchronously, returning rejected + deployments immediately, then enqueues a background job for the actual + deployment updates. Use the companion GET endpoint to poll for job status. + tags: + - orgs + operationId: orgs/create-cluster-deployment-records-job + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/artifact-metadata#create-a-cluster-deployment-records-job + parameters: + - *75 + - name: cluster + in: path + description: The cluster name. + required: true + schema: + type: string + minLength: 1 + maxLength: 128 + pattern: "^[a-zA-Z0-9._-]+$" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + logical_environment: + type: string + description: The stage of the deployment. + minLength: 1 + maxLength: 128 + physical_environment: + type: string + description: The physical region of the deployment. + maxLength: 128 + deployments: + type: array + description: The list of deployments to record. + maxItems: 5000 + items: + type: object + properties: + name: + type: string + description: The name of the artifact. + minLength: 1 + maxLength: 256 + digest: + type: string + description: The hex encoded digest of the artifact. + minLength: 71 + maxLength: 71 + pattern: "^sha256:[a-f0-9]{64}$" + version: + type: string + description: The artifact version. + maxLength: 100 + x-multi-segment: true + examples: + - 1.2.3 + status: + type: string + description: The deployment status of the artifact. + default: deployed + enum: + - deployed + - decommissioned + deployment_name: + type: string + description: 'The unique identifier for the deployment represented + by the new record. + + ' + minLength: 1 + maxLength: 256 + github_repository: + type: string + description: The name of the GitHub repository associated + with the artifact. + maxLength: 100 + pattern: "^[A-Za-z0-9.\\-_]+$" + examples: + - my-github-repo + tags: + type: object + description: Key-value pairs to tag the deployment record. + additionalProperties: + type: string + runtime_risks: + type: array + description: A list of runtime risks associated with the deployment. + maxItems: 4 + uniqueItems: true + items: + type: string + enum: + - critical-resource + - internet-exposed + - lateral-movement + - sensitive-data + required: + - name + - deployment_name + - digest + required: + - logical_environment + - deployments + examples: + default: + value: + logical_environment: prod + physical_environment: pacific-east + deployments: + - name: awesome-image + digest: sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 + version: 2.1.0 + status: deployed + deployment_name: deployment-pod + tags: + owning-team: platform + runtime_risks: + - sensitive-data + responses: + '202': + description: 'Job created successfully. Authorized deployments will be processed + in the background. + + ' + content: + application/json: + schema: + type: object + properties: + job_id: + description: The ID of the created job. + type: integer + errors: + description: Deployments that were rejected during authorization. + type: array + items: + type: object + required: + - job_id + examples: + default: + value: + job_id: 123 + '400': + description: Bad Request + content: + application/json: + schema: *3 + '403': + description: Forbidden + content: + application/json: + schema: *3 + '404': + description: Resource not found + content: + application/json: + schema: *3 + '409': + description: A job is already in progress for this cluster. + content: + application/json: + schema: *3 + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: artifact-metadata + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs/{job_id}": + get: + summary: Get cluster deployment records job status + description: Get the status and results of a previously created cluster deployment + records job. + tags: + - orgs + operationId: orgs/get-cluster-deployment-records-job + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/artifact-metadata#get-cluster-deployment-records-job-status + parameters: + - *75 + - name: cluster + in: path + description: The cluster name. + required: true + schema: + type: string + minLength: 1 + maxLength: 128 + pattern: "^[a-zA-Z0-9._-]+$" + - name: job_id + in: path + description: The ID of the job. + required: true + schema: + type: integer + responses: + '200': + description: 'Job status retrieved successfully. + + ' + content: + application/json: + schema: + type: object + properties: + job_id: + description: The ID of the job. + type: integer + status: + description: The current status of the job. + type: string + enum: + - pending + - processing + - completed + - failed + started_at: + description: When the job started processing (only present when + processing, completed, or failed). + type: string + format: date-time + total_count: + description: The number of records successfully mutated (only + present when completed). + type: integer + errors: + description: Processing errors (only present when completed or + failed). + type: array + items: + type: object + required: + - job_id + - status + examples: + default: + value: + job_id: 123 + status: completed + started_at: '2026-06-10T12:00:00Z' + total_count: 5 + '404': + description: Resource not found + content: + application/json: + schema: *3 + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: artifact-metadata "/orgs/{org}/artifacts/metadata/storage-record": post: summary: Create artifact metadata storage record @@ -39986,8 +40248,10 @@ paths: "/orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}": get: summary: Get route stats by actor - description: Get API request count statistics for an actor broken down by route - within a specified time frame. + description: |- + Get API request count statistics for an actor broken down by route within a specified time frame. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-route-stats-by-actor @@ -40109,8 +40373,10 @@ paths: "/orgs/{org}/insights/api/subject-stats": get: summary: Get subject stats - description: Get API request statistics for all subjects within an organization - within a specified time frame. Subjects can be users or GitHub Apps. + description: |- + Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-subject-stats @@ -40193,8 +40459,10 @@ paths: "/orgs/{org}/insights/api/summary-stats": get: summary: Get summary stats - description: Get overall statistics of API requests made within an organization - by all users and apps within a specified time frame. + description: |- + Get overall statistics of API requests made within an organization by all users and apps within a specified time frame. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats @@ -40237,8 +40505,10 @@ paths: "/orgs/{org}/insights/api/summary-stats/users/{user_id}": get: summary: Get summary stats by user - description: Get overall statistics of API requests within the organization - for a user. + description: |- + Get overall statistics of API requests within the organization for a user. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats-by-user @@ -40271,9 +40541,10 @@ paths: "/orgs/{org}/insights/api/summary-stats/{actor_type}/{actor_id}": get: summary: Get summary stats by actor - description: Get overall statistics of API requests within the organization - made by a specific actor. Actors can be GitHub App installations, OAuth apps - or other tokens on behalf of a user. + description: |- + Get overall statistics of API requests within the organization made by a specific actor. Actors can be GitHub App installations, OAuth apps or other tokens on behalf of a user. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats-by-actor @@ -40301,8 +40572,10 @@ paths: "/orgs/{org}/insights/api/time-stats": get: summary: Get time stats - description: Get the number of API requests and rate-limited requests made within - an organization over a specified time period. + description: |- + Get the number of API requests and rate-limited requests made within an organization over a specified time period. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-time-stats @@ -40369,8 +40642,10 @@ paths: "/orgs/{org}/insights/api/time-stats/users/{user_id}": get: summary: Get time stats by user - description: Get the number of API requests and rate-limited requests made within - an organization by a specific user over a specified time period. + description: |- + Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-time-stats-by-user @@ -40398,8 +40673,10 @@ paths: "/orgs/{org}/insights/api/time-stats/{actor_type}/{actor_id}": get: summary: Get time stats by actor - description: Get the number of API requests and rate-limited requests made within - an organization by a specific actor within a specified time period. + description: |- + Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-time-stats-by-actor @@ -40428,8 +40705,10 @@ paths: "/orgs/{org}/insights/api/user-stats/{user_id}": get: summary: Get user stats - description: Get API usage statistics within an organization for a user broken - down by the type of access. + description: |- + Get API usage statistics within an organization for a user broken down by the type of access. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-user-stats @@ -94821,6 +95100,7 @@ paths: - approved - dismissed - replaced + - invalidated - all default: pending - name: action @@ -94875,6 +95155,7 @@ paths: - approved - dismissed - replaced + - invalidated target_id: type: - integer diff --git a/descriptions-next/api.github.com/dereferenced/api.github.com.2026-03-10.deref.json b/descriptions-next/api.github.com/dereferenced/api.github.com.2026-03-10.deref.json index a1b96bb2ce..ee41d55ebc 100644 --- a/descriptions-next/api.github.com/dereferenced/api.github.com.2026-03-10.deref.json +++ b/descriptions-next/api.github.com/dereferenced/api.github.com.2026-03-10.deref.json @@ -112862,6 +112862,457 @@ } } }, + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs": { + "post": { + "summary": "Create a cluster deployment records job", + "description": "Create a background job to set deployment records for a given cluster.\nPerforms validation and permission checks synchronously, returning rejected\ndeployments immediately, then enqueues a background job for the actual\ndeployment updates. Use the companion GET endpoint to poll for job status.", + "tags": [ + "orgs" + ], + "operationId": "orgs/create-cluster-deployment-records-job", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/artifact-metadata#create-a-cluster-deployment-records-job" + }, + "parameters": [ + { + "name": "org", + "description": "The organization name. The name is not case sensitive.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "cluster", + "in": "path", + "description": "The cluster name.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "^[a-zA-Z0-9._-]+$" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "logical_environment": { + "type": "string", + "description": "The stage of the deployment.", + "minLength": 1, + "maxLength": 128 + }, + "physical_environment": { + "type": "string", + "description": "The physical region of the deployment.", + "maxLength": 128 + }, + "deployments": { + "type": "array", + "description": "The list of deployments to record.", + "maxItems": 5000, + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the artifact.", + "minLength": 1, + "maxLength": 256 + }, + "digest": { + "type": "string", + "description": "The hex encoded digest of the artifact.", + "minLength": 71, + "maxLength": 71, + "pattern": "^sha256:[a-f0-9]{64}$" + }, + "version": { + "type": "string", + "description": "The artifact version.", + "maxLength": 100, + "x-multi-segment": true, + "examples": [ + "1.2.3" + ] + }, + "status": { + "type": "string", + "description": "The deployment status of the artifact.", + "default": "deployed", + "enum": [ + "deployed", + "decommissioned" + ] + }, + "deployment_name": { + "type": "string", + "description": "The unique identifier for the deployment represented by the new record.\n", + "minLength": 1, + "maxLength": 256 + }, + "github_repository": { + "type": "string", + "description": "The name of the GitHub repository associated with the artifact.", + "maxLength": 100, + "pattern": "^[A-Za-z0-9.\\-_]+$", + "examples": [ + "my-github-repo" + ] + }, + "tags": { + "type": "object", + "description": "Key-value pairs to tag the deployment record.", + "additionalProperties": { + "type": "string" + } + }, + "runtime_risks": { + "type": "array", + "description": "A list of runtime risks associated with the deployment.", + "maxItems": 4, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "critical-resource", + "internet-exposed", + "lateral-movement", + "sensitive-data" + ] + } + } + }, + "required": [ + "name", + "deployment_name", + "digest" + ] + } + } + }, + "required": [ + "logical_environment", + "deployments" + ] + }, + "examples": { + "default": { + "value": { + "logical_environment": "prod", + "physical_environment": "pacific-east", + "deployments": [ + { + "name": "awesome-image", + "digest": "sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72", + "version": "2.1.0", + "status": "deployed", + "deployment_name": "deployment-pod", + "tags": { + "owning-team": "platform" + }, + "runtime_risks": [ + "sensitive-data" + ] + } + ] + } + } + } + } + } + }, + "responses": { + "202": { + "description": "Job created successfully. Authorized deployments will be processed in the background.\n", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "job_id": { + "description": "The ID of the created job.", + "type": "integer" + }, + "errors": { + "description": "Deployments that were rejected during authorization.", + "type": "array", + "items": { + "type": "object" + } + } + }, + "required": [ + "job_id" + ] + }, + "examples": { + "default": { + "value": { + "job_id": 123 + } + } + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + }, + "409": { + "description": "A job is already in progress for this cluster.", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "artifact-metadata" + } + } + }, + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs/{job_id}": { + "get": { + "summary": "Get cluster deployment records job status", + "description": "Get the status and results of a previously created cluster deployment records job.", + "tags": [ + "orgs" + ], + "operationId": "orgs/get-cluster-deployment-records-job", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/artifact-metadata#get-cluster-deployment-records-job-status" + }, + "parameters": [ + { + "name": "org", + "description": "The organization name. The name is not case sensitive.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "cluster", + "in": "path", + "description": "The cluster name.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "^[a-zA-Z0-9._-]+$" + } + }, + { + "name": "job_id", + "in": "path", + "description": "The ID of the job.", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Job status retrieved successfully.\n", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "job_id": { + "description": "The ID of the job.", + "type": "integer" + }, + "status": { + "description": "The current status of the job.", + "type": "string", + "enum": [ + "pending", + "processing", + "completed", + "failed" + ] + }, + "started_at": { + "description": "When the job started processing (only present when processing, completed, or failed).", + "type": "string", + "format": "date-time" + }, + "total_count": { + "description": "The number of records successfully mutated (only present when completed).", + "type": "integer" + }, + "errors": { + "description": "Processing errors (only present when completed or failed).", + "type": "array", + "items": { + "type": "object" + } + } + }, + "required": [ + "job_id", + "status" + ] + }, + "examples": { + "default": { + "value": { + "job_id": 123, + "status": "completed", + "started_at": "2026-06-10T12:00:00Z", + "total_count": 5 + } + } + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "artifact-metadata" + } + } + }, "/orgs/{org}/artifacts/metadata/storage-record": { "post": { "summary": "Create artifact metadata storage record", @@ -164618,7 +165069,7 @@ "/orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}": { "get": { "summary": "Get route stats by actor", - "description": "Get API request count statistics for an actor broken down by route within a specified time frame.", + "description": "Get API request count statistics for an actor broken down by route within a specified time frame.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -164813,7 +165264,7 @@ "/orgs/{org}/insights/api/subject-stats": { "get": { "summary": "Get subject stats", - "description": "Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps.", + "description": "Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -164981,7 +165432,7 @@ "/orgs/{org}/insights/api/summary-stats": { "get": { "summary": "Get summary stats", - "description": "Get overall statistics of API requests made within an organization by all users and apps within a specified time frame.", + "description": "Get overall statistics of API requests made within an organization by all users and apps within a specified time frame.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -165063,7 +165514,7 @@ "/orgs/{org}/insights/api/summary-stats/users/{user_id}": { "get": { "summary": "Get summary stats by user", - "description": "Get overall statistics of API requests within the organization for a user.", + "description": "Get overall statistics of API requests within the organization for a user.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -165154,7 +165605,7 @@ "/orgs/{org}/insights/api/summary-stats/{actor_type}/{actor_id}": { "get": { "summary": "Get summary stats by actor", - "description": "Get overall statistics of API requests within the organization made by a specific actor. Actors can be GitHub App installations, OAuth apps or other tokens on behalf of a user.", + "description": "Get overall statistics of API requests within the organization made by a specific actor. Actors can be GitHub App installations, OAuth apps or other tokens on behalf of a user.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -165261,7 +165712,7 @@ "/orgs/{org}/insights/api/time-stats": { "get": { "summary": "Get time stats", - "description": "Get the number of API requests and rate-limited requests made within an organization over a specified time period.", + "description": "Get the number of API requests and rate-limited requests made within an organization over a specified time period.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -165384,7 +165835,7 @@ "/orgs/{org}/insights/api/time-stats/users/{user_id}": { "get": { "summary": "Get time stats by user", - "description": "Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period.", + "description": "Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -165516,7 +165967,7 @@ "/orgs/{org}/insights/api/time-stats/{actor_type}/{actor_id}": { "get": { "summary": "Get time stats by actor", - "description": "Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period.", + "description": "Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -165664,7 +166115,7 @@ "/orgs/{org}/insights/api/user-stats/{user_id}": { "get": { "summary": "Get user stats", - "description": "Get API usage statistics within an organization for a user broken down by the type of access.", + "description": "Get API usage statistics within an organization for a user broken down by the type of access.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -561624,6 +562075,7 @@ "approved", "dismissed", "replaced", + "invalidated", "all" ], "default": "pending" @@ -561703,7 +562155,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { @@ -562053,7 +562506,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { @@ -562403,7 +562857,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { diff --git a/descriptions-next/api.github.com/dereferenced/api.github.com.2026-03-10.deref.yaml b/descriptions-next/api.github.com/dereferenced/api.github.com.2026-03-10.deref.yaml index cbfa1228f5..55e2bef9db 100644 --- a/descriptions-next/api.github.com/dereferenced/api.github.com.2026-03-10.deref.yaml +++ b/descriptions-next/api.github.com/dereferenced/api.github.com.2026-03-10.deref.yaml @@ -30451,6 +30451,268 @@ paths: enabledForGitHubApps: true category: orgs subcategory: artifact-metadata + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs": + post: + summary: Create a cluster deployment records job + description: |- + Create a background job to set deployment records for a given cluster. + Performs validation and permission checks synchronously, returning rejected + deployments immediately, then enqueues a background job for the actual + deployment updates. Use the companion GET endpoint to poll for job status. + tags: + - orgs + operationId: orgs/create-cluster-deployment-records-job + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/artifact-metadata#create-a-cluster-deployment-records-job + parameters: + - *75 + - name: cluster + in: path + description: The cluster name. + required: true + schema: + type: string + minLength: 1 + maxLength: 128 + pattern: "^[a-zA-Z0-9._-]+$" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + logical_environment: + type: string + description: The stage of the deployment. + minLength: 1 + maxLength: 128 + physical_environment: + type: string + description: The physical region of the deployment. + maxLength: 128 + deployments: + type: array + description: The list of deployments to record. + maxItems: 5000 + items: + type: object + properties: + name: + type: string + description: The name of the artifact. + minLength: 1 + maxLength: 256 + digest: + type: string + description: The hex encoded digest of the artifact. + minLength: 71 + maxLength: 71 + pattern: "^sha256:[a-f0-9]{64}$" + version: + type: string + description: The artifact version. + maxLength: 100 + x-multi-segment: true + examples: + - 1.2.3 + status: + type: string + description: The deployment status of the artifact. + default: deployed + enum: + - deployed + - decommissioned + deployment_name: + type: string + description: 'The unique identifier for the deployment represented + by the new record. + + ' + minLength: 1 + maxLength: 256 + github_repository: + type: string + description: The name of the GitHub repository associated + with the artifact. + maxLength: 100 + pattern: "^[A-Za-z0-9.\\-_]+$" + examples: + - my-github-repo + tags: + type: object + description: Key-value pairs to tag the deployment record. + additionalProperties: + type: string + runtime_risks: + type: array + description: A list of runtime risks associated with the deployment. + maxItems: 4 + uniqueItems: true + items: + type: string + enum: + - critical-resource + - internet-exposed + - lateral-movement + - sensitive-data + required: + - name + - deployment_name + - digest + required: + - logical_environment + - deployments + examples: + default: + value: + logical_environment: prod + physical_environment: pacific-east + deployments: + - name: awesome-image + digest: sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 + version: 2.1.0 + status: deployed + deployment_name: deployment-pod + tags: + owning-team: platform + runtime_risks: + - sensitive-data + responses: + '202': + description: 'Job created successfully. Authorized deployments will be processed + in the background. + + ' + content: + application/json: + schema: + type: object + properties: + job_id: + description: The ID of the created job. + type: integer + errors: + description: Deployments that were rejected during authorization. + type: array + items: + type: object + required: + - job_id + examples: + default: + value: + job_id: 123 + '400': + description: Bad Request + content: + application/json: + schema: *3 + '403': + description: Forbidden + content: + application/json: + schema: *3 + '404': + description: Resource not found + content: + application/json: + schema: *3 + '409': + description: A job is already in progress for this cluster. + content: + application/json: + schema: *3 + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: artifact-metadata + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs/{job_id}": + get: + summary: Get cluster deployment records job status + description: Get the status and results of a previously created cluster deployment + records job. + tags: + - orgs + operationId: orgs/get-cluster-deployment-records-job + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/artifact-metadata#get-cluster-deployment-records-job-status + parameters: + - *75 + - name: cluster + in: path + description: The cluster name. + required: true + schema: + type: string + minLength: 1 + maxLength: 128 + pattern: "^[a-zA-Z0-9._-]+$" + - name: job_id + in: path + description: The ID of the job. + required: true + schema: + type: integer + responses: + '200': + description: 'Job status retrieved successfully. + + ' + content: + application/json: + schema: + type: object + properties: + job_id: + description: The ID of the job. + type: integer + status: + description: The current status of the job. + type: string + enum: + - pending + - processing + - completed + - failed + started_at: + description: When the job started processing (only present when + processing, completed, or failed). + type: string + format: date-time + total_count: + description: The number of records successfully mutated (only + present when completed). + type: integer + errors: + description: Processing errors (only present when completed or + failed). + type: array + items: + type: object + required: + - job_id + - status + examples: + default: + value: + job_id: 123 + status: completed + started_at: '2026-06-10T12:00:00Z' + total_count: 5 + '404': + description: Resource not found + content: + application/json: + schema: *3 + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: artifact-metadata "/orgs/{org}/artifacts/metadata/storage-record": post: summary: Create artifact metadata storage record @@ -39628,8 +39890,10 @@ paths: "/orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}": get: summary: Get route stats by actor - description: Get API request count statistics for an actor broken down by route - within a specified time frame. + description: |- + Get API request count statistics for an actor broken down by route within a specified time frame. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-route-stats-by-actor @@ -39751,8 +40015,10 @@ paths: "/orgs/{org}/insights/api/subject-stats": get: summary: Get subject stats - description: Get API request statistics for all subjects within an organization - within a specified time frame. Subjects can be users or GitHub Apps. + description: |- + Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-subject-stats @@ -39835,8 +40101,10 @@ paths: "/orgs/{org}/insights/api/summary-stats": get: summary: Get summary stats - description: Get overall statistics of API requests made within an organization - by all users and apps within a specified time frame. + description: |- + Get overall statistics of API requests made within an organization by all users and apps within a specified time frame. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats @@ -39879,8 +40147,10 @@ paths: "/orgs/{org}/insights/api/summary-stats/users/{user_id}": get: summary: Get summary stats by user - description: Get overall statistics of API requests within the organization - for a user. + description: |- + Get overall statistics of API requests within the organization for a user. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats-by-user @@ -39913,9 +40183,10 @@ paths: "/orgs/{org}/insights/api/summary-stats/{actor_type}/{actor_id}": get: summary: Get summary stats by actor - description: Get overall statistics of API requests within the organization - made by a specific actor. Actors can be GitHub App installations, OAuth apps - or other tokens on behalf of a user. + description: |- + Get overall statistics of API requests within the organization made by a specific actor. Actors can be GitHub App installations, OAuth apps or other tokens on behalf of a user. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats-by-actor @@ -39943,8 +40214,10 @@ paths: "/orgs/{org}/insights/api/time-stats": get: summary: Get time stats - description: Get the number of API requests and rate-limited requests made within - an organization over a specified time period. + description: |- + Get the number of API requests and rate-limited requests made within an organization over a specified time period. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-time-stats @@ -40011,8 +40284,10 @@ paths: "/orgs/{org}/insights/api/time-stats/users/{user_id}": get: summary: Get time stats by user - description: Get the number of API requests and rate-limited requests made within - an organization by a specific user over a specified time period. + description: |- + Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-time-stats-by-user @@ -40040,8 +40315,10 @@ paths: "/orgs/{org}/insights/api/time-stats/{actor_type}/{actor_id}": get: summary: Get time stats by actor - description: Get the number of API requests and rate-limited requests made within - an organization by a specific actor within a specified time period. + description: |- + Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-time-stats-by-actor @@ -40070,8 +40347,10 @@ paths: "/orgs/{org}/insights/api/user-stats/{user_id}": get: summary: Get user stats - description: Get API usage statistics within an organization for a user broken - down by the type of access. + description: |- + Get API usage statistics within an organization for a user broken down by the type of access. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-user-stats @@ -94320,6 +94599,7 @@ paths: - approved - dismissed - replaced + - invalidated - all default: pending - name: action @@ -94374,6 +94654,7 @@ paths: - approved - dismissed - replaced + - invalidated target_id: type: - integer diff --git a/descriptions-next/api.github.com/dereferenced/api.github.com.deref.json b/descriptions-next/api.github.com/dereferenced/api.github.com.deref.json index ad91ac1969..fa96e01eda 100644 --- a/descriptions-next/api.github.com/dereferenced/api.github.com.deref.json +++ b/descriptions-next/api.github.com/dereferenced/api.github.com.deref.json @@ -119217,6 +119217,457 @@ } } }, + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs": { + "post": { + "summary": "Create a cluster deployment records job", + "description": "Create a background job to set deployment records for a given cluster.\nPerforms validation and permission checks synchronously, returning rejected\ndeployments immediately, then enqueues a background job for the actual\ndeployment updates. Use the companion GET endpoint to poll for job status.", + "tags": [ + "orgs" + ], + "operationId": "orgs/create-cluster-deployment-records-job", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/artifact-metadata#create-a-cluster-deployment-records-job" + }, + "parameters": [ + { + "name": "org", + "description": "The organization name. The name is not case sensitive.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "cluster", + "in": "path", + "description": "The cluster name.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "^[a-zA-Z0-9._-]+$" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "logical_environment": { + "type": "string", + "description": "The stage of the deployment.", + "minLength": 1, + "maxLength": 128 + }, + "physical_environment": { + "type": "string", + "description": "The physical region of the deployment.", + "maxLength": 128 + }, + "deployments": { + "type": "array", + "description": "The list of deployments to record.", + "maxItems": 5000, + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the artifact.", + "minLength": 1, + "maxLength": 256 + }, + "digest": { + "type": "string", + "description": "The hex encoded digest of the artifact.", + "minLength": 71, + "maxLength": 71, + "pattern": "^sha256:[a-f0-9]{64}$" + }, + "version": { + "type": "string", + "description": "The artifact version.", + "maxLength": 100, + "x-multi-segment": true, + "examples": [ + "1.2.3" + ] + }, + "status": { + "type": "string", + "description": "The deployment status of the artifact.", + "default": "deployed", + "enum": [ + "deployed", + "decommissioned" + ] + }, + "deployment_name": { + "type": "string", + "description": "The unique identifier for the deployment represented by the new record.\n", + "minLength": 1, + "maxLength": 256 + }, + "github_repository": { + "type": "string", + "description": "The name of the GitHub repository associated with the artifact.", + "maxLength": 100, + "pattern": "^[A-Za-z0-9.\\-_]+$", + "examples": [ + "my-github-repo" + ] + }, + "tags": { + "type": "object", + "description": "Key-value pairs to tag the deployment record.", + "additionalProperties": { + "type": "string" + } + }, + "runtime_risks": { + "type": "array", + "description": "A list of runtime risks associated with the deployment.", + "maxItems": 4, + "uniqueItems": true, + "items": { + "type": "string", + "enum": [ + "critical-resource", + "internet-exposed", + "lateral-movement", + "sensitive-data" + ] + } + } + }, + "required": [ + "name", + "deployment_name", + "digest" + ] + } + } + }, + "required": [ + "logical_environment", + "deployments" + ] + }, + "examples": { + "default": { + "value": { + "logical_environment": "prod", + "physical_environment": "pacific-east", + "deployments": [ + { + "name": "awesome-image", + "digest": "sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72", + "version": "2.1.0", + "status": "deployed", + "deployment_name": "deployment-pod", + "tags": { + "owning-team": "platform" + }, + "runtime_risks": [ + "sensitive-data" + ] + } + ] + } + } + } + } + } + }, + "responses": { + "202": { + "description": "Job created successfully. Authorized deployments will be processed in the background.\n", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "job_id": { + "description": "The ID of the created job.", + "type": "integer" + }, + "errors": { + "description": "Deployments that were rejected during authorization.", + "type": "array", + "items": { + "type": "object" + } + } + }, + "required": [ + "job_id" + ] + }, + "examples": { + "default": { + "value": { + "job_id": 123 + } + } + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + }, + "409": { + "description": "A job is already in progress for this cluster.", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "artifact-metadata" + } + } + }, + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs/{job_id}": { + "get": { + "summary": "Get cluster deployment records job status", + "description": "Get the status and results of a previously created cluster deployment records job.", + "tags": [ + "orgs" + ], + "operationId": "orgs/get-cluster-deployment-records-job", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/artifact-metadata#get-cluster-deployment-records-job-status" + }, + "parameters": [ + { + "name": "org", + "description": "The organization name. The name is not case sensitive.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "cluster", + "in": "path", + "description": "The cluster name.", + "required": true, + "schema": { + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "^[a-zA-Z0-9._-]+$" + } + }, + { + "name": "job_id", + "in": "path", + "description": "The ID of the job.", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Job status retrieved successfully.\n", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "job_id": { + "description": "The ID of the job.", + "type": "integer" + }, + "status": { + "description": "The current status of the job.", + "type": "string", + "enum": [ + "pending", + "processing", + "completed", + "failed" + ] + }, + "started_at": { + "description": "When the job started processing (only present when processing, completed, or failed).", + "type": "string", + "format": "date-time" + }, + "total_count": { + "description": "The number of records successfully mutated (only present when completed).", + "type": "integer" + }, + "errors": { + "description": "Processing errors (only present when completed or failed).", + "type": "array", + "items": { + "type": "object" + } + } + }, + "required": [ + "job_id", + "status" + ] + }, + "examples": { + "default": { + "value": { + "job_id": 123, + "status": "completed", + "started_at": "2026-06-10T12:00:00Z", + "total_count": 5 + } + } + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { + "type": "string" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "artifact-metadata" + } + } + }, "/orgs/{org}/artifacts/metadata/storage-record": { "post": { "summary": "Create artifact metadata storage record", @@ -171921,7 +172372,7 @@ "/orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}": { "get": { "summary": "Get route stats by actor", - "description": "Get API request count statistics for an actor broken down by route within a specified time frame.", + "description": "Get API request count statistics for an actor broken down by route within a specified time frame.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -172116,7 +172567,7 @@ "/orgs/{org}/insights/api/subject-stats": { "get": { "summary": "Get subject stats", - "description": "Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps.", + "description": "Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -172284,7 +172735,7 @@ "/orgs/{org}/insights/api/summary-stats": { "get": { "summary": "Get summary stats", - "description": "Get overall statistics of API requests made within an organization by all users and apps within a specified time frame.", + "description": "Get overall statistics of API requests made within an organization by all users and apps within a specified time frame.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -172366,7 +172817,7 @@ "/orgs/{org}/insights/api/summary-stats/users/{user_id}": { "get": { "summary": "Get summary stats by user", - "description": "Get overall statistics of API requests within the organization for a user.", + "description": "Get overall statistics of API requests within the organization for a user.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -172457,7 +172908,7 @@ "/orgs/{org}/insights/api/summary-stats/{actor_type}/{actor_id}": { "get": { "summary": "Get summary stats by actor", - "description": "Get overall statistics of API requests within the organization made by a specific actor. Actors can be GitHub App installations, OAuth apps or other tokens on behalf of a user.", + "description": "Get overall statistics of API requests within the organization made by a specific actor. Actors can be GitHub App installations, OAuth apps or other tokens on behalf of a user.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -172564,7 +173015,7 @@ "/orgs/{org}/insights/api/time-stats": { "get": { "summary": "Get time stats", - "description": "Get the number of API requests and rate-limited requests made within an organization over a specified time period.", + "description": "Get the number of API requests and rate-limited requests made within an organization over a specified time period.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -172687,7 +173138,7 @@ "/orgs/{org}/insights/api/time-stats/users/{user_id}": { "get": { "summary": "Get time stats by user", - "description": "Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period.", + "description": "Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -172819,7 +173270,7 @@ "/orgs/{org}/insights/api/time-stats/{actor_type}/{actor_id}": { "get": { "summary": "Get time stats by actor", - "description": "Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period.", + "description": "Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -172967,7 +173418,7 @@ "/orgs/{org}/insights/api/user-stats/{user_id}": { "get": { "summary": "Get user stats", - "description": "Get API usage statistics within an organization for a user broken down by the type of access.", + "description": "Get API usage statistics within an organization for a user broken down by the type of access.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], @@ -585899,6 +586350,7 @@ "approved", "dismissed", "replaced", + "invalidated", "all" ], "default": "pending" @@ -585978,7 +586430,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { @@ -586328,7 +586781,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { @@ -586678,7 +587132,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { diff --git a/descriptions-next/api.github.com/dereferenced/api.github.com.deref.yaml b/descriptions-next/api.github.com/dereferenced/api.github.com.deref.yaml index 30ac9f4a25..5c15f913e5 100644 --- a/descriptions-next/api.github.com/dereferenced/api.github.com.deref.yaml +++ b/descriptions-next/api.github.com/dereferenced/api.github.com.deref.yaml @@ -31068,6 +31068,268 @@ paths: enabledForGitHubApps: true category: orgs subcategory: artifact-metadata + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs": + post: + summary: Create a cluster deployment records job + description: |- + Create a background job to set deployment records for a given cluster. + Performs validation and permission checks synchronously, returning rejected + deployments immediately, then enqueues a background job for the actual + deployment updates. Use the companion GET endpoint to poll for job status. + tags: + - orgs + operationId: orgs/create-cluster-deployment-records-job + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/artifact-metadata#create-a-cluster-deployment-records-job + parameters: + - *75 + - name: cluster + in: path + description: The cluster name. + required: true + schema: + type: string + minLength: 1 + maxLength: 128 + pattern: "^[a-zA-Z0-9._-]+$" + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + logical_environment: + type: string + description: The stage of the deployment. + minLength: 1 + maxLength: 128 + physical_environment: + type: string + description: The physical region of the deployment. + maxLength: 128 + deployments: + type: array + description: The list of deployments to record. + maxItems: 5000 + items: + type: object + properties: + name: + type: string + description: The name of the artifact. + minLength: 1 + maxLength: 256 + digest: + type: string + description: The hex encoded digest of the artifact. + minLength: 71 + maxLength: 71 + pattern: "^sha256:[a-f0-9]{64}$" + version: + type: string + description: The artifact version. + maxLength: 100 + x-multi-segment: true + examples: + - 1.2.3 + status: + type: string + description: The deployment status of the artifact. + default: deployed + enum: + - deployed + - decommissioned + deployment_name: + type: string + description: 'The unique identifier for the deployment represented + by the new record. + + ' + minLength: 1 + maxLength: 256 + github_repository: + type: string + description: The name of the GitHub repository associated + with the artifact. + maxLength: 100 + pattern: "^[A-Za-z0-9.\\-_]+$" + examples: + - my-github-repo + tags: + type: object + description: Key-value pairs to tag the deployment record. + additionalProperties: + type: string + runtime_risks: + type: array + description: A list of runtime risks associated with the deployment. + maxItems: 4 + uniqueItems: true + items: + type: string + enum: + - critical-resource + - internet-exposed + - lateral-movement + - sensitive-data + required: + - name + - deployment_name + - digest + required: + - logical_environment + - deployments + examples: + default: + value: + logical_environment: prod + physical_environment: pacific-east + deployments: + - name: awesome-image + digest: sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 + version: 2.1.0 + status: deployed + deployment_name: deployment-pod + tags: + owning-team: platform + runtime_risks: + - sensitive-data + responses: + '202': + description: 'Job created successfully. Authorized deployments will be processed + in the background. + + ' + content: + application/json: + schema: + type: object + properties: + job_id: + description: The ID of the created job. + type: integer + errors: + description: Deployments that were rejected during authorization. + type: array + items: + type: object + required: + - job_id + examples: + default: + value: + job_id: 123 + '400': + description: Bad Request + content: + application/json: + schema: *3 + '403': + description: Forbidden + content: + application/json: + schema: *3 + '404': + description: Resource not found + content: + application/json: + schema: *3 + '409': + description: A job is already in progress for this cluster. + content: + application/json: + schema: *3 + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: artifact-metadata + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs/{job_id}": + get: + summary: Get cluster deployment records job status + description: Get the status and results of a previously created cluster deployment + records job. + tags: + - orgs + operationId: orgs/get-cluster-deployment-records-job + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/artifact-metadata#get-cluster-deployment-records-job-status + parameters: + - *75 + - name: cluster + in: path + description: The cluster name. + required: true + schema: + type: string + minLength: 1 + maxLength: 128 + pattern: "^[a-zA-Z0-9._-]+$" + - name: job_id + in: path + description: The ID of the job. + required: true + schema: + type: integer + responses: + '200': + description: 'Job status retrieved successfully. + + ' + content: + application/json: + schema: + type: object + properties: + job_id: + description: The ID of the job. + type: integer + status: + description: The current status of the job. + type: string + enum: + - pending + - processing + - completed + - failed + started_at: + description: When the job started processing (only present when + processing, completed, or failed). + type: string + format: date-time + total_count: + description: The number of records successfully mutated (only + present when completed). + type: integer + errors: + description: Processing errors (only present when completed or + failed). + type: array + items: + type: object + required: + - job_id + - status + examples: + default: + value: + job_id: 123 + status: completed + started_at: '2026-06-10T12:00:00Z' + total_count: 5 + '404': + description: Resource not found + content: + application/json: + schema: *3 + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: artifact-metadata "/orgs/{org}/artifacts/metadata/storage-record": post: summary: Create artifact metadata storage record @@ -40316,8 +40578,10 @@ paths: "/orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}": get: summary: Get route stats by actor - description: Get API request count statistics for an actor broken down by route - within a specified time frame. + description: |- + Get API request count statistics for an actor broken down by route within a specified time frame. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-route-stats-by-actor @@ -40439,8 +40703,10 @@ paths: "/orgs/{org}/insights/api/subject-stats": get: summary: Get subject stats - description: Get API request statistics for all subjects within an organization - within a specified time frame. Subjects can be users or GitHub Apps. + description: |- + Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-subject-stats @@ -40523,8 +40789,10 @@ paths: "/orgs/{org}/insights/api/summary-stats": get: summary: Get summary stats - description: Get overall statistics of API requests made within an organization - by all users and apps within a specified time frame. + description: |- + Get overall statistics of API requests made within an organization by all users and apps within a specified time frame. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats @@ -40567,8 +40835,10 @@ paths: "/orgs/{org}/insights/api/summary-stats/users/{user_id}": get: summary: Get summary stats by user - description: Get overall statistics of API requests within the organization - for a user. + description: |- + Get overall statistics of API requests within the organization for a user. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats-by-user @@ -40601,9 +40871,10 @@ paths: "/orgs/{org}/insights/api/summary-stats/{actor_type}/{actor_id}": get: summary: Get summary stats by actor - description: Get overall statistics of API requests within the organization - made by a specific actor. Actors can be GitHub App installations, OAuth apps - or other tokens on behalf of a user. + description: |- + Get overall statis{"code":"deadline_exceeded","msg":"operation timed out"}