diff --git a/descriptions/api.github.com/api.github.com.2022-11-28.json b/descriptions/api.github.com/api.github.com.2022-11-28.json index a5af04dfde..6a150da931 100644 --- a/descriptions/api.github.com/api.github.com.2022-11-28.json +++ b/descriptions/api.github.com/api.github.com.2022-11-28.json @@ -19763,6 +19763,361 @@ } } }, + "/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, + "example": "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.\\-_]+$", + "example": "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", @@ -28287,7 +28642,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" ], @@ -28355,7 +28710,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" ], @@ -28417,7 +28772,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" ], @@ -28464,7 +28819,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" ], @@ -28514,7 +28869,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" ], @@ -28567,7 +28922,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" ], @@ -28617,7 +28972,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" ], @@ -28670,7 +29025,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" ], @@ -28726,7 +29081,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" ], @@ -66259,6 +66614,7 @@ "approved", "dismissed", "replaced", + "invalidated", "all" ], "default": "pending" @@ -148685,7 +149041,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { diff --git a/descriptions/api.github.com/api.github.com.2022-11-28.yaml b/descriptions/api.github.com/api.github.com.2022-11-28.yaml index 5601695fb0..2078fc6c62 100644 --- a/descriptions/api.github.com/api.github.com.2022-11-28.yaml +++ b/descriptions/api.github.com/api.github.com.2022-11-28.yaml @@ -14710,6 +14710,271 @@ 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 + example: 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.\\-_]+$" + example: 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 @@ -21143,8 +21408,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 @@ -21179,8 +21446,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 @@ -21213,8 +21482,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 @@ -21242,8 +21513,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 @@ -21272,9 +21545,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 @@ -21304,8 +21578,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 @@ -21334,8 +21610,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 @@ -21365,8 +21643,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 @@ -21397,8 +21677,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 @@ -48792,6 +49074,7 @@ paths: - approved - dismissed - replaced + - invalidated - all default: pending - name: action @@ -110006,6 +110289,7 @@ components: - approved - dismissed - replaced + - invalidated target_id: type: integer description: The identifier of the target the change applies to (issue type, diff --git a/descriptions/api.github.com/api.github.com.2026-03-10.json b/descriptions/api.github.com/api.github.com.2026-03-10.json index 5335f3f76d..e15e4401c5 100644 --- a/descriptions/api.github.com/api.github.com.2026-03-10.json +++ b/descriptions/api.github.com/api.github.com.2026-03-10.json @@ -19762,6 +19762,361 @@ } } }, + "/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, + "example": "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.\\-_]+$", + "example": "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", @@ -28240,7 +28595,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" ], @@ -28308,7 +28663,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" ], @@ -28370,7 +28725,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" ], @@ -28417,7 +28772,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" ], @@ -28467,7 +28822,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" ], @@ -28520,7 +28875,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" ], @@ -28570,7 +28925,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" ], @@ -28623,7 +28978,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" ], @@ -28679,7 +29034,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" ], @@ -66176,6 +66531,7 @@ "approved", "dismissed", "replaced", + "invalidated", "all" ], "default": "pending" @@ -148110,7 +148466,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { diff --git a/descriptions/api.github.com/api.github.com.2026-03-10.yaml b/descriptions/api.github.com/api.github.com.2026-03-10.yaml index a14c2a6530..5ce42dcc43 100644 --- a/descriptions/api.github.com/api.github.com.2026-03-10.yaml +++ b/descriptions/api.github.com/api.github.com.2026-03-10.yaml @@ -14708,6 +14708,271 @@ 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 + example: 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.\\-_]+$" + example: 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 @@ -21108,8 +21373,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 @@ -21144,8 +21411,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 @@ -21178,8 +21447,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 @@ -21207,8 +21478,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 @@ -21237,9 +21510,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 @@ -21269,8 +21543,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 @@ -21299,8 +21575,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 @@ -21330,8 +21608,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 @@ -21362,8 +21642,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 @@ -48720,6 +49002,7 @@ paths: - approved - dismissed - replaced + - invalidated - all default: pending - name: action @@ -109549,6 +109832,7 @@ components: - approved - dismissed - replaced + - invalidated target_id: type: integer description: The identifier of the target the change applies to (issue type, diff --git a/descriptions/api.github.com/api.github.com.json b/descriptions/api.github.com/api.github.com.json index 7a54434ecf..90619260c3 100644 --- a/descriptions/api.github.com/api.github.com.json +++ b/descriptions/api.github.com/api.github.com.json @@ -19809,6 +19809,361 @@ } } }, + "/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, + "example": "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.\\-_]+$", + "example": "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", @@ -28404,7 +28759,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" ], @@ -28472,7 +28827,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" ], @@ -28534,7 +28889,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" ], @@ -28581,7 +28936,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" ], @@ -28631,7 +28986,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" ], @@ -28684,7 +29039,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" ], @@ -28734,7 +29089,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" ], @@ -28787,7 +29142,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" ], @@ -28843,7 +29198,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" ], @@ -66566,6 +66921,7 @@ "approved", "dismissed", "replaced", + "invalidated", "all" ], "default": "pending" @@ -149895,7 +150251,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { diff --git a/descriptions/api.github.com/api.github.com.yaml b/descriptions/api.github.com/api.github.com.yaml index 504f985f1e..8a454c10f2 100644 --- a/descriptions/api.github.com/api.github.com.yaml +++ b/descriptions/api.github.com/api.github.com.yaml @@ -14735,6 +14735,271 @@ 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 + example: 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.\\-_]+$" + example: 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 @@ -21205,8 +21470,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 @@ -21241,8 +21508,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 @@ -21275,8 +21544,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 @@ -21304,8 +21575,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 @@ -21334,9 +21607,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 @@ -21366,8 +21640,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 @@ -21396,8 +21672,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 @@ -21427,8 +21705,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 @@ -21459,8 +21739,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 @@ -48980,6 +49262,7 @@ paths: - approved - dismissed - replaced + - invalidated - all default: pending - name: action @@ -110865,6 +111148,7 @@ components: - approved - dismissed - replaced + - invalidated target_id: type: integer description: The identifier of the target the change applies to (issue type, diff --git a/descriptions/api.github.com/dereferenced/api.github.com.2022-11-28.deref.json b/descriptions/api.github.com/dereferenced/api.github.com.2022-11-28.deref.json index 04e44b4e82..14caea9f22 100644 --- a/descriptions/api.github.com/dereferenced/api.github.com.2022-11-28.deref.json +++ b/descriptions/api.github.com/dereferenced/api.github.com.2022-11-28.deref.json @@ -101884,6 +101884,453 @@ } } }, + "/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, + "example": "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.\\-_]+$", + "example": "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", @@ -147435,7 +147882,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" ], @@ -147628,7 +148075,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" ], @@ -147794,7 +148241,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" ], @@ -147876,7 +148323,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" ], @@ -147967,7 +148414,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" ], @@ -148074,7 +148521,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" ], @@ -148197,7 +148644,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" ], @@ -148329,7 +148776,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" ], @@ -148477,7 +148924,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" ], @@ -486091,6 +486538,7 @@ "approved", "dismissed", "replaced", + "invalidated", "all" ], "default": "pending" @@ -486170,7 +486618,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { @@ -486495,7 +486944,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { @@ -486820,7 +487270,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { diff --git a/descriptions/api.github.com/dereferenced/api.github.com.2022-11-28.deref.yaml b/descriptions/api.github.com/dereferenced/api.github.com.2022-11-28.deref.yaml index cde4b16294..5cc0a2dbec 100644 --- a/descriptions/api.github.com/dereferenced/api.github.com.2022-11-28.deref.yaml +++ b/descriptions/api.github.com/dereferenced/api.github.com.2022-11-28.deref.yaml @@ -29946,6 +29946,266 @@ 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: + - *79 + - 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 + example: 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.\\-_]+$" + example: 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: + - *79 + - 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 @@ -38999,8 +39259,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 @@ -39121,8 +39383,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 @@ -39204,8 +39468,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 @@ -39248,8 +39514,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 @@ -39282,9 +39550,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 @@ -39312,8 +39581,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 @@ -39380,8 +39651,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 @@ -39409,8 +39682,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 @@ -39439,8 +39714,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 @@ -92890,6 +93167,7 @@ paths: - approved - dismissed - replaced + - invalidated - all default: pending - name: action @@ -92944,6 +93222,7 @@ paths: - approved - dismissed - replaced + - invalidated target_id: type: integer description: The identifier of the target the change applies diff --git a/descriptions/api.github.com/dereferenced/api.github.com.2026-03-10.deref.json b/descriptions/api.github.com/dereferenced/api.github.com.2026-03-10.deref.json index 99ec83dbaf..7484ecc681 100644 --- a/descriptions/api.github.com/dereferenced/api.github.com.2026-03-10.deref.json +++ b/descriptions/api.github.com/dereferenced/api.github.com.2026-03-10.deref.json @@ -98492,6 +98492,453 @@ } } }, + "/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, + "example": "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.\\-_]+$", + "example": "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", @@ -143670,7 +144117,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" ], @@ -143863,7 +144310,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" ], @@ -144029,7 +144476,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" ], @@ -144111,7 +144558,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" ], @@ -144202,7 +144649,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" ], @@ -144309,7 +144756,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" ], @@ -144432,7 +144879,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" ], @@ -144564,7 +145011,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" ], @@ -144712,7 +145159,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" ], @@ -476659,6 +477106,7 @@ "approved", "dismissed", "replaced", + "invalidated", "all" ], "default": "pending" @@ -476738,7 +477186,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { @@ -477063,7 +477512,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { @@ -477388,7 +477838,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { diff --git a/descriptions/api.github.com/dereferenced/api.github.com.2026-03-10.deref.yaml b/descriptions/api.github.com/dereferenced/api.github.com.2026-03-10.deref.yaml index 87aedd0b14..29184154a6 100644 --- a/descriptions/api.github.com/dereferenced/api.github.com.2026-03-10.deref.yaml +++ b/descriptions/api.github.com/dereferenced/api.github.com.2026-03-10.deref.yaml @@ -29631,6 +29631,266 @@ 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: + - *79 + - 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 + example: 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.\\-_]+$" + example: 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: + - *79 + - 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 @@ -38651,8 +38911,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 @@ -38773,8 +39035,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 @@ -38856,8 +39120,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 @@ -38900,8 +39166,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 @@ -38934,9 +39202,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 @@ -38964,8 +39233,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 @@ -39032,8 +39303,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 @@ -39061,8 +39334,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 @@ -39091,8 +39366,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 @@ -92406,6 +92683,7 @@ paths: - approved - dismissed - replaced + - invalidated - all default: pending - name: action @@ -92460,6 +92738,7 @@ paths: - approved - dismissed - replaced + - invalidated target_id: type: integer description: The identifier of the target the change applies diff --git a/descriptions/api.github.com/dereferenced/api.github.com.deref.json b/descriptions/api.github.com/dereferenced/api.github.com.deref.json index 243c50d722..4636f82a0a 100644 --- a/descriptions/api.github.com/dereferenced/api.github.com.deref.json +++ b/descriptions/api.github.com/dereferenced/api.github.com.deref.json @@ -103962,6 +103962,453 @@ } } }, + "/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, + "example": "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.\\-_]+$", + "example": "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", @@ -149990,7 +150437,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" ], @@ -150183,7 +150630,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" ], @@ -150349,7 +150796,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" ], @@ -150431,7 +150878,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" ], @@ -150522,7 +150969,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" ], @@ -150629,7 +151076,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" ], @@ -150752,7 +151199,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" ], @@ -150884,7 +151331,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" ], @@ -151032,7 +151479,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" ], @@ -497833,6 +498280,7 @@ "approved", "dismissed", "replaced", + "invalidated", "all" ], "default": "pending" @@ -497912,7 +498360,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { @@ -498237,7 +498686,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { @@ -498562,7 +499012,8 @@ "applied", "approved", "dismissed", - "replaced" + "replaced", + "invalidated" ] }, "target_id": { diff --git a/descriptions/api.github.com/dereferenced/api.github.com.deref.yaml b/descriptions/api.github.com/dereferenced/api.github.com.deref.yaml index 5edffdbc28..2ab6111bb3 100644 --- a/descriptions/api.github.com/dereferenced/api.github.com.deref.yaml +++ b/descriptions/api.github.com/dereferenced/api.github.com.deref.yaml @@ -30239,6 +30239,266 @@ 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: + - *79 + - 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 + example: 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.\\-_]+$" + example: 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: + - *79 + - 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 @@ -39330,8 +39590,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 @@ -39452,8 +39714,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 @@ -39535,8 +39799,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 @@ -39579,8 +39845,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 @@ -39613,9 +39881,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 @@ -39643,8 +39912,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. Duri{"code":"deadline_exceeded","msg":"operation timed out"}