diff --git a/.gitmodules b/.gitmodules index b3e72e9d6..6b0a003c1 100644 --- a/.gitmodules +++ b/.gitmodules @@ -128,3 +128,8 @@ url = https://github.com/distilled-mirror/spec-mirror-modal.git ignore = dirty shallow = true +[submodule "packages/render/specs/spec-mirror-render"] + path = packages/render/specs/spec-mirror-render + url = https://github.com/distilled-mirror/spec-mirror-render.git + ignore = dirty + shallow = true diff --git a/packages/render/.generated-specs/render.json b/packages/render/.generated-specs/render.json new file mode 100644 index 000000000..7c2377d9b --- /dev/null +++ b/packages/render/.generated-specs/render.json @@ -0,0 +1,31150 @@ +{ + "smithy": "2.0", + "metadata": { + "suppressions": [ + { + "id": "HttpUriConflict", + "namespace": "*" + }, + { + "id": "HttpMethodSemantics", + "namespace": "*" + }, + { + "id": "UnreferencedShape", + "namespace": "*" + } + ] + }, + "shapes": { + "com.render.api#ListBlueprintsRequestOwnerIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListBlueprintsRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "com.render.api#ListBlueprintsRequestOwnerIdList", + "traits": { + "smithy.api#httpQuery": "ownerId", + "smithy.api#documentation": "The ID of the workspaces to return resources for" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#BlueprintWithCursor": { + "type": "structure", + "members": { + "blueprint": { + "target": "com.render.api#Schema", + "traits": { + "smithy.api#required": {} + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A Blueprint with a cursor" + } + }, + "com.render.api#Schema": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#Status", + "traits": { + "smithy.api#required": {} + } + }, + "autoSync": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "repo": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "branch": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "path": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "lastSync": { + "target": "smithy.api#String" + } + }, + "traits": {} + }, + "com.render.api#Status": { + "type": "enum", + "members": { + "CREATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "created" + } + }, + "PAUSED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "paused" + } + }, + "IN_SYNC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "in_sync" + } + }, + "SYNCING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "syncing" + } + }, + "ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "error" + } + } + }, + "traits": {} + }, + "com.render.api#ListBlueprintsResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#BlueprintWithCursor" + }, + "traits": {} + }, + "com.render.api#ListBlueprintsResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListBlueprintsResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListBlueprints": { + "type": "operation", + "input": { + "target": "com.render.api#ListBlueprintsRequest" + }, + "output": { + "target": "com.render.api#ListBlueprintsResponse" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/blueprints", + "code": 200 + }, + "smithy.api#documentation": "List Blueprints\n\nList Blueprints for the specified workspaces. If no workspaces are provided, returns all Blueprints the API key has access to." + } + }, + "com.render.api#ValidateBlueprintRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the workspace to validate against. Obtain your workspace ID from its Settings page in the Render Dashboard.", + "smithy.api#required": {} + } + }, + "file": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The render.yaml file to validate, as a binary file.", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#ValidateBlueprintResponseErrorsItem": { + "type": "structure", + "members": { + "path": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The path to the field with the error (e.g., `services[0].plan`)" + } + }, + "error": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The error message", + "smithy.api#required": {} + } + }, + "line": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "The line number in the YAML file (1-indexed)" + } + }, + "column": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "The column number in the YAML file (1-indexed)" + } + } + }, + "traits": {} + }, + "com.render.api#ValidateBlueprintResponseErrorsList": { + "type": "list", + "member": { + "target": "com.render.api#ValidateBlueprintResponseErrorsItem" + }, + "traits": { + "smithy.api#documentation": "A list of validation errors. Only present if `valid` is `false`." + } + }, + "com.render.api#ValidateBlueprintResponsePlanServicesList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": { + "smithy.api#documentation": "The names of services that would be created as part of the Blueprint." + } + }, + "com.render.api#ValidateBlueprintResponsePlanDatabasesList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": { + "smithy.api#documentation": "The names of Render Postgres databases that would be created as part of the Blueprint." + } + }, + "com.render.api#ValidateBlueprintResponsePlanKeyValueList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": { + "smithy.api#documentation": "The names of Render Key Value instances that would be created as part of the Blueprint." + } + }, + "com.render.api#ValidateBlueprintResponsePlanEnvGroupsList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": { + "smithy.api#documentation": "The names of environment groups that would be created as part of the Blueprint." + } + }, + "com.render.api#ValidateBlueprintResponsePlanWorkflowsList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": { + "smithy.api#documentation": "The names of workflows that would be created as part of the Blueprint." + } + }, + "com.render.api#ValidateBlueprintResponsePlan": { + "type": "structure", + "members": { + "services": { + "target": "com.render.api#ValidateBlueprintResponsePlanServicesList", + "traits": { + "smithy.api#documentation": "The names of services that would be created as part of the Blueprint." + } + }, + "databases": { + "target": "com.render.api#ValidateBlueprintResponsePlanDatabasesList", + "traits": { + "smithy.api#documentation": "The names of Render Postgres databases that would be created as part of the Blueprint." + } + }, + "keyValue": { + "target": "com.render.api#ValidateBlueprintResponsePlanKeyValueList", + "traits": { + "smithy.api#documentation": "The names of Render Key Value instances that would be created as part of the Blueprint." + } + }, + "envGroups": { + "target": "com.render.api#ValidateBlueprintResponsePlanEnvGroupsList", + "traits": { + "smithy.api#documentation": "The names of environment groups that would be created as part of the Blueprint." + } + }, + "workflows": { + "target": "com.render.api#ValidateBlueprintResponsePlanWorkflowsList", + "traits": { + "smithy.api#documentation": "The names of workflows that would be created as part of the Blueprint." + } + }, + "totalActions": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "The total number of actions that would be performed by the Blueprint. In addition to created resources, this includes modifications to individual configuration fields." + } + } + }, + "traits": { + "smithy.api#documentation": "A summary of the resources that would be created as part of the Blueprint. Only present if `valid` is `true`." + } + }, + "com.render.api#ValidateBlueprintResponse": { + "type": "structure", + "members": { + "valid": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "If `true`, the Blueprint validated successfully. If `false`, at least one validation error occurred.", + "smithy.api#required": {} + } + }, + "errors": { + "target": "com.render.api#ValidateBlueprintResponseErrorsList", + "traits": { + "smithy.api#documentation": "A list of validation errors. Only present if `valid` is `false`." + } + }, + "plan": { + "target": "com.render.api#ValidateBlueprintResponsePlan", + "traits": { + "smithy.api#documentation": "A summary of the resources that would be created as part of the Blueprint. Only present if `valid` is `true`." + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ValidateBlueprint": { + "type": "operation", + "input": { + "target": "com.render.api#ValidateBlueprintRequest" + }, + "output": { + "target": "com.render.api#ValidateBlueprintResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/blueprints/validate", + "code": 200, + "contentType": "multipart" + }, + "smithy.api#documentation": "Validate Blueprint\n\nValidate a `render.yaml` Blueprint file without creating or modifying any resources. This endpoint checks the syntax and structure of the Blueprint, validates that all required fields are present, and returns a plan indicating the resources that would be created.\n\nRequests to this endpoint use `Content-Type: multipart/form-data`. The request body (including the Blueprint file) cannot exceed 10MB in size.", + "com.distilled.openapi#contentType": "multipart" + } + }, + "com.render.api#TeamMemberRole": { + "type": "enum", + "members": { + "ADMIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ADMIN" + } + }, + "DEVELOPER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DEVELOPER" + } + }, + "WORKSPACE_CONTRIBUTOR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WORKSPACE_CONTRIBUTOR" + } + }, + "WORKSPACE_BILLING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WORKSPACE_BILLING" + } + }, + "WORKSPACE_VIEWER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "WORKSPACE_VIEWER" + } + } + }, + "traits": { + "smithy.api#documentation": "The member's workspace role. Values are always returned in uppercase." + } + }, + "com.render.api#UpdateWorkspaceMemberRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the workspace to return resources for" + } + }, + "userId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the user (Render object ID with a `usr-` prefix)." + } + }, + "role": { + "target": "com.render.api#TeamMemberRole", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#TeamMember": { + "type": "structure", + "members": { + "userId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "email": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#TeamMemberStatus", + "traits": { + "smithy.api#required": {} + } + }, + "role": { + "target": "com.render.api#TeamMemberRole", + "traits": { + "smithy.api#required": {} + } + }, + "mfaEnabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#TeamMemberStatus": { + "type": "enum", + "members": { + "ACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "active" + } + }, + "INACTIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "inactive" + } + } + }, + "traits": {} + }, + "com.render.api#UpdateWorkspaceMember": { + "type": "operation", + "input": { + "target": "com.render.api#UpdateWorkspaceMemberRequest" + }, + "output": { + "target": "com.render.api#TeamMember" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + }, + { + "target": "com.render.api#Conflict" + } + ], + "traits": { + "smithy.api#http": { + "method": "PATCH", + "uri": "/owners/{ownerId}/members/{userId}", + "code": 200 + }, + "smithy.api#documentation": "Update workspace member role\n\nUpdate the role of an existing workspace member." + } + }, + "com.render.api#RemoveWorkspaceMemberRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the workspace to return resources for" + } + }, + "userId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the user (Render object ID with a `usr-` prefix)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RemoveWorkspaceMember": { + "type": "operation", + "input": { + "target": "com.render.api#RemoveWorkspaceMemberRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/owners/{ownerId}/members/{userId}", + "code": 200 + }, + "smithy.api#documentation": "Remove workspace member\n\nRemove a user from the specified workspace." + } + }, + "com.render.api#RetrieveBlueprintRequest": { + "type": "structure", + "members": { + "blueprintId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the Blueprint" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrieveBlueprintResponseStatus": { + "type": "enum", + "members": { + "CREATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "created" + } + }, + "PAUSED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "paused" + } + }, + "IN_SYNC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "in_sync" + } + }, + "SYNCING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "syncing" + } + }, + "ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "error" + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveBlueprintResponseResourcesItemType": { + "type": "enum", + "members": { + "STATIC_SITE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "static_site" + } + }, + "WEB_SERVICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "web_service" + } + }, + "PRIVATE_SERVICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "private_service" + } + }, + "BACKGROUND_WORKER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "background_worker" + } + }, + "CRON_JOB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cron_job" + } + }, + "REDIS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "redis" + } + }, + "KEY_VALUE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "key_value" + } + }, + "POSTGRES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres" + } + }, + "ENVIRONMENT_GROUP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "environment_group" + } + }, + "ARTIFACT_SOURCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "artifact_source" + } + } + }, + "traits": { + "smithy.api#documentation": "type of the resource (ex. web_service or postgres)" + } + }, + "com.render.api#RetrieveBlueprintResponseResourcesItem": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "type": { + "target": "com.render.api#RetrieveBlueprintResponseResourcesItemType", + "traits": { + "smithy.api#documentation": "type of the resource (ex. web_service or postgres)", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveBlueprintResponseResourcesList": { + "type": "list", + "member": { + "target": "com.render.api#RetrieveBlueprintResponseResourcesItem" + }, + "traits": {} + }, + "com.render.api#RetrieveBlueprintResponse": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#RetrieveBlueprintResponseStatus", + "traits": { + "smithy.api#required": {} + } + }, + "autoSync": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "repo": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "branch": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "path": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "lastSync": { + "target": "smithy.api#String" + }, + "resources": { + "target": "com.render.api#RetrieveBlueprintResponseResourcesList", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#RetrieveBlueprint": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveBlueprintRequest" + }, + "output": { + "target": "com.render.api#RetrieveBlueprintResponse" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/blueprints/{blueprintId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve Blueprint\n\nRetrieve the Blueprint with the provided ID." + } + }, + "com.render.api#UpdateBlueprintRequest": { + "type": "structure", + "members": { + "blueprintId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the Blueprint" + } + }, + "name": { + "target": "smithy.api#String" + }, + "autoSync": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Automatically sync changes to render.yaml" + } + }, + "path": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Path to the Blueprint file in the repository" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UpdateBlueprintResponse": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#Status", + "traits": { + "smithy.api#required": {} + } + }, + "autoSync": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "repo": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "branch": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "path": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "lastSync": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#UpdateBlueprint": { + "type": "operation", + "input": { + "target": "com.render.api#UpdateBlueprintRequest" + }, + "output": { + "target": "com.render.api#UpdateBlueprintResponse" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "PATCH", + "uri": "/blueprints/{blueprintId}", + "code": 200 + }, + "smithy.api#documentation": "Update Blueprint\n\nUpdate the Blueprint with the provided ID." + } + }, + "com.render.api#DisconnectBlueprintRequest": { + "type": "structure", + "members": { + "blueprintId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the Blueprint" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DisconnectBlueprint": { + "type": "operation", + "input": { + "target": "com.render.api#DisconnectBlueprintRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/blueprints/{blueprintId}", + "code": 200 + }, + "smithy.api#documentation": "Disconnect Blueprint\n\nDisconnect the Blueprint with the provided ID.\n\nDisconnecting a Blueprint stops automatic resource syncing via the associated `render.yaml` file. It does not _delete_ any services or other resources that were managed by the blueprint." + } + }, + "com.render.api#ListBlueprintSyncsRequest": { + "type": "structure", + "members": { + "blueprintId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the Blueprint" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#SyncWithCursor": { + "type": "structure", + "members": { + "sync": { + "target": "com.render.api#SyncWithCursorSync", + "traits": { + "smithy.api#required": {} + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A Blueprint sync with a cursor" + } + }, + "com.render.api#SyncWithCursorSyncCommit": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#SyncWithCursorSyncState": { + "type": "enum", + "members": { + "CREATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "created" + } + }, + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "RUNNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "running" + } + }, + "ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "error" + } + }, + "SUCCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "success" + } + } + }, + "traits": {} + }, + "com.render.api#SyncWithCursorSync": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "commit": { + "target": "com.render.api#SyncWithCursorSyncCommit", + "traits": { + "smithy.api#required": {} + } + }, + "startedAt": { + "target": "smithy.api#String" + }, + "completedAt": { + "target": "smithy.api#String" + }, + "state": { + "target": "com.render.api#SyncWithCursorSyncState", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#ListBlueprintSyncsResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#SyncWithCursor" + }, + "traits": {} + }, + "com.render.api#ListBlueprintSyncsResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListBlueprintSyncsResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListBlueprintSyncs": { + "type": "operation", + "input": { + "target": "com.render.api#ListBlueprintSyncsRequest" + }, + "output": { + "target": "com.render.api#ListBlueprintSyncsResponse" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/blueprints/{blueprintId}/syncs", + "code": 200 + }, + "smithy.api#documentation": "List Blueprint syncs\n\nList syncs for the Blueprint with the provided ID." + } + }, + "com.render.api#ListDedicatedIpsRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "ownerId", + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the workspace to list dedicated IP sets for." + } + }, + "environmentId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "environmentId", + "smithy.api#documentation": "Filter dedicated IP sets limited to this environment. Excludes workspace-scoped dedicated IP sets.\n\nThe environment must belong to the workspace named by `ownerId`.\n" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DedicatedIP": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Unique identifier for this dedicated IP set.", + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Descriptive name for this dedicated IP set.", + "smithy.api#required": {} + } + }, + "description": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Free-form description for this dedicated IP set.", + "smithy.api#required": {} + } + }, + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the workspace that owns this dedicated IP set.", + "smithy.api#required": {} + } + }, + "region": { + "target": "com.render.api#Region", + "traits": { + "smithy.api#required": {} + } + }, + "environmentIds": { + "target": "com.render.api#DedicatedIPEnvironmentIdsList", + "traits": { + "smithy.api#documentation": "Environments this dedicated IP set applies to. If empty, it applies to all services in the workspace within its region.\n", + "smithy.api#required": {} + } + }, + "ips": { + "target": "com.render.api#DedicatedIPIpsList", + "traits": { + "smithy.api#documentation": "The IPv4 addresses assigned to this dedicated IP set.\n", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#DedicatedIPStatus", + "traits": { + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Time the dedicated IP set was created.", + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Time the dedicated IP set was last updated." + } + } + }, + "traits": {} + }, + "com.render.api#Region": { + "type": "enum", + "members": { + "FRANKFURT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "frankfurt" + } + }, + "OREGON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "oregon" + } + }, + "OHIO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ohio" + } + }, + "SINGAPORE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "singapore" + } + }, + "VIRGINIA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "virginia" + } + } + }, + "traits": { + "smithy.api#documentation": "Defaults to \"oregon\"" + } + }, + "com.render.api#DedicatedIPEnvironmentIdsList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": { + "smithy.api#documentation": "Environments this dedicated IP set applies to. If empty, it applies to all services in the workspace within its region.\n" + } + }, + "com.render.api#DedicatedIPIpsList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": { + "smithy.api#documentation": "The IPv4 addresses assigned to this dedicated IP set.\n" + } + }, + "com.render.api#DedicatedIPStatus": { + "type": "enum", + "members": { + "UNKNOWN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNKNOWN" + } + }, + "CREATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CREATING" + } + }, + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING" + } + }, + "RUNNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RUNNING" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + }, + "DELETING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETING" + } + }, + "DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DELETED" + } + } + }, + "traits": { + "smithy.api#documentation": "Current status of a dedicated IP set." + } + }, + "com.render.api#ListDedicatedIpsResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#DedicatedIP" + }, + "traits": {} + }, + "com.render.api#ListDedicatedIpsResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListDedicatedIpsResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListDedicatedIps": { + "type": "operation", + "input": { + "target": "com.render.api#ListDedicatedIpsRequest" + }, + "output": { + "target": "com.render.api#ListDedicatedIpsResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/dedicated-ips", + "code": 200 + }, + "smithy.api#documentation": "List dedicated IPs\n\nList dedicated IP sets for a workspace." + } + }, + "com.render.api#CreateDedicatedIpRequestEnvironmentIdsList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": { + "smithy.api#documentation": "Environments to scope the dedicated IP set to. If omitted or empty, it applies to all services in the workspace within its region.\n" + } + }, + "com.render.api#CreateDedicatedIpRequest": { + "type": "structure", + "members": { + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Name for the dedicated IP set.", + "smithy.api#required": {} + } + }, + "description": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Free-form description for the dedicated IP set." + } + }, + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the workspace that will own this dedicated IP set.", + "smithy.api#required": {} + } + }, + "region": { + "target": "com.render.api#Region", + "traits": { + "smithy.api#required": {} + } + }, + "environmentIds": { + "target": "com.render.api#CreateDedicatedIpRequestEnvironmentIdsList", + "traits": { + "smithy.api#documentation": "Environments to scope the dedicated IP set to. If omitted or empty, it applies to all services in the workspace within its region.\n" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#CreateDedicatedIp": { + "type": "operation", + "input": { + "target": "com.render.api#CreateDedicatedIpRequest" + }, + "output": { + "target": "com.render.api#DedicatedIP" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#Conflict" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/dedicated-ips", + "code": 200 + }, + "smithy.api#documentation": "Create dedicated IP set\n\nCreate a dedicated IP set. Provisioning an IP set is asynchronous. The response returns immediately with `status: CREATING` and `ips: []`. When provisioning completes, status changes to `RUNNING` and `ips` contains your assigned addresses.\n\nIf `environmentIds` is omitted or empty, this IP set applies to all services in the workspace in the selected region. Otherwise, it applies only to services in the listed environments in that region." + } + }, + "com.render.api#RetrieveDedicatedIpRequest": { + "type": "structure", + "members": { + "dedicatedIpId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the dedicated IP set" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrieveDedicatedIp": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveDedicatedIpRequest" + }, + "output": { + "target": "com.render.api#DedicatedIP" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/dedicated-ips/{dedicatedIpId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve dedicated IP set\n\nRetrieve the dedicated IP set with the provided ID." + } + }, + "com.render.api#UpdateDedicatedIpRequestEnvironmentIdsList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#UpdateDedicatedIpRequest": { + "type": "structure", + "members": { + "dedicatedIpId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the dedicated IP set" + } + }, + "name": { + "target": "smithy.api#String" + }, + "description": { + "target": "smithy.api#String" + }, + "environmentIds": { + "target": "com.render.api#UpdateDedicatedIpRequestEnvironmentIdsList" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UpdateDedicatedIp": { + "type": "operation", + "input": { + "target": "com.render.api#UpdateDedicatedIpRequest" + }, + "output": { + "target": "com.render.api#DedicatedIP" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + }, + { + "target": "com.render.api#Conflict" + } + ], + "traits": { + "smithy.api#http": { + "method": "PATCH", + "uri": "/dedicated-ips/{dedicatedIpId}", + "code": 200 + }, + "smithy.api#documentation": "Update dedicated IP set\n\nUpdate the dedicated IP set with the provided ID. All fields are optional. Omitted fields are left unchanged. To switch from environment-scoped to workspace-scoped, provide `environmentIds: []`." + } + }, + "com.render.api#DeleteDedicatedIpRequest": { + "type": "structure", + "members": { + "dedicatedIpId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the dedicated IP set" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeleteDedicatedIp": { + "type": "operation", + "input": { + "target": "com.render.api#DeleteDedicatedIpRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/dedicated-ips/{dedicatedIpId}", + "code": 200 + }, + "smithy.api#documentation": "Delete dedicated IP set\n\nDelete the dedicated IP set with the provided ID." + } + }, + "com.render.api#ListDisksRequestOwnerIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListDisksRequestDiskIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListDisksRequestNameList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListDisksRequestServiceIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListDisksRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "com.render.api#ListDisksRequestOwnerIdList", + "traits": { + "smithy.api#httpQuery": "ownerId", + "smithy.api#documentation": "The ID of the workspaces to return resources for" + } + }, + "diskId": { + "target": "com.render.api#ListDisksRequestDiskIdList", + "traits": { + "smithy.api#httpQuery": "diskId", + "smithy.api#documentation": "Filter by disk IDs" + } + }, + "name": { + "target": "com.render.api#ListDisksRequestNameList", + "traits": { + "smithy.api#httpQuery": "name", + "smithy.api#documentation": "Filter by name" + } + }, + "createdBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "createdBefore", + "smithy.api#documentation": "Filter for resources created before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "createdAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "createdAfter", + "smithy.api#documentation": "Filter for resources created after a certain time (specified as an ISO 8601 timestamp)" + } + }, + "updatedBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "updatedBefore", + "smithy.api#documentation": "Filter for resources updated before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "updatedAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "updatedAfter", + "smithy.api#documentation": "Filter for resources updated after a certain time (specified as an ISO 8601 timestamp)" + } + }, + "serviceId": { + "target": "com.render.api#ListDisksRequestServiceIdList", + "traits": { + "smithy.api#httpQuery": "serviceId", + "smithy.api#documentation": "Filter for resources by service ID" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DiskWithCursor": { + "type": "structure", + "members": { + "disk": { + "target": "com.render.api#Schema2", + "traits": { + "smithy.api#required": {} + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Schema2": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "sizeGB": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "mountPath": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "serviceId": { + "target": "smithy.api#String" + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#ListDisksResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#DiskWithCursor" + }, + "traits": {} + }, + "com.render.api#ListDisksResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListDisksResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListDisks": { + "type": "operation", + "input": { + "target": "com.render.api#ListDisksRequest" + }, + "output": { + "target": "com.render.api#ListDisksResponse" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/disks", + "code": 200 + }, + "smithy.api#documentation": "List disks\n\nList persistent disks matching the provided filters. If no filters are provided, returns all disks you have permissions to view." + } + }, + "com.render.api#AddDiskRequest": { + "type": "structure", + "members": { + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "sizeGB": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "mountPath": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#AddDiskResponse": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "sizeGB": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "mountPath": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "serviceId": { + "target": "smithy.api#String" + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#AddDisk": { + "type": "operation", + "input": { + "target": "com.render.api#AddDiskRequest" + }, + "output": { + "target": "com.render.api#AddDiskResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/disks", + "code": 200 + }, + "smithy.api#documentation": "Add disk\n\nAttach a persistent disk to a web service, private service, or background worker.\n\nThe service must be redeployed for the disk to be attached." + } + }, + "com.render.api#RetrieveDiskRequest": { + "type": "structure", + "members": { + "diskId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the disk" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrieveDisk": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveDiskRequest" + }, + "output": { + "target": "com.render.api#Schema2" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/disks/{diskId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve disk\n\nRetrieve the persistent disk with the provided ID." + } + }, + "com.render.api#UpdateDiskRequest": { + "type": "structure", + "members": { + "diskId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the disk" + } + }, + "name": { + "target": "smithy.api#String" + }, + "sizeGB": { + "target": "smithy.api#Integer" + }, + "mountPath": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UpdateDisk": { + "type": "operation", + "input": { + "target": "com.render.api#UpdateDiskRequest" + }, + "output": { + "target": "com.render.api#Schema2" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "PATCH", + "uri": "/disks/{diskId}", + "code": 200 + }, + "smithy.api#documentation": "Update disk\n\nUpdate the persistent disk with the provided ID.\n\nThe disk's associated service must be deployed and active for updates to take effect.\n\nWhen resizing a disk, the new size must be greater than the current size." + } + }, + "com.render.api#DeleteDiskRequest": { + "type": "structure", + "members": { + "diskId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the disk" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeleteDisk": { + "type": "operation", + "input": { + "target": "com.render.api#DeleteDiskRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/disks/{diskId}", + "code": 200 + }, + "smithy.api#documentation": "Delete disk\n\nDelete a persistent disk attached to a service.\n\n**All data on the disk will be lost.** The disk's associated service will immediately lose access to it." + } + }, + "com.render.api#ListSnapshotsRequest": { + "type": "structure", + "members": { + "diskId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the disk" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DiskSnapshot": { + "type": "structure", + "members": { + "createdAt": { + "target": "smithy.api#String" + }, + "snapshotKey": { + "target": "smithy.api#String" + }, + "instanceId": { + "target": "smithy.api#String" + } + }, + "traits": {} + }, + "com.render.api#ListSnapshotsResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#DiskSnapshot" + }, + "traits": {} + }, + "com.render.api#ListSnapshotsResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListSnapshotsResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListSnapshots": { + "type": "operation", + "input": { + "target": "com.render.api#ListSnapshotsRequest" + }, + "output": { + "target": "com.render.api#ListSnapshotsResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/disks/{diskId}/snapshots", + "code": 200 + }, + "smithy.api#documentation": "List snapshots\n\nList snapshots for the persistent disk with the provided ID. Each snapshot is a point-in-time copy of the disk's data." + } + }, + "com.render.api#RestoreSnapshotRequest": { + "type": "structure", + "members": { + "diskId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the disk" + } + }, + "snapshotKey": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "instanceId": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RestoreSnapshot": { + "type": "operation", + "input": { + "target": "com.render.api#RestoreSnapshotRequest" + }, + "output": { + "target": "com.render.api#Schema2" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/disks/{diskId}/snapshots/restore", + "code": 200 + }, + "smithy.api#documentation": "Restore snapshot\n\nRestore a persistent disk to an available snapshot.\n\n**This operation is irreversible.** It will overwrite the current disk data. It might also trigger a service deploy.\n\nSnapshot keys returned from the [List snapshots](https://api-docs.render.com/reference/list-snapshots) endpoint expire after 24 hours. If a snapshot key has expired, query the endpoint again for a new key." + } + }, + "com.render.api#User": { + "type": "structure", + "members": { + "email": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#GetUser": { + "type": "operation", + "input": { + "target": "smithy.api#Unit" + }, + "output": { + "target": "com.render.api#User" + }, + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/users", + "code": 200 + }, + "smithy.api#documentation": "Get the authenticated user\n\nRetrieve the user associated with the provided API key." + } + }, + "com.render.api#ListOwnersRequestNameList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListOwnersRequestEmailList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListOwnersRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.render.api#ListOwnersRequestNameList", + "traits": { + "smithy.api#httpQuery": "name", + "smithy.api#documentation": "Only return workspaces with one of the provided names. Only exact matches are returned." + } + }, + "email": { + "target": "com.render.api#ListOwnersRequestEmailList", + "traits": { + "smithy.api#httpQuery": "email", + "smithy.api#documentation": "Only return workspaces owned by one of the provided email addresses." + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#OwnerWithCursor": { + "type": "structure", + "members": { + "owner": { + "target": "com.render.api#Owner" + }, + "cursor": { + "target": "smithy.api#String" + } + }, + "traits": {} + }, + "com.render.api#Owner": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "email": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "ipAllowList": { + "target": "com.render.api#OwnerIpAllowListList" + }, + "twoFactorAuthEnabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Whether two-factor authentication is enabled for the owner. Only present if `type` is `user`." + } + }, + "type": { + "target": "com.render.api#OwnerType", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#CidrBlockAndDescription": { + "type": "structure", + "members": { + "cidrBlock": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "description": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "User-provided description of the CIDR block", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#OwnerIpAllowListList": { + "type": "list", + "member": { + "target": "com.render.api#CidrBlockAndDescription" + }, + "traits": {} + }, + "com.render.api#OwnerType": { + "type": "enum", + "members": { + "USER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "user" + } + }, + "TEAM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "team" + } + } + }, + "traits": {} + }, + "com.render.api#ListOwnersResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#OwnerWithCursor" + }, + "traits": {} + }, + "com.render.api#ListOwnersResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListOwnersResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListOwners": { + "type": "operation", + "input": { + "target": "com.render.api#ListOwnersRequest" + }, + "output": { + "target": "com.render.api#ListOwnersResponse" + }, + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/owners", + "code": 200 + }, + "smithy.api#documentation": "List workspaces\n\nList the workspaces that your API key has access to, optionally filtered by name or owner email address." + } + }, + "com.render.api#RetrieveOwnerRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the user or team" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrieveOwner": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveOwnerRequest" + }, + "output": { + "target": "com.render.api#Owner" + }, + "errors": [ + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/owners/{ownerId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve workspace\n\nRetrieve the workspace with the provided ID.\n\nWorkspace IDs start with `tea-`. If you provide a user ID (starts with `own-`), this endpoint returns the user's default workspace." + } + }, + "com.render.api#RetrieveOwnerMembersRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the team" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#TeamMembers": { + "type": "list", + "member": { + "target": "com.render.api#TeamMember" + }, + "traits": {} + }, + "com.render.api#RetrieveOwnerMembersResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#TeamMembers", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#RetrieveOwnerMembers": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveOwnerMembersRequest" + }, + "output": { + "target": "com.render.api#RetrieveOwnerMembersResponse" + }, + "errors": [ + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/owners/{ownerId}/members", + "code": 200 + }, + "smithy.api#documentation": "List workspace members\n\nRetrieves the list of users belonging to the workspace with the provided ID." + } + }, + "com.render.api#ListOwnerAuditLogsRequestDirection": { + "type": "enum", + "members": { + "FORWARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "forward" + } + }, + "BACKWARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "backward" + } + } + }, + "traits": {} + }, + "com.render.api#ListOwnerAuditLogsRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the workspace to return resources for" + } + }, + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Start time for filtering audit logs (ISO 8601 format)" + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "End time for filtering audit logs (ISO 8601 format)" + } + }, + "direction": { + "target": "com.render.api#ListOwnerAuditLogsRequestDirection", + "traits": { + "smithy.api#httpQuery": "direction", + "smithy.api#documentation": "The direction to query logs for. Backward will return most recent logs first.\nForward will start with the oldest logs in the time range.\n" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of audit log items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#AuditLogWithCursor": { + "type": "structure", + "members": { + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "auditLog": { + "target": "com.render.api#AuditLog", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#AuditLog": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Unique identifier for the audit log entry", + "smithy.api#required": {} + } + }, + "timestamp": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "When the event occurred (ISO 8601 format)", + "smithy.api#required": {} + } + }, + "event": { + "target": "com.render.api#AuditLogEvent", + "traits": { + "smithy.api#documentation": "The type of event that occurred", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#AuditLogStatus", + "traits": { + "smithy.api#documentation": "The status of the event", + "smithy.api#required": {} + } + }, + "actor": { + "target": "com.render.api#AuditLogActor", + "traits": { + "smithy.api#required": {} + } + }, + "metadata": { + "target": "com.render.api#AuditLogMetadataMap", + "traits": { + "smithy.api#documentation": "Additional context information about the event", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#AuditLogEvent": { + "type": "enum", + "members": { + "ACCEPTORGINVITEEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AcceptOrgInviteEvent" + } + }, + "ACCEPTTEAMINVITEEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AcceptTeamInviteEvent" + } + }, + "ADDORGMEMBEREVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AddOrgMemberEvent" + } + }, + "APPLYBLUEPRINTEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ApplyBlueprintEvent" + } + }, + "CHANGEENVIRONMENTPROTECTIONEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ChangeEnvironmentProtectionEvent" + } + }, + "CHANGEORG2FAENFORCEMENTEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ChangeOrg2FAEnforcementEvent" + } + }, + "CHANGEORGALLOWEDLOGINMETHODSEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ChangeOrgAllowedLoginMethodsEvent" + } + }, + "CHANGEORGNAMEEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ChangeOrgNameEvent" + } + }, + "CHANGEORGROLEEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ChangeOrgRoleEvent" + } + }, + "CHANGETEAM2FAENFORCEMENTEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ChangeTeam2FAEnforcementEvent" + } + }, + "CHANGETEAMALLOWEDLOGINMETHODSEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ChangeTeamAllowedLoginMethodsEvent" + } + }, + "CHANGETEAMMEMBERROLEEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ChangeTeamMemberRoleEvent" + } + }, + "CHANGEWORKSPACEDEPLOYHANDLINGEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ChangeWorkspaceDeployHandlingEvent" + } + }, + "CHANGEWORKSPACEPRIVACYEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ChangeWorkspacePrivacyEvent" + } + }, + "CREATEARTIFACTSOURCEEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreateArtifactSourceEvent" + } + }, + "CREATECRONJOBEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreateCronJobEvent" + } + }, + "CREATEENVVARSEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreateEnvVarsEvent" + } + }, + "CREATEENVIRONMENTEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreateEnvironmentEvent" + } + }, + "CREATEORGDOMAINEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreateOrgDomainEvent" + } + }, + "CREATEOTELINTEGRATIONEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreateOtelIntegrationEvent" + } + }, + "CREATEPOSTGRESEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreatePostgresEvent" + } + }, + "CREATEPRIVATELINKEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreatePrivateLinkEvent" + } + }, + "CREATEPROJECTEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreateProjectEvent" + } + }, + "CREATEREDISEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreateRedisEvent" + } + }, + "CREATESSOCONNECTIONEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreateSSOConnectionEvent" + } + }, + "CREATESAVEDSEARCHEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreateSavedSearchEvent" + } + }, + "CREATESERVERDISKEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreateServerDiskEvent" + } + }, + "CREATESERVEREVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreateServerEvent" + } + }, + "CREATEWEBHOOKEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreateWebhookEvent" + } + }, + "CREATEWORKSPACEEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CreateWorkspaceEvent" + } + }, + "DELETECRONJOBEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeleteCronJobEvent" + } + }, + "DELETEENVGROUPEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeleteEnvGroupEvent" + } + }, + "DELETEENVVARSEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeleteEnvVarsEvent" + } + }, + "DELETEENVIRONMENTEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeleteEnvironmentEvent" + } + }, + "DELETEORGDOMAINEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeleteOrgDomainEvent" + } + }, + "DELETEOTELINTEGRATIONEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeleteOtelIntegrationEvent" + } + }, + "DELETEPOSTGRESEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeletePostgresEvent" + } + }, + "DELETEPRIVATELINKEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeletePrivateLinkEvent" + } + }, + "DELETEPROJECTEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeleteProjectEvent" + } + }, + "DELETEREDISEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeleteRedisEvent" + } + }, + "DELETESSOCONNECTIONEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeleteSSOConnectionEvent" + } + }, + "DELETESAVEDSEARCHEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeleteSavedSearchEvent" + } + }, + "DELETESERVERDISKEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeleteServerDiskEvent" + } + }, + "DELETESERVEREVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeleteServerEvent" + } + }, + "DELETEWEBHOOKEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeleteWebhookEvent" + } + }, + "DELETEWORKSPACEEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DeleteWorkspaceEvent" + } + }, + "DOCUMENTDOWNLOADEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DocumentDownloadEvent" + } + }, + "DOWNLOADDATABASEBACKUPEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DownloadDatabaseBackupEvent" + } + }, + "ENABLEREDISINTERNALAUTHEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EnableRedisInternalAuthEvent" + } + }, + "INVITETOORGEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InviteToOrgEvent" + } + }, + "INVITETOTEAMEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "InviteToTeamEvent" + } + }, + "JOINTEAMEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "JoinTeamEvent" + } + }, + "LOGINEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LoginEvent" + } + }, + "LOGOUTEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LogoutEvent" + } + }, + "MAINTENANCEMODEENABLEDEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MaintenanceModeEnabledEvent" + } + }, + "MAINTENANCEMODEURIUPDATEDEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MaintenanceModeURIUpdatedEvent" + } + }, + "MOVEENVIRONMENTRESOURCEEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MoveEnvironmentResourceEvent" + } + }, + "PROVISIONORGANIZATIONSCIMTOKEN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ProvisionOrganizationSCIMToken" + } + }, + "REMOVEORGMEMBEREVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RemoveOrgMemberEvent" + } + }, + "REMOVEUSERFROMTEAMEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RemoveUserFromTeamEvent" + } + }, + "RESTOREDISKSNAPSHOTEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RestoreDiskSnapshotEvent" + } + }, + "RESUMEPOSTGRESEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ResumePostgresEvent" + } + }, + "RESUMESERVICEEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ResumeServiceEvent" + } + }, + "REVOKEORGANIZATIONSCIMTOKEN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RevokeOrganizationSCIMToken" + } + }, + "SIGNNDAEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SignNDAEvent" + } + }, + "ENDSHELLEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EndShellEvent" + } + }, + "STARTSHELLEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "StartShellEvent" + } + }, + "SUSPENDPOSTGRESEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SuspendPostgresEvent" + } + }, + "SUSPENDSERVICEEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SuspendServiceEvent" + } + }, + "UPDATEENVVARSEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UpdateEnvVarsEvent" + } + }, + "UPDATEIPALLOWLISTEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UpdateIPAllowListEvent" + } + }, + "UPDATEOTELINTEGRATIONEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UpdateOtelIntegrationEvent" + } + }, + "UPDATESSOCONNECTIONEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UpdateSSOConnectionEvent" + } + }, + "UPDATESERVICENAMEEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UpdateServiceNameEvent" + } + }, + "UPDATEWEBHOOKEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UpdateWebhookEvent" + } + }, + "VERIFYORGDOMAINEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "VerifyOrgDomainEvent" + } + }, + "VIEWCONNECTIONINFOEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ViewConnectionInfoEvent" + } + }, + "VIEWENVVARVALUESEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ViewEnvVarValuesEvent" + } + }, + "GRANTOAUTHACCESSEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GrantOAuthAccessEvent" + } + }, + "REVOKEOAUTHACCESSEVENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RevokeOAuthAccessEvent" + } + } + }, + "traits": { + "smithy.api#documentation": "The type of event that occurred" + } + }, + "com.render.api#AuditLogStatus": { + "type": "enum", + "members": { + "SUCCESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "success" + } + }, + "ERROR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "error" + } + } + }, + "traits": { + "smithy.api#documentation": "The status of the event" + } + }, + "com.render.api#AuditLogActor": { + "type": "structure", + "members": { + "type": { + "target": "com.render.api#AuditLogActorType", + "traits": { + "smithy.api#documentation": "The type of actor that performed the action", + "smithy.api#required": {} + } + }, + "email": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Email address of the actor (if applicable)" + } + }, + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Unique identifier of the actor (if applicable)" + } + } + }, + "traits": {} + }, + "com.render.api#AuditLogActorType": { + "type": "enum", + "members": { + "USER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "user" + } + }, + "REST_API": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rest_api" + } + }, + "SYSTEM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "system" + } + } + }, + "traits": { + "smithy.api#documentation": "The type of actor that performed the action" + } + }, + "com.render.api#AuditLogMetadataMap": { + "type": "map", + "key": { + "target": "smithy.api#String" + }, + "value": { + "target": "smithy.api#String" + }, + "traits": { + "smithy.api#documentation": "Additional context information about the event" + } + }, + "com.render.api#ListOwnerAuditLogsResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#AuditLogWithCursor" + }, + "traits": {} + }, + "com.render.api#ListOwnerAuditLogsResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListOwnerAuditLogsResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListOwnerAuditLogs": { + "type": "operation", + "input": { + "target": "com.render.api#ListOwnerAuditLogsRequest" + }, + "output": { + "target": "com.render.api#ListOwnerAuditLogsResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/owners/{ownerId}/audit-logs", + "code": 200 + }, + "smithy.api#documentation": "List workspace audit logs\n\nRetrieve audit logs for a specific workspace with optional filtering and pagination." + } + }, + "com.render.api#ListOrganizationAuditLogsRequestDirection": { + "type": "enum", + "members": { + "FORWARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "forward" + } + }, + "BACKWARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "backward" + } + } + }, + "traits": {} + }, + "com.render.api#ListOrganizationAuditLogsRequest": { + "type": "structure", + "members": { + "orgId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The unique identifier of the organization" + } + }, + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Start time for filtering audit logs (ISO 8601 format)" + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "End time for filtering audit logs (ISO 8601 format)" + } + }, + "direction": { + "target": "com.render.api#ListOrganizationAuditLogsRequestDirection", + "traits": { + "smithy.api#httpQuery": "direction", + "smithy.api#documentation": "The direction to query logs for. Backward will return most recent logs first.\nForward will start with the oldest logs in the time range.\n" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of audit log items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#ListOrganizationAuditLogsResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#AuditLogWithCursor" + }, + "traits": {} + }, + "com.render.api#ListOrganizationAuditLogsResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListOrganizationAuditLogsResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListOrganizationAuditLogs": { + "type": "operation", + "input": { + "target": "com.render.api#ListOrganizationAuditLogsRequest" + }, + "output": { + "target": "com.render.api#ListOrganizationAuditLogsResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/organizations/{orgId}/audit-logs", + "code": 200 + }, + "smithy.api#documentation": "List organization audit logs\n\nRetrieve audit logs for a specific organization with optional filtering and pagination." + } + }, + "com.render.api#RetrieveOwnerNotificationSettingsRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the workspace to return resources for" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#NotificationsToSend": { + "type": "enum", + "members": { + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "none" + } + }, + "FAILURE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failure" + } + }, + "ALL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "all" + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveOwnerNotificationSettingsResponse": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "slackEnabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "emailEnabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "previewNotificationsEnabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "notificationsToSend": { + "target": "com.render.api#NotificationsToSend", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#RetrieveOwnerNotificationSettings": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveOwnerNotificationSettingsRequest" + }, + "output": { + "target": "com.render.api#RetrieveOwnerNotificationSettingsResponse" + }, + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/notification-settings/owners/{ownerId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve notification settings\n\nRetrieve notification settings for the owner with the provided ID.\n\nNote that you provide an owner ID to this endpoint, not the ID for a particular resource." + } + }, + "com.render.api#PatchOwnerNotificationSettingsRequestNotificationsToSend": { + "type": "enum", + "members": { + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "none" + } + }, + "FAILURE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failure" + } + }, + "ALL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "all" + } + } + }, + "traits": {} + }, + "com.render.api#PatchOwnerNotificationSettingsRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the workspace to return resources for" + } + }, + "emailEnabled": { + "target": "smithy.api#Boolean" + }, + "previewNotificationsEnabled": { + "target": "smithy.api#Boolean" + }, + "notificationsToSend": { + "target": "com.render.api#PatchOwnerNotificationSettingsRequestNotificationsToSend" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#Schema3": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "slackEnabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "emailEnabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "previewNotificationsEnabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "notificationsToSend": { + "target": "com.render.api#NotificationsToSend", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#PatchOwnerNotificationSettings": { + "type": "operation", + "input": { + "target": "com.render.api#PatchOwnerNotificationSettingsRequest" + }, + "output": { + "target": "com.render.api#Schema3" + }, + "traits": { + "smithy.api#http": { + "method": "PATCH", + "uri": "/notification-settings/owners/{ownerId}", + "code": 200 + }, + "smithy.api#documentation": "Update notification settings\n\nUpdate notification settings for the owner with the provided ID." + } + }, + "com.render.api#ListNotificationOverridesRequestOwnerIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListNotificationOverridesRequestServiceIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListNotificationOverridesRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "com.render.api#ListNotificationOverridesRequestOwnerIdList", + "traits": { + "smithy.api#httpQuery": "ownerId", + "smithy.api#documentation": "The ID of the workspaces to return resources for" + } + }, + "serviceId": { + "target": "com.render.api#ListNotificationOverridesRequestServiceIdList", + "traits": { + "smithy.api#httpQuery": "serviceId", + "smithy.api#documentation": "Filter for resources by service ID" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#NotificationOverrideWithCursor": { + "type": "structure", + "members": { + "override": { + "target": "com.render.api#NotificationOverrideWithCursorOverride", + "traits": { + "smithy.api#required": {} + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#PreviewNotificationsEnabled": { + "type": "enum", + "members": { + "DEFAULT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + }, + "FALSE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "false" + } + }, + "TRUE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "true" + } + } + }, + "traits": {} + }, + "com.render.api#NotificationsToSend2": { + "type": "enum", + "members": { + "DEFAULT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + }, + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "none" + } + }, + "FAILURE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failure" + } + }, + "ALL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "all" + } + } + }, + "traits": {} + }, + "com.render.api#NotificationOverrideWithCursorOverride": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "previewNotificationsEnabled": { + "target": "com.render.api#PreviewNotificationsEnabled", + "traits": { + "smithy.api#required": {} + } + }, + "notificationsToSend": { + "target": "com.render.api#NotificationsToSend2", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#ListNotificationOverridesResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#NotificationOverrideWithCursor" + }, + "traits": {} + }, + "com.render.api#ListNotificationOverridesResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListNotificationOverridesResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListNotificationOverrides": { + "type": "operation", + "input": { + "target": "com.render.api#ListNotificationOverridesRequest" + }, + "output": { + "target": "com.render.api#ListNotificationOverridesResponse" + }, + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/notification-settings/overrides", + "code": 200 + }, + "smithy.api#documentation": "List notification overrides\n\nList notification overrides matching the provided filters. If no filters are provided, returns all notification overrides for all workspaces the user belongs to." + } + }, + "com.render.api#RetrieveServiceNotificationOverridesRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrieveServiceNotificationOverridesResponse": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "previewNotificationsEnabled": { + "target": "com.render.api#PreviewNotificationsEnabled", + "traits": { + "smithy.api#required": {} + } + }, + "notificationsToSend": { + "target": "com.render.api#NotificationsToSend2", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#RetrieveServiceNotificationOverrides": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveServiceNotificationOverridesRequest" + }, + "output": { + "target": "com.render.api#RetrieveServiceNotificationOverridesResponse" + }, + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/notification-settings/overrides/services/{serviceId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve notification override\n\nRetrieve the notification override for the service with the provided ID.\n\nNote that you provide a service ID to this endpoint, not the ID for a particular override." + } + }, + "com.render.api#PatchServiceNotificationOverridesRequestPreviewNotificationsEnabled": { + "type": "enum", + "members": { + "DEFAULT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + }, + "FALSE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "false" + } + }, + "TRUE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "true" + } + } + }, + "traits": {} + }, + "com.render.api#PatchServiceNotificationOverridesRequestNotificationsToSend": { + "type": "enum", + "members": { + "DEFAULT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + }, + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "none" + } + }, + "FAILURE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failure" + } + }, + "ALL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "all" + } + } + }, + "traits": {} + }, + "com.render.api#PatchServiceNotificationOverridesRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "previewNotificationsEnabled": { + "target": "com.render.api#PatchServiceNotificationOverridesRequestPreviewNotificationsEnabled" + }, + "notificationsToSend": { + "target": "com.render.api#PatchServiceNotificationOverridesRequestNotificationsToSend" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#Schema4": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "previewNotificationsEnabled": { + "target": "com.render.api#PreviewNotificationsEnabled", + "traits": { + "smithy.api#required": {} + } + }, + "notificationsToSend": { + "target": "com.render.api#NotificationsToSend2", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#PatchServiceNotificationOverrides": { + "type": "operation", + "input": { + "target": "com.render.api#PatchServiceNotificationOverridesRequest" + }, + "output": { + "target": "com.render.api#Schema4" + }, + "traits": { + "smithy.api#http": { + "method": "PATCH", + "uri": "/notification-settings/overrides/services/{serviceId}", + "code": 200 + }, + "smithy.api#documentation": "Update notification override\n\nUpdate the notification override for the service with the provided ID." + } + }, + "com.render.api#ListRegistryCredentialsRequestNameList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListRegistryCredentialsRequestUsernameList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#RegistryCredentialRegistry": { + "type": "enum", + "members": { + "GITHUB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GITHUB" + } + }, + "GITLAB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GITLAB" + } + }, + "DOCKER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DOCKER" + } + }, + "GOOGLE_ARTIFACT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GOOGLE_ARTIFACT" + } + }, + "AWS_ECR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AWS_ECR" + } + } + }, + "traits": { + "smithy.api#documentation": "The registry to use this credential with" + } + }, + "com.render.api#ListRegistryCredentialsRequestTypeList": { + "type": "list", + "member": { + "target": "com.render.api#RegistryCredentialRegistry" + }, + "traits": {} + }, + "com.render.api#ListRegistryCredentialsRequestOwnerIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListRegistryCredentialsRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.render.api#ListRegistryCredentialsRequestNameList", + "traits": { + "smithy.api#httpQuery": "name", + "smithy.api#documentation": "Filter for the name of a credential" + } + }, + "username": { + "target": "com.render.api#ListRegistryCredentialsRequestUsernameList", + "traits": { + "smithy.api#httpQuery": "username", + "smithy.api#documentation": "Filter for the username of a credential" + } + }, + "type": { + "target": "com.render.api#ListRegistryCredentialsRequestTypeList", + "traits": { + "smithy.api#httpQuery": "type", + "smithy.api#documentation": "Filter for the registry type for the credential" + } + }, + "createdBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "createdBefore", + "smithy.api#documentation": "Filter for services created before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "createdAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "createdAfter", + "smithy.api#documentation": "Filter for services created after a certain time (specified as an ISO 8601 timestamp)" + } + }, + "updatedBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "updatedBefore", + "smithy.api#documentation": "Filter for services updated before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "updatedAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "updatedAfter", + "smithy.api#documentation": "Filter for services updated after a certain time (specified as an ISO 8601 timestamp)" + } + }, + "ownerId": { + "target": "com.render.api#ListRegistryCredentialsRequestOwnerIdList", + "traits": { + "smithy.api#httpQuery": "ownerId", + "smithy.api#documentation": "The ID of the workspaces to return resources for" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RegistryCredential": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Unique identifier for this credential", + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Descriptive name for this credential", + "smithy.api#required": {} + } + }, + "registry": { + "target": "com.render.api#RegistryCredentialRegistry", + "traits": { + "smithy.api#required": {} + } + }, + "username": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The username associated with the credential", + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Last updated time for the credential", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#ListRegistryCredentialsResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#RegistryCredential" + }, + "traits": {} + }, + "com.render.api#ListRegistryCredentialsResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListRegistryCredentialsResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListRegistryCredentials": { + "type": "operation", + "input": { + "target": "com.render.api#ListRegistryCredentialsRequest" + }, + "output": { + "target": "com.render.api#ListRegistryCredentialsResponse" + }, + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/registrycredentials", + "code": 200 + }, + "smithy.api#documentation": "List registry credentials\n\nList registry credentials matching the provided filters. If no filters are provided, returns all registry credentials you have permissions to view." + } + }, + "com.render.api#CreateRegistryCredentialRequest": { + "type": "structure", + "members": { + "registry": { + "target": "com.render.api#RegistryCredentialRegistry", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "username": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "authToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#CreateRegistryCredential": { + "type": "operation", + "input": { + "target": "com.render.api#CreateRegistryCredentialRequest" + }, + "output": { + "target": "com.render.api#RegistryCredential" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Conflict" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/registrycredentials", + "code": 200 + }, + "smithy.api#documentation": "Create registry credential\n\nCreate a new registry credential." + } + }, + "com.render.api#RetrieveRegistryCredentialRequest": { + "type": "structure", + "members": { + "registryCredentialId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the registry credential" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrieveRegistryCredential": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveRegistryCredentialRequest" + }, + "output": { + "target": "com.render.api#RegistryCredential" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/registrycredentials/{registryCredentialId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve registry credential\n\nRetrieve the registry credential with the provided ID." + } + }, + "com.render.api#UpdateRegistryCredentialRequest": { + "type": "structure", + "members": { + "registryCredentialId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the registry credential" + } + }, + "registry": { + "target": "com.render.api#RegistryCredentialRegistry", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "username": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "authToken": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UpdateRegistryCredential": { + "type": "operation", + "input": { + "target": "com.render.api#UpdateRegistryCredentialRequest" + }, + "output": { + "target": "com.render.api#RegistryCredential" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + }, + { + "target": "com.render.api#Conflict" + } + ], + "traits": { + "smithy.api#http": { + "method": "PATCH", + "uri": "/registrycredentials/{registryCredentialId}", + "code": 200 + }, + "smithy.api#documentation": "Update registry credential\n\nUpdate the registry credential with the provided ID. Services that use this credential must be redeployed to use updated values." + } + }, + "com.render.api#DeleteRegistryCredentialRequest": { + "type": "structure", + "members": { + "registryCredentialId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the registry credential" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeleteRegistryCredential": { + "type": "operation", + "input": { + "target": "com.render.api#DeleteRegistryCredentialRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/registrycredentials/{registryCredentialId}", + "code": 200 + }, + "smithy.api#documentation": "Delete registry credential\n\nDelete the registry credential with the provided ID." + } + }, + "com.render.api#ListServicesRequestNameList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ServiceType": { + "type": "enum", + "members": { + "STATIC_SITE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "static_site" + } + }, + "WEB_SERVICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "web_service" + } + }, + "PRIVATE_SERVICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "private_service" + } + }, + "BACKGROUND_WORKER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "background_worker" + } + }, + "CRON_JOB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cron_job" + } + } + }, + "traits": {} + }, + "com.render.api#ListServicesRequestTypeList": { + "type": "list", + "member": { + "target": "com.render.api#ServiceType" + }, + "traits": {} + }, + "com.render.api#ListServicesRequestEnvironmentIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ServiceRuntime": { + "type": "enum", + "members": { + "DOCKER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "docker" + } + }, + "ELIXIR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "elixir" + } + }, + "GO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "go" + } + }, + "NODE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "node" + } + }, + "PYTHON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "python" + } + }, + "RUBY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ruby" + } + }, + "RUST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rust" + } + }, + "IMAGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "image" + } + } + }, + "traits": { + "smithy.api#documentation": "Runtime" + } + }, + "com.render.api#ListServicesRequestEnvList": { + "type": "list", + "member": { + "target": "com.render.api#ServiceRuntime" + }, + "traits": {} + }, + "com.render.api#ListServicesRequestRegionList": { + "type": "list", + "member": { + "target": "com.render.api#Region" + }, + "traits": {} + }, + "com.render.api#ListServicesRequestSuspendedItem": { + "type": "enum", + "members": { + "SUSPENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "suspended" + } + }, + "NOT_SUSPENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "not_suspended" + } + } + }, + "traits": {} + }, + "com.render.api#ListServicesRequestSuspendedList": { + "type": "list", + "member": { + "target": "com.render.api#ListServicesRequestSuspendedItem" + }, + "traits": {} + }, + "com.render.api#ListServicesRequestOwnerIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListServicesRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.render.api#ListServicesRequestNameList", + "traits": { + "smithy.api#httpQuery": "name", + "smithy.api#documentation": "Filter by name" + } + }, + "type": { + "target": "com.render.api#ListServicesRequestTypeList", + "traits": { + "smithy.api#httpQuery": "type", + "smithy.api#documentation": "Filter for types of services" + } + }, + "environmentId": { + "target": "com.render.api#ListServicesRequestEnvironmentIdList", + "traits": { + "smithy.api#httpQuery": "environmentId", + "smithy.api#documentation": "Filter for resources that belong to an environment" + } + }, + "env": { + "target": "com.render.api#ListServicesRequestEnvList", + "traits": { + "smithy.api#httpQuery": "env", + "smithy.api#documentation": "Filter for environments (runtimes) of services (deprecated; use `runtime` instead)" + } + }, + "region": { + "target": "com.render.api#ListServicesRequestRegionList", + "traits": { + "smithy.api#httpQuery": "region", + "smithy.api#documentation": "Filter by resource region" + } + }, + "suspended": { + "target": "com.render.api#ListServicesRequestSuspendedList", + "traits": { + "smithy.api#httpQuery": "suspended", + "smithy.api#documentation": "Filter resources based on whether they're suspended or not suspended" + } + }, + "createdBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "createdBefore", + "smithy.api#documentation": "Filter for resources created before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "createdAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "createdAfter", + "smithy.api#documentation": "Filter for resources created after a certain time (specified as an ISO 8601 timestamp)" + } + }, + "updatedBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "updatedBefore", + "smithy.api#documentation": "Filter for resources updated before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "updatedAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "updatedAfter", + "smithy.api#documentation": "Filter for resources updated after a certain time (specified as an ISO 8601 timestamp)" + } + }, + "ownerId": { + "target": "com.render.api#ListServicesRequestOwnerIdList", + "traits": { + "smithy.api#httpQuery": "ownerId", + "smithy.api#documentation": "The ID of the workspaces to return resources for" + } + }, + "includePreviews": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#httpQuery": "includePreviews", + "smithy.api#documentation": "Include previews in the response" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#ServiceList": { + "type": "list", + "member": { + "target": "com.render.api#ServiceWithCursor" + }, + "traits": {} + }, + "com.render.api#ServiceWithCursor": { + "type": "structure", + "members": { + "service": { + "target": "com.render.api#Service", + "traits": { + "smithy.api#required": {} + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Service": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "autoDeploy": { + "target": "com.render.api#AutoDeploy", + "traits": { + "smithy.api#required": {} + } + }, + "branch": { + "target": "smithy.api#String" + }, + "buildFilter": { + "target": "com.render.api#BuildFilter" + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "dashboardUrl": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The URL to view the service in the Render Dashboard", + "smithy.api#required": {} + } + }, + "environmentId": { + "target": "smithy.api#String" + }, + "imagePath": { + "target": "smithy.api#String" + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "notifyOnFail": { + "target": "com.render.api#NotifySetting", + "traits": { + "smithy.api#required": {} + } + }, + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "registryCredential": { + "target": "com.render.api#RegistryCredentialSummary" + }, + "repo": { + "target": "smithy.api#String" + }, + "rootDir": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "slug": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "suspended": { + "target": "com.render.api#ServiceSuspended", + "traits": { + "smithy.api#required": {} + } + }, + "suspenders": { + "target": "com.render.api#ServiceSuspendersList", + "traits": { + "smithy.api#required": {} + } + }, + "type": { + "target": "com.render.api#ServiceType", + "traits": { + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "serviceDetails": { + "target": "com.render.api#ServiceServiceDetails", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#AutoDeploy": { + "type": "enum", + "members": { + "YES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "yes" + } + }, + "NO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "no" + } + } + }, + "traits": {} + }, + "com.render.api#BuildFilter": { + "type": "structure", + "members": { + "paths": { + "target": "com.render.api#BuildFilterPathsList", + "traits": { + "smithy.api#required": {} + } + }, + "ignoredPaths": { + "target": "com.render.api#BuildFilterIgnoredPathsList", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#BuildFilterPathsList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#BuildFilterIgnoredPathsList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#NotifySetting": { + "type": "enum", + "members": { + "DEFAULT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "default" + } + }, + "NOTIFY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "notify" + } + }, + "IGNORE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ignore" + } + } + }, + "traits": {} + }, + "com.render.api#RegistryCredentialSummary": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#ServiceSuspended": { + "type": "enum", + "members": { + "SUSPENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "suspended" + } + }, + "NOT_SUSPENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "not_suspended" + } + } + }, + "traits": {} + }, + "com.render.api#SuspenderType": { + "type": "enum", + "members": { + "ADMIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "admin" + } + }, + "BILLING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "billing" + } + }, + "USER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "user" + } + }, + "PARENT_SERVICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "parent_service" + } + }, + "STUCK_CRASHLOOPING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "stuck_crashlooping" + } + }, + "HIPAA_ENABLEMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "hipaa_enablement" + } + }, + "UNKNOWN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unknown" + } + } + }, + "traits": {} + }, + "com.render.api#ServiceSuspendersList": { + "type": "list", + "member": { + "target": "com.render.api#SuspenderType" + }, + "traits": {} + }, + "com.render.api#StaticSiteDetails": { + "type": "structure", + "members": { + "buildCommand": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "ipAllowList": { + "target": "com.render.api#StaticSiteDetailsIpAllowListList" + }, + "parentServer": { + "target": "com.render.api#Resource" + }, + "publishPath": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "pullRequestPreviewsEnabled": { + "target": "com.render.api#PullRequestPreviewsEnabled" + }, + "previews": { + "target": "com.render.api#Previews" + }, + "url": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "buildPlan": { + "target": "com.render.api#BuildPlan", + "traits": { + "smithy.api#required": {} + } + }, + "renderSubdomainPolicy": { + "target": "com.render.api#RenderSubdomainPolicy" + } + }, + "traits": {} + }, + "com.render.api#StaticSiteDetailsIpAllowListList": { + "type": "list", + "member": { + "target": "com.render.api#CidrBlockAndDescription" + }, + "traits": {} + }, + "com.render.api#Resource": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#PullRequestPreviewsEnabled": { + "type": "enum", + "members": { + "YES": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "yes" + } + }, + "NO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "no" + } + } + }, + "traits": { + "smithy.api#documentation": "This field has been deprecated. previews.generation should be used in its place." + } + }, + "com.render.api#Previews": { + "type": "structure", + "members": { + "generation": { + "target": "com.render.api#PreviewsGeneration", + "traits": { + "smithy.api#documentation": "Defaults to \"off\"" + } + } + }, + "traits": {} + }, + "com.render.api#PreviewsGeneration": { + "type": "enum", + "members": { + "OFF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "off" + } + }, + "MANUAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "manual" + } + }, + "AUTOMATIC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "automatic" + } + } + }, + "traits": { + "smithy.api#documentation": "Defaults to \"off\"" + } + }, + "com.render.api#BuildPlan": { + "type": "enum", + "members": { + "STARTER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "starter" + } + }, + "PERFORMANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "performance" + } + } + }, + "traits": {} + }, + "com.render.api#RenderSubdomainPolicy": { + "type": "enum", + "members": { + "ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "enabled" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disabled" + } + } + }, + "traits": { + "smithy.api#documentation": "Controls whether render.com subdomains are available for the service" + } + }, + "com.render.api#WebServiceDetails": { + "type": "structure", + "members": { + "autoscaling": { + "target": "com.render.api#Schema5" + }, + "cache": { + "target": "com.render.api#Cache" + }, + "disk": { + "target": "com.render.api#WebServiceDetailsDisk" + }, + "env": { + "target": "com.render.api#ServiceEnv", + "traits": { + "smithy.api#required": {} + } + }, + "envSpecificDetails": { + "target": "com.render.api#EnvSpecificDetails", + "traits": { + "smithy.api#required": {} + } + }, + "healthCheckPath": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "ipAllowList": { + "target": "com.render.api#WebServiceDetailsIpAllowListList" + }, + "maintenanceMode": { + "target": "com.render.api#MaintenanceMode" + }, + "numInstances": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "For a *manually* scaled service, this is the number of instances the service is scaled to. DOES NOT indicate the number of running instances for an *autoscaled* service.", + "smithy.api#required": {} + } + }, + "openPorts": { + "target": "com.render.api#WebServiceDetailsOpenPortsList", + "traits": { + "smithy.api#required": {} + } + }, + "parentServer": { + "target": "com.render.api#Resource" + }, + "plan": { + "target": "com.render.api#Plan", + "traits": { + "smithy.api#required": {} + } + }, + "pullRequestPreviewsEnabled": { + "target": "com.render.api#PullRequestPreviewsEnabled" + }, + "previews": { + "target": "com.render.api#Previews" + }, + "region": { + "target": "com.render.api#Region", + "traits": { + "smithy.api#required": {} + } + }, + "runtime": { + "target": "com.render.api#ServiceRuntime", + "traits": { + "smithy.api#required": {} + } + }, + "sshAddress": { + "target": "smithy.api#String" + }, + "url": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "buildPlan": { + "target": "com.render.api#BuildPlan", + "traits": { + "smithy.api#required": {} + } + }, + "maxShutdownDelaySeconds": { + "target": "smithy.api#Integer" + }, + "renderSubdomainPolicy": { + "target": "com.render.api#RenderSubdomainPolicy" + } + }, + "traits": {} + }, + "com.render.api#Schema5": { + "type": "structure", + "members": { + "enabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "min": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "The minimum number of instances for the service", + "smithy.api#required": {} + } + }, + "max": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "The maximum number of instances for the service", + "smithy.api#required": {} + } + }, + "criteria": { + "target": "com.render.api#SchemaCriteria", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#SchemaCriteriaCpu": { + "type": "structure", + "members": { + "enabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "percentage": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "Determines when your service will be scaled. If the average resource utilization is significantly above/below the target, we will increase/decrease the number of instances.\n", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Cpu": { + "type": "structure", + "members": { + "enabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "percentage": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "Determines when your service will be scaled. If the average resource utilization is significantly above/below the target, we will increase/decrease the number of instances.\n", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#SchemaCriteria": { + "type": "structure", + "members": { + "cpu": { + "target": "com.render.api#SchemaCriteriaCpu", + "traits": { + "smithy.api#required": {} + } + }, + "memory": { + "target": "com.render.api#Cpu", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Cache": { + "type": "structure", + "members": { + "profile": { + "target": "com.render.api#CacheProfile", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#CacheProfile": { + "type": "enum", + "members": { + "NO_CACHE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "no-cache" + } + }, + "ORIGIN_CONTROLLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "origin-controlled" + } + }, + "ORIGIN_CONTROLLED_ALL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "origin-controlled-all" + } + } + }, + "traits": {} + }, + "com.render.api#WebServiceDetailsDisk": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "sizeGB": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "mountPath": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#ServiceEnv": { + "type": "enum", + "members": { + "DOCKER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "docker" + } + }, + "ELIXIR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "elixir" + } + }, + "GO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "go" + } + }, + "NODE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "node" + } + }, + "PYTHON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "python" + } + }, + "RUBY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ruby" + } + }, + "RUST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rust" + } + }, + "IMAGE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "image" + } + } + }, + "traits": { + "smithy.api#documentation": "This field has been deprecated, runtime should be used in its place." + } + }, + "com.render.api#EnvSpecificDetails": { + "type": "union", + "members": { + "DockerDetails": { + "target": "com.render.api#DockerDetails" + }, + "NativeEnvironmentDetails": { + "target": "com.render.api#NativeEnvironmentDetails" + } + }, + "traits": {} + }, + "com.render.api#DockerDetails": { + "type": "structure", + "members": { + "dockerCommand": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "dockerContext": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "dockerfilePath": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "preDeployCommand": { + "target": "smithy.api#String" + }, + "registryCredential": { + "target": "com.render.api#RegistryCredential" + } + }, + "traits": {} + }, + "com.render.api#NativeEnvironmentDetails": { + "type": "structure", + "members": { + "buildCommand": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "startCommand": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "preDeployCommand": { + "target": "smithy.api#String" + } + }, + "traits": {} + }, + "com.render.api#WebServiceDetailsIpAllowListList": { + "type": "list", + "member": { + "target": "com.render.api#CidrBlockAndDescription" + }, + "traits": {} + }, + "com.render.api#MaintenanceMode": { + "type": "structure", + "members": { + "enabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "uri": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The page to be served when [maintenance mode](https://render.com/docs/maintenance-mode) is enabled. When empty, the default maintenance mode page is served.", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#ServerPort": { + "type": "structure", + "members": { + "port": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "protocol": { + "target": "com.render.api#ServerPortProtocol", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#ServerPortProtocol": { + "type": "enum", + "members": { + "TCP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TCP" + } + }, + "UDP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UDP" + } + } + }, + "traits": {} + }, + "com.render.api#WebServiceDetailsOpenPortsList": { + "type": "list", + "member": { + "target": "com.render.api#ServerPort" + }, + "traits": {} + }, + "com.render.api#Plan": { + "type": "enum", + "members": { + "STARTER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "starter" + } + }, + "STARTER_PLUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "starter_plus" + } + }, + "STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "standard" + } + }, + "STANDARD_PLUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "standard_plus" + } + }, + "PRO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro" + } + }, + "PRO_PLUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_plus" + } + }, + "PRO_MAX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_max" + } + }, + "PRO_ULTRA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_ultra" + } + }, + "FREE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "free" + } + }, + "CUSTOM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "custom" + } + }, + "STARTER_LEGACY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "starter_legacy" + } + }, + "STANDARD_LEGACY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "standard_legacy" + } + }, + "STANDARD_PLUS_LEGACY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "standard_plus_legacy" + } + }, + "PRO_LEGACY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_legacy" + } + }, + "PRO_PLUS_LEGACY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_plus_legacy" + } + }, + "_0_5C_512MB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "0.5c-512mb" + } + }, + "_1C_2G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "1c-2g" + } + }, + "_2C_4G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "2c-4g" + } + }, + "_2C_8G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "2c-8g" + } + }, + "_2C_16G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "2c-16g" + } + }, + "_4C_8G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "4c-8g" + } + }, + "_4C_16G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "4c-16g" + } + }, + "_4C_32G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "4c-32g" + } + }, + "_8C_16G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "8c-16g" + } + }, + "_8C_32G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "8c-32g" + } + }, + "_8C_64G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "8c-64g" + } + }, + "_12C_24G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "12c-24g" + } + }, + "_12C_48G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "12c-48g" + } + }, + "_12C_96G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "12c-96g" + } + } + }, + "traits": { + "smithy.api#documentation": "The compute plan to use. Legacy variants (`*_legacy`) identify grandfathered plans no longer offered for new services. Note that base services on any paid compute plan can't create preview instances with the `free` plan." + } + }, + "com.render.api#PrivateServiceDetails": { + "type": "structure", + "members": { + "autoscaling": { + "target": "com.render.api#Schema5" + }, + "disk": { + "target": "com.render.api#Disk" + }, + "env": { + "target": "com.render.api#ServiceEnv", + "traits": { + "smithy.api#required": {} + } + }, + "envSpecificDetails": { + "target": "com.render.api#EnvSpecificDetails", + "traits": { + "smithy.api#required": {} + } + }, + "numInstances": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "For a *manually* scaled service, this is the number of instances the service is scaled to. DOES NOT indicate the number of running instances for an *autoscaled* service.", + "smithy.api#required": {} + } + }, + "openPorts": { + "target": "com.render.api#PrivateServiceDetailsOpenPortsList", + "traits": { + "smithy.api#required": {} + } + }, + "parentServer": { + "target": "com.render.api#Resource" + }, + "plan": { + "target": "com.render.api#Plan", + "traits": { + "smithy.api#required": {} + } + }, + "pullRequestPreviewsEnabled": { + "target": "com.render.api#PullRequestPreviewsEnabled" + }, + "previews": { + "target": "com.render.api#Previews" + }, + "region": { + "target": "com.render.api#Region", + "traits": { + "smithy.api#required": {} + } + }, + "runtime": { + "target": "com.render.api#ServiceRuntime", + "traits": { + "smithy.api#required": {} + } + }, + "sshAddress": { + "target": "smithy.api#String" + }, + "url": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "buildPlan": { + "target": "com.render.api#BuildPlan", + "traits": { + "smithy.api#required": {} + } + }, + "maxShutdownDelaySeconds": { + "target": "smithy.api#Integer" + } + }, + "traits": {} + }, + "com.render.api#Disk": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "sizeGB": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "mountPath": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#PrivateServiceDetailsOpenPortsList": { + "type": "list", + "member": { + "target": "com.render.api#ServerPort" + }, + "traits": {} + }, + "com.render.api#BackgroundWorkerDetails": { + "type": "structure", + "members": { + "autoscaling": { + "target": "com.render.api#Schema5" + }, + "disk": { + "target": "com.render.api#Disk" + }, + "env": { + "target": "com.render.api#ServiceEnv", + "traits": { + "smithy.api#required": {} + } + }, + "envSpecificDetails": { + "target": "com.render.api#EnvSpecificDetails", + "traits": { + "smithy.api#required": {} + } + }, + "numInstances": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "For a *manually* scaled service, this is the number of instances the service is scaled to. DOES NOT indicate the number of running instances for an *autoscaled* service.", + "smithy.api#required": {} + } + }, + "parentServer": { + "target": "com.render.api#Resource" + }, + "plan": { + "target": "com.render.api#Plan", + "traits": { + "smithy.api#required": {} + } + }, + "pullRequestPreviewsEnabled": { + "target": "com.render.api#PullRequestPreviewsEnabled" + }, + "previews": { + "target": "com.render.api#Previews" + }, + "region": { + "target": "com.render.api#Region", + "traits": { + "smithy.api#required": {} + } + }, + "runtime": { + "target": "com.render.api#ServiceRuntime", + "traits": { + "smithy.api#required": {} + } + }, + "sshAddress": { + "target": "smithy.api#String" + }, + "buildPlan": { + "target": "com.render.api#BuildPlan", + "traits": { + "smithy.api#required": {} + } + }, + "maxShutdownDelaySeconds": { + "target": "smithy.api#Integer" + } + }, + "traits": {} + }, + "com.render.api#CronJobDetails": { + "type": "structure", + "members": { + "env": { + "target": "com.render.api#ServiceEnv", + "traits": { + "smithy.api#required": {} + } + }, + "envSpecificDetails": { + "target": "com.render.api#EnvSpecificDetails", + "traits": { + "smithy.api#required": {} + } + }, + "lastSuccessfulRunAt": { + "target": "smithy.api#String" + }, + "plan": { + "target": "com.render.api#Plan", + "traits": { + "smithy.api#required": {} + } + }, + "region": { + "target": "com.render.api#Region", + "traits": { + "smithy.api#required": {} + } + }, + "runtime": { + "target": "com.render.api#ServiceRuntime", + "traits": { + "smithy.api#required": {} + } + }, + "schedule": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "buildPlan": { + "target": "com.render.api#BuildPlan", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#ServiceServiceDetails": { + "type": "union", + "members": { + "StaticSiteDetails": { + "target": "com.render.api#StaticSiteDetails" + }, + "WebServiceDetails": { + "target": "com.render.api#WebServiceDetails" + }, + "PrivateServiceDetails": { + "target": "com.render.api#PrivateServiceDetails" + }, + "BackgroundWorkerDetails": { + "target": "com.render.api#BackgroundWorkerDetails" + }, + "CronJobDetails": { + "target": "com.render.api#CronJobDetails" + } + }, + "traits": {} + }, + "com.render.api#ListServicesResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ServiceList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListServices": { + "type": "operation", + "input": { + "target": "com.render.api#ListServicesRequest" + }, + "output": { + "target": "com.render.api#ListServicesResponse" + }, + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/services", + "code": 200 + }, + "smithy.api#documentation": "List services\n\nList services matching the provided filters. If no filters are provided, returns all services you have permissions to view." + } + }, + "com.render.api#Image": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the owner for this image. This should match the owner of the service as well as the owner of any specified registry credential.", + "smithy.api#required": {} + } + }, + "registryCredentialId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Optional reference to the registry credential passed to the image repository to retrieve this image." + } + }, + "imagePath": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Path to the image used for this server (e.g docker.io/library/nginx:latest).", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Schema6": { + "type": "list", + "member": { + "target": "com.render.api#SchemaItem" + }, + "traits": {} + }, + "com.render.api#SchemaItemCase0": { + "type": "structure", + "members": { + "key": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#SchemaItemCase1": { + "type": "structure", + "members": { + "key": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "generateValue": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "If true, Render generates a strong random value for this environment variable on creation. Cannot be combined with `value`.", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#SchemaItem": { + "type": "union", + "members": { + "Case0": { + "target": "com.render.api#SchemaItemCase0" + }, + "Case1": { + "target": "com.render.api#SchemaItemCase1" + } + }, + "traits": {} + }, + "com.render.api#Items": { + "type": "structure", + "members": { + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "content": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#CreateServiceRequestSecretFilesList": { + "type": "list", + "member": { + "target": "com.render.api#Items" + }, + "traits": {} + }, + "com.render.api#StaticSiteDetailsPOST": { + "type": "structure", + "members": { + "buildCommand": { + "target": "smithy.api#String" + }, + "headers": { + "target": "com.render.api#StaticSiteDetailsPOSTHeadersList" + }, + "publishPath": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Defaults to \"public\"" + } + }, + "pullRequestPreviewsEnabled": { + "target": "com.render.api#PullRequestPreviewsEnabled" + }, + "previews": { + "target": "com.render.api#Previews" + }, + "routes": { + "target": "com.render.api#StaticSiteDetailsPOSTRoutesList" + }, + "renderSubdomainPolicy": { + "target": "com.render.api#RenderSubdomainPolicy" + }, + "ipAllowList": { + "target": "com.render.api#StaticSiteDetailsPOSTIpAllowListList" + } + }, + "traits": {} + }, + "com.render.api#HeaderInput": { + "type": "structure", + "members": { + "path": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The request path to add the header to. Wildcards will cause headers to be applied to all matching paths.", + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Header name", + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Header value", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#StaticSiteDetailsPOSTHeadersList": { + "type": "list", + "member": { + "target": "com.render.api#HeaderInput" + }, + "traits": {} + }, + "com.render.api#RoutePost": { + "type": "structure", + "members": { + "type": { + "target": "com.render.api#RouteType", + "traits": { + "smithy.api#required": {} + } + }, + "source": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "destination": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "priority": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "Redirect and Rewrite Rules are applied in priority order starting at 0. Defaults to last in the priority list." + } + } + }, + "traits": {} + }, + "com.render.api#RouteType": { + "type": "enum", + "members": { + "REDIRECT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "redirect" + } + }, + "REWRITE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rewrite" + } + } + }, + "traits": {} + }, + "com.render.api#StaticSiteDetailsPOSTRoutesList": { + "type": "list", + "member": { + "target": "com.render.api#RoutePost" + }, + "traits": {} + }, + "com.render.api#StaticSiteDetailsPOSTIpAllowListList": { + "type": "list", + "member": { + "target": "com.render.api#CidrBlockAndDescription" + }, + "traits": {} + }, + "com.render.api#WebServiceDetailsPOST": { + "type": "structure", + "members": { + "autoscaling": { + "target": "com.render.api#Schema5" + }, + "disk": { + "target": "com.render.api#ServiceDisk" + }, + "env": { + "target": "com.render.api#ServiceEnv" + }, + "runtime": { + "target": "com.render.api#ServiceRuntime", + "traits": { + "smithy.api#required": {} + } + }, + "envSpecificDetails": { + "target": "com.render.api#EnvSpecificDetailsPOST" + }, + "healthCheckPath": { + "target": "smithy.api#String" + }, + "maintenanceMode": { + "target": "com.render.api#MaintenanceMode" + }, + "numInstances": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "Defaults to 1" + } + }, + "plan": { + "target": "com.render.api#Plan", + "traits": { + "smithy.api#documentation": "The compute plan to use. If omitted, defaults to `0.5c-512mb` when creating a new service." + } + }, + "preDeployCommand": { + "target": "smithy.api#String" + }, + "pullRequestPreviewsEnabled": { + "target": "com.render.api#PullRequestPreviewsEnabled" + }, + "previews": { + "target": "com.render.api#Previews" + }, + "region": { + "target": "com.render.api#Region" + }, + "maxShutdownDelaySeconds": { + "target": "smithy.api#Integer" + }, + "renderSubdomainPolicy": { + "target": "com.render.api#RenderSubdomainPolicy" + }, + "ipAllowList": { + "target": "com.render.api#WebServiceDetailsPOSTIpAllowListList" + } + }, + "traits": {} + }, + "com.render.api#ServiceDisk": { + "type": "structure", + "members": { + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "mountPath": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "sizeGB": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "Defaults to 1" + } + } + }, + "traits": {} + }, + "com.render.api#EnvSpecificDetailsPOST": { + "type": "union", + "members": { + "DockerDetailsPOST": { + "target": "com.render.api#DockerDetailsPOST" + }, + "NativeEnvironmentDetailsPOST": { + "target": "com.render.api#NativeEnvironmentDetailsPOST" + } + }, + "traits": {} + }, + "com.render.api#DockerDetailsPOST": { + "type": "structure", + "members": { + "dockerCommand": { + "target": "smithy.api#String" + }, + "dockerContext": { + "target": "smithy.api#String" + }, + "dockerfilePath": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Defaults to \"./Dockerfile\"" + } + }, + "registryCredentialId": { + "target": "smithy.api#String" + } + }, + "traits": {} + }, + "com.render.api#NativeEnvironmentDetailsPOST": { + "type": "structure", + "members": { + "buildCommand": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "startCommand": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Fields for native environment (runtime) services" + } + }, + "com.render.api#WebServiceDetailsPOSTIpAllowListList": { + "type": "list", + "member": { + "target": "com.render.api#CidrBlockAndDescription" + }, + "traits": {} + }, + "com.render.api#PrivateServiceDetailsPOST": { + "type": "structure", + "members": { + "autoscaling": { + "target": "com.render.api#Schema5" + }, + "disk": { + "target": "com.render.api#ServiceDisk" + }, + "env": { + "target": "com.render.api#ServiceEnv" + }, + "runtime": { + "target": "com.render.api#ServiceRuntime", + "traits": { + "smithy.api#required": {} + } + }, + "envSpecificDetails": { + "target": "com.render.api#EnvSpecificDetailsPOST" + }, + "numInstances": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "Defaults to 1" + } + }, + "plan": { + "target": "com.render.api#PaidPlan" + }, + "preDeployCommand": { + "target": "smithy.api#String" + }, + "pullRequestPreviewsEnabled": { + "target": "com.render.api#PullRequestPreviewsEnabled" + }, + "previews": { + "target": "com.render.api#Previews" + }, + "region": { + "target": "com.render.api#Region" + }, + "maxShutdownDelaySeconds": { + "target": "smithy.api#Integer" + } + }, + "traits": {} + }, + "com.render.api#PaidPlan": { + "type": "enum", + "members": { + "STARTER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "starter" + } + }, + "STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "standard" + } + }, + "PRO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro" + } + }, + "PRO_PLUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_plus" + } + }, + "PRO_MAX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_max" + } + }, + "PRO_ULTRA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_ultra" + } + }, + "_0_5C_512MB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "0.5c-512mb" + } + }, + "_1C_2G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "1c-2g" + } + }, + "_2C_4G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "2c-4g" + } + }, + "_2C_8G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "2c-8g" + } + }, + "_2C_16G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "2c-16g" + } + }, + "_4C_8G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "4c-8g" + } + }, + "_4C_16G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "4c-16g" + } + }, + "_4C_32G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "4c-32g" + } + }, + "_8C_16G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "8c-16g" + } + }, + "_8C_32G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "8c-32g" + } + }, + "_8C_64G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "8c-64g" + } + }, + "_12C_24G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "12c-24g" + } + }, + "_12C_48G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "12c-48g" + } + }, + "_12C_96G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "12c-96g" + } + } + }, + "traits": { + "smithy.api#documentation": "Defaults to `0.5c-512mb` when creating a new service." + } + }, + "com.render.api#BackgroundWorkerDetailsPOST": { + "type": "structure", + "members": { + "autoscaling": { + "target": "com.render.api#Schema5" + }, + "disk": { + "target": "com.render.api#ServiceDisk" + }, + "env": { + "target": "com.render.api#ServiceEnv" + }, + "runtime": { + "target": "com.render.api#ServiceRuntime", + "traits": { + "smithy.api#required": {} + } + }, + "envSpecificDetails": { + "target": "com.render.api#EnvSpecificDetailsPOST" + }, + "numInstances": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "Defaults to 1" + } + }, + "plan": { + "target": "com.render.api#PaidPlan" + }, + "preDeployCommand": { + "target": "smithy.api#String" + }, + "pullRequestPreviewsEnabled": { + "target": "com.render.api#PullRequestPreviewsEnabled" + }, + "previews": { + "target": "com.render.api#Previews" + }, + "region": { + "target": "com.render.api#Region" + }, + "maxShutdownDelaySeconds": { + "target": "smithy.api#Integer" + } + }, + "traits": {} + }, + "com.render.api#CronJobDetailsPOST": { + "type": "structure", + "members": { + "env": { + "target": "com.render.api#ServiceEnv" + }, + "runtime": { + "target": "com.render.api#ServiceRuntime", + "traits": { + "smithy.api#required": {} + } + }, + "envSpecificDetails": { + "target": "com.render.api#EnvSpecificDetails" + }, + "plan": { + "target": "com.render.api#PaidPlan" + }, + "region": { + "target": "com.render.api#Region" + }, + "schedule": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#CreateServiceRequestServiceDetails": { + "type": "union", + "members": { + "StaticSiteDetailsPOST": { + "target": "com.render.api#StaticSiteDetailsPOST" + }, + "WebServiceDetailsPOST": { + "target": "com.render.api#WebServiceDetailsPOST" + }, + "PrivateServiceDetailsPOST": { + "target": "com.render.api#PrivateServiceDetailsPOST" + }, + "BackgroundWorkerDetailsPOST": { + "target": "com.render.api#BackgroundWorkerDetailsPOST" + }, + "CronJobDetailsPOST": { + "target": "com.render.api#CronJobDetailsPOST" + } + }, + "traits": {} + }, + "com.render.api#CreateServiceRequest": { + "type": "structure", + "members": { + "type": { + "target": "com.render.api#ServiceType", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The service's name. Must be unique within the workspace.", + "smithy.api#required": {} + } + }, + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the workspace the service belongs to. Obtain your workspace's ID from its Settings page in the Render Dashboard.", + "smithy.api#required": {} + } + }, + "repo": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The service's repository URL. Do not specify a branch in this string (use the `branch` parameter instead)." + } + }, + "autoDeploy": { + "target": "com.render.api#AutoDeploy" + }, + "branch": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The repo branch to pull, build, and deploy. If omitted, uses the repository's default branch." + } + }, + "image": { + "target": "com.render.api#Image" + }, + "buildFilter": { + "target": "com.render.api#BuildFilter" + }, + "rootDir": { + "target": "smithy.api#String" + }, + "envVars": { + "target": "com.render.api#Schema6" + }, + "secretFiles": { + "target": "com.render.api#CreateServiceRequestSecretFilesList" + }, + "environmentId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the environment the service belongs to, if any. Obtain an environment's ID from its Settings page in the Render Dashboard." + } + }, + "serviceDetails": { + "target": "com.render.api#CreateServiceRequestServiceDetails" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#ServiceAndDeploy": { + "type": "structure", + "members": { + "service": { + "target": "com.render.api#Service" + }, + "deployId": { + "target": "smithy.api#String" + } + }, + "traits": {} + }, + "com.render.api#CreateService": { + "type": "operation", + "input": { + "target": "com.render.api#CreateServiceRequest" + }, + "output": { + "target": "com.render.api#ServiceAndDeploy" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + }, + { + "target": "com.render.api#Conflict" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/services", + "code": 200 + }, + "smithy.api#documentation": "Create service\n\nCreates a new Render service in the specified workspace with the specified configuration." + } + }, + "com.render.api#RetrieveServiceRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrieveService": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveServiceRequest" + }, + "output": { + "target": "com.render.api#Service" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/services/{serviceId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve service\n\nRetrieve the service with the provided ID." + } + }, + "com.render.api#StaticSiteDetailsPATCH": { + "type": "structure", + "members": { + "buildCommand": { + "target": "smithy.api#String" + }, + "publishPath": { + "target": "smithy.api#String" + }, + "pullRequestPreviewsEnabled": { + "target": "com.render.api#PullRequestPreviewsEnabled" + }, + "previews": { + "target": "com.render.api#Previews" + }, + "renderSubdomainPolicy": { + "target": "com.render.api#RenderSubdomainPolicy" + }, + "ipAllowList": { + "target": "com.render.api#StaticSiteDetailsPATCHIpAllowListList" + } + }, + "traits": {} + }, + "com.render.api#StaticSiteDetailsPATCHIpAllowListList": { + "type": "list", + "member": { + "target": "com.render.api#CidrBlockAndDescription" + }, + "traits": {} + }, + "com.render.api#WebServiceDetailsPATCH": { + "type": "structure", + "members": { + "envSpecificDetails": { + "target": "com.render.api#EnvSpecificDetailsPATCH" + }, + "healthCheckPath": { + "target": "smithy.api#String" + }, + "maintenanceMode": { + "target": "com.render.api#MaintenanceMode" + }, + "plan": { + "target": "com.render.api#Plan" + }, + "preDeployCommand": { + "target": "smithy.api#String" + }, + "pullRequestPreviewsEnabled": { + "target": "com.render.api#PullRequestPreviewsEnabled" + }, + "previews": { + "target": "com.render.api#Previews" + }, + "runtime": { + "target": "com.render.api#ServiceRuntime" + }, + "maxShutdownDelaySeconds": { + "target": "smithy.api#Integer" + }, + "renderSubdomainPolicy": { + "target": "com.render.api#RenderSubdomainPolicy" + }, + "ipAllowList": { + "target": "com.render.api#WebServiceDetailsPATCHIpAllowListList" + }, + "cache": { + "target": "com.render.api#Cache" + } + }, + "traits": {} + }, + "com.render.api#EnvSpecificDetailsPATCH": { + "type": "union", + "members": { + "DockerDetailsPATCH": { + "target": "com.render.api#DockerDetailsPATCH" + }, + "NativeEnvironmentDetailsPATCH": { + "target": "com.render.api#NativeEnvironmentDetailsPATCH" + } + }, + "traits": {} + }, + "com.render.api#DockerDetailsPATCH": { + "type": "structure", + "members": { + "dockerCommand": { + "target": "smithy.api#String" + }, + "dockerContext": { + "target": "smithy.api#String" + }, + "dockerfilePath": { + "target": "smithy.api#String" + }, + "registryCredentialId": { + "target": "smithy.api#String" + } + }, + "traits": {} + }, + "com.render.api#NativeEnvironmentDetailsPATCH": { + "type": "structure", + "members": { + "buildCommand": { + "target": "smithy.api#String" + }, + "startCommand": { + "target": "smithy.api#String" + } + }, + "traits": {} + }, + "com.render.api#WebServiceDetailsPATCHIpAllowListList": { + "type": "list", + "member": { + "target": "com.render.api#CidrBlockAndDescription" + }, + "traits": {} + }, + "com.render.api#PrivateServiceDetailsPATCH": { + "type": "structure", + "members": { + "envSpecificDetails": { + "target": "com.render.api#EnvSpecificDetailsPATCH" + }, + "plan": { + "target": "com.render.api#PaidPlan" + }, + "preDeployCommand": { + "target": "smithy.api#String" + }, + "pullRequestPreviewsEnabled": { + "target": "com.render.api#PullRequestPreviewsEnabled" + }, + "previews": { + "target": "com.render.api#Previews" + }, + "runtime": { + "target": "com.render.api#ServiceRuntime" + }, + "maxShutdownDelaySeconds": { + "target": "smithy.api#Integer" + } + }, + "traits": {} + }, + "com.render.api#BackgroundWorkerDetailsPATCH": { + "type": "structure", + "members": { + "envSpecificDetails": { + "target": "com.render.api#EnvSpecificDetailsPATCH" + }, + "plan": { + "target": "com.render.api#PaidPlan" + }, + "preDeployCommand": { + "target": "smithy.api#String" + }, + "pullRequestPreviewsEnabled": { + "target": "com.render.api#PullRequestPreviewsEnabled" + }, + "previews": { + "target": "com.render.api#Previews" + }, + "runtime": { + "target": "com.render.api#ServiceRuntime" + }, + "maxShutdownDelaySeconds": { + "target": "smithy.api#Integer" + } + }, + "traits": {} + }, + "com.render.api#CronJobDetailsPATCH": { + "type": "structure", + "members": { + "envSpecificDetails": { + "target": "com.render.api#EnvSpecificDetailsPATCH" + }, + "plan": { + "target": "com.render.api#PaidPlan" + }, + "schedule": { + "target": "smithy.api#String" + }, + "runtime": { + "target": "com.render.api#ServiceRuntime" + } + }, + "traits": {} + }, + "com.render.api#UpdateServiceRequestServiceDetails": { + "type": "union", + "members": { + "StaticSiteDetailsPATCH": { + "target": "com.render.api#StaticSiteDetailsPATCH" + }, + "WebServiceDetailsPATCH": { + "target": "com.render.api#WebServiceDetailsPATCH" + }, + "PrivateServiceDetailsPATCH": { + "target": "com.render.api#PrivateServiceDetailsPATCH" + }, + "BackgroundWorkerDetailsPATCH": { + "target": "com.render.api#BackgroundWorkerDetailsPATCH" + }, + "CronJobDetailsPATCH": { + "target": "com.render.api#CronJobDetailsPATCH" + } + }, + "traits": {} + }, + "com.render.api#UpdateServiceRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "autoDeploy": { + "target": "com.render.api#AutoDeploy" + }, + "repo": { + "target": "smithy.api#String" + }, + "branch": { + "target": "smithy.api#String" + }, + "image": { + "target": "com.render.api#Image" + }, + "name": { + "target": "smithy.api#String" + }, + "buildFilter": { + "target": "com.render.api#BuildFilter" + }, + "rootDir": { + "target": "smithy.api#String" + }, + "serviceDetails": { + "target": "com.render.api#UpdateServiceRequestServiceDetails" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UpdateService": { + "type": "operation", + "input": { + "target": "com.render.api#UpdateServiceRequest" + }, + "output": { + "target": "com.render.api#Service" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + }, + { + "target": "com.render.api#Conflict" + } + ], + "traits": { + "smithy.api#http": { + "method": "PATCH", + "uri": "/services/{serviceId}", + "code": 200 + }, + "smithy.api#documentation": "Update service\n\nUpdate the service with the provided ID." + } + }, + "com.render.api#DeleteServiceRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeleteService": { + "type": "operation", + "input": { + "target": "com.render.api#DeleteServiceRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/services/{serviceId}", + "code": 200 + }, + "smithy.api#documentation": "Delete service\n\nDelete the service with the provided ID." + } + }, + "com.render.api#PurgeCacheRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#PurgeCache": { + "type": "operation", + "input": { + "target": "com.render.api#PurgeCacheRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + }, + { + "target": "com.render.api#Conflict" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/services/{serviceId}/cache/purge", + "code": 200 + }, + "smithy.api#documentation": "Purge Web Service Cache\n\nTrigger cache purge for the web service if caching is enabled." + } + }, + "com.render.api#DeployStatus": { + "type": "enum", + "members": { + "CREATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "created" + } + }, + "QUEUED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "queued" + } + }, + "BUILD_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "build_in_progress" + } + }, + "UPDATE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "update_in_progress" + } + }, + "LIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "live" + } + }, + "DEACTIVATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deactivated" + } + }, + "BUILD_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "build_failed" + } + }, + "UPDATE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "update_failed" + } + }, + "CANCELED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "canceled" + } + }, + "PRE_DEPLOY_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pre_deploy_in_progress" + } + }, + "PRE_DEPLOY_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pre_deploy_failed" + } + } + }, + "traits": {} + }, + "com.render.api#ListDeploysRequestStatusList": { + "type": "list", + "member": { + "target": "com.render.api#DeployStatus" + }, + "traits": {} + }, + "com.render.api#ListDeploysRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "status": { + "target": "com.render.api#ListDeploysRequestStatusList", + "traits": { + "smithy.api#httpQuery": "status", + "smithy.api#documentation": "Filter for deploys with the specified statuses" + } + }, + "createdBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "createdBefore", + "smithy.api#documentation": "Filter for deploys created before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "createdAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "createdAfter", + "smithy.api#documentation": "Filter for deploys created after a certain time (specified as an ISO 8601 timestamp)" + } + }, + "updatedBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "updatedBefore", + "smithy.api#documentation": "Filter for deploys updated before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "updatedAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "updatedAfter", + "smithy.api#documentation": "Filter for deploys updated after a certain time (specified as an ISO 8601 timestamp)" + } + }, + "finishedBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "finishedBefore", + "smithy.api#documentation": "Filter for deploys finished before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "finishedAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "finishedAfter", + "smithy.api#documentation": "Filter for deploys finished after a certain time (specified as an ISO 8601 timestamp)" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeployList": { + "type": "list", + "member": { + "target": "com.render.api#DeployWithCursor" + }, + "traits": {} + }, + "com.render.api#DeployWithCursor": { + "type": "structure", + "members": { + "deploy": { + "target": "com.render.api#Deploy" + }, + "cursor": { + "target": "smithy.api#String" + } + }, + "traits": {} + }, + "com.render.api#Deploy": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "commit": { + "target": "com.render.api#DeployCommit" + }, + "image": { + "target": "com.render.api#DeployImage", + "traits": { + "smithy.api#documentation": "Image information used when creating the deploy. Not present for Git-backed deploys" + } + }, + "status": { + "target": "com.render.api#DeployStatus" + }, + "trigger": { + "target": "com.render.api#DeployTrigger" + }, + "startedAt": { + "target": "smithy.api#String" + }, + "finishedAt": { + "target": "smithy.api#String" + }, + "createdAt": { + "target": "smithy.api#String" + }, + "updatedAt": { + "target": "smithy.api#String" + } + }, + "traits": {} + }, + "com.render.api#DeployCommit": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String" + }, + "message": { + "target": "smithy.api#String" + }, + "createdAt": { + "target": "smithy.api#String" + } + }, + "traits": {} + }, + "com.render.api#DeployImage": { + "type": "structure", + "members": { + "ref": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Image reference used when creating the deploy" + } + }, + "sha": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "SHA that the image reference was resolved to when creating the deploy" + } + }, + "registryCredential": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Name of credential used to pull the image, if provided" + } + } + }, + "traits": { + "smithy.api#documentation": "Image information used when creating the deploy. Not present for Git-backed deploys" + } + }, + "com.render.api#DeployTrigger": { + "type": "enum", + "members": { + "API": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "api" + } + }, + "BLUEPRINT_SYNC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "blueprint_sync" + } + }, + "DEPLOY_HOOK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deploy_hook" + } + }, + "DEPLOYED_BY_RENDER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deployed_by_render" + } + }, + "MANUAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "manual" + } + }, + "OTHER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "other" + } + }, + "NEW_COMMIT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "new_commit" + } + }, + "ROLLBACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rollback" + } + }, + "SERVICE_RESUMED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "service_resumed" + } + }, + "SERVICE_UPDATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "service_updated" + } + } + }, + "traits": {} + }, + "com.render.api#ListDeploysResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#DeployList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListDeploys": { + "type": "operation", + "input": { + "target": "com.render.api#ListDeploysRequest" + }, + "output": { + "target": "com.render.api#ListDeploysResponse" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/services/{serviceId}/deploys", + "code": 200 + }, + "smithy.api#documentation": "List deploys\n\nList deploys matching the provided filters. If no filters are provided, all deploys for the service are returned." + } + }, + "com.render.api#CreateDeployRequestClearCache": { + "type": "enum", + "members": { + "CLEAR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "clear" + } + }, + "DO_NOT_CLEAR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "do_not_clear" + } + } + }, + "traits": { + "smithy.api#documentation": "If `clear`, Render clears the service's build cache before deploying. This can be useful if you're experiencing issues with your build." + } + }, + "com.render.api#DeployMode": { + "type": "enum", + "members": { + "DEPLOY_ONLY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deploy_only" + } + }, + "BUILD_AND_DEPLOY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "build_and_deploy" + } + } + }, + "traits": { + "smithy.api#documentation": "Controls deployment behavior when triggering a deploy.\n\n- `deploy_only`: Deploy the last successful build without rebuilding (minimizes downtime)\n- `build_and_deploy`: Build new code and deploy it (default behavior when not specified)\n\n**Note:** `deploy_only` cannot be combined with `commitId`, `imageUrl` or `clearCache` parameters,\nas those are build related fields.\n" + } + }, + "com.render.api#CreateDeployRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "clearCache": { + "target": "com.render.api#CreateDeployRequestClearCache", + "traits": { + "smithy.api#documentation": "If `clear`, Render clears the service's build cache before deploying. This can be useful if you're experiencing issues with your build." + } + }, + "commitId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The SHA of a specific Git commit to deploy for a service. Defaults to the latest commit on the service's connected branch.\n\nNote that deploying a specific commit with this endpoint does not disable autodeploys for the service.\n\nYou can toggle autodeploys for your service with the [Update service](https://api-docs.render.com/reference/update-service) endpoint or in the Render Dashboard.\n\nNot supported for cron jobs.\n" + } + }, + "imageUrl": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The URL of the image to deploy for an image-backed service.\n\nThe host, repository, and image name all must match the currently configured image for the service.\n" + } + }, + "deployMode": { + "target": "com.render.api#DeployMode", + "traits": { + "smithy.api#documentation": "Deployment mode controlling build and deploy behavior.\n\nDefaults to `build_and_deploy` when not specified.\n\n**Validation:** `deploy_mode` cannot be combined with `commitId` or `imageUrl` or `clearCache`.\n" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#CreateDeploy": { + "type": "operation", + "input": { + "target": "com.render.api#CreateDeployRequest" + }, + "output": { + "target": "com.render.api#Deploy" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + }, + { + "target": "com.render.api#Conflict" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/services/{serviceId}/deploys", + "code": 200 + }, + "smithy.api#documentation": "Trigger deploy\n\nTrigger a deploy for the service with the provided ID." + } + }, + "com.render.api#RetrieveDeployRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "deployId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the deploy" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrieveDeploy": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveDeployRequest" + }, + "output": { + "target": "com.render.api#Deploy" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/services/{serviceId}/deploys/{deployId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve deploy\n\nRetrieve the details of a particular deploy for a particular service." + } + }, + "com.render.api#CancelDeployRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "deployId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the deploy" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#CancelDeploy": { + "type": "operation", + "input": { + "target": "com.render.api#CancelDeployRequest" + }, + "output": { + "target": "com.render.api#Deploy" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/services/{serviceId}/deploys/{deployId}/cancel", + "code": 200 + }, + "smithy.api#documentation": "Cancel deploy\n\nCancel an in-progress deploy for a service.\n\nNot supported for cron jobs." + } + }, + "com.render.api#RollbackDeployRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "deployId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the deploy to roll back to", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RollbackDeploy": { + "type": "operation", + "input": { + "target": "com.render.api#RollbackDeployRequest" + }, + "output": { + "target": "com.render.api#Deploy" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/services/{serviceId}/rollback", + "code": 200 + }, + "smithy.api#documentation": "Roll back deploy\n\nTrigger a rollback to a previous deploy of the specified service.\n\nTriggering a rollback with this endpoint does not disable autodeploys for the service. This means an autodeploy might restore changes you had intentionally rolled back.\n\nYou can toggle autodeploys for your service with the [Update service](https://api-docs.render.com/reference/update-service) endpoint or in the Render Dashboard." + } + }, + "com.render.api#GetEnvVarsForServiceRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#EnvVarWithCursor": { + "type": "structure", + "members": { + "envVar": { + "target": "com.render.api#EnvVar", + "traits": { + "smithy.api#required": {} + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#EnvVar": { + "type": "structure", + "members": { + "key": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#GetEnvVarsForServiceResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#EnvVarWithCursor" + }, + "traits": {} + }, + "com.render.api#GetEnvVarsForServiceResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#GetEnvVarsForServiceResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetEnvVarsForService": { + "type": "operation", + "input": { + "target": "com.render.api#GetEnvVarsForServiceRequest" + }, + "output": { + "target": "com.render.api#GetEnvVarsForServiceResponse" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/services/{serviceId}/env-vars", + "code": 200 + }, + "smithy.api#documentation": "List environment variables\n\nList all environment variables for the service with the provided ID." + } + }, + "com.render.api#UpdateEnvVarsForServiceRequestBodyItemCase0": { + "type": "structure", + "members": { + "key": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#UpdateEnvVarsForServiceRequestBodyItemCase1": { + "type": "structure", + "members": { + "key": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "generateValue": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "If true, Render generates a strong random value for this environment variable on creation. Cannot be combined with `value`.", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#UpdateEnvVarsForServiceRequestBodyItem": { + "type": "union", + "members": { + "Case0": { + "target": "com.render.api#UpdateEnvVarsForServiceRequestBodyItemCase0" + }, + "Case1": { + "target": "com.render.api#UpdateEnvVarsForServiceRequestBodyItemCase1" + } + }, + "traits": {} + }, + "com.render.api#UpdateEnvVarsForServiceRequestBodyList": { + "type": "list", + "member": { + "target": "com.render.api#UpdateEnvVarsForServiceRequestBodyItem" + }, + "traits": {} + }, + "com.render.api#UpdateEnvVarsForServiceRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "body": { + "target": "com.render.api#UpdateEnvVarsForServiceRequestBodyList", + "traits": { + "smithy.api#httpPayload": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UpdateEnvVarsForServiceResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#EnvVarWithCursor" + }, + "traits": {} + }, + "com.render.api#UpdateEnvVarsForServiceResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#UpdateEnvVarsForServiceResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#UpdateEnvVarsForService": { + "type": "operation", + "input": { + "target": "com.render.api#UpdateEnvVarsForServiceRequest" + }, + "output": { + "target": "com.render.api#UpdateEnvVarsForServiceResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "PUT", + "uri": "/services/{serviceId}/env-vars", + "code": 200 + }, + "smithy.api#documentation": "Update environment variables\n\nReplace all environment variables for a service with the provided list of environment variables." + } + }, + "com.render.api#RetrieveEnvVarRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "envVarKey": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The name of the environment variable" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrieveEnvVar": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveEnvVarRequest" + }, + "output": { + "target": "com.render.api#EnvVar" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/services/{serviceId}/env-vars/{envVarKey}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve environment variable\n\nRetrieve a particular environment variable for a particular service.\n\nThis only applies to environment variables set directly on the service, not to environment variables in a linked environment group." + } + }, + "com.render.api#AddUpdateEnvVarInput": { + "type": "union", + "members": { + "EnvVarValue": { + "target": "com.render.api#EnvVarValue" + }, + "EnvVarGenerateValue": { + "target": "com.render.api#EnvVarGenerateValue" + } + }, + "traits": {} + }, + "com.render.api#EnvVarValue": { + "type": "structure", + "members": { + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#EnvVarGenerateValue": { + "type": "structure", + "members": { + "generateValue": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#UpdateEnvVarRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "envVarKey": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The name of the environment variable" + } + }, + "body": { + "target": "com.render.api#AddUpdateEnvVarInput", + "traits": { + "smithy.api#httpPayload": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UpdateEnvVar": { + "type": "operation", + "input": { + "target": "com.render.api#UpdateEnvVarRequest" + }, + "output": { + "target": "com.render.api#EnvVar" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "PUT", + "uri": "/services/{serviceId}/env-vars/{envVarKey}", + "code": 200 + }, + "smithy.api#documentation": "Add or update environment variable\n\nAdd or update a particular environment variable for a particular service.\n\nThis only applies to environment variables set directly on the service, not to environment variables in a linked environment group." + } + }, + "com.render.api#DeleteEnvVarRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "envVarKey": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The name of the environment variable" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeleteEnvVar": { + "type": "operation", + "input": { + "target": "com.render.api#DeleteEnvVarRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/services/{serviceId}/env-vars/{envVarKey}", + "code": 200 + }, + "smithy.api#documentation": "Delete environment variable\n\nDelete a particular environment variable from a particular service.\n\nThis only applies to environment variables set directly on the service, not to environment variables in a linked environment group." + } + }, + "com.render.api#ListSecretFilesForServiceRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#SecretFileWithCursor": { + "type": "structure", + "members": { + "secretFile": { + "target": "com.render.api#SecretFile", + "traits": { + "smithy.api#required": {} + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#SecretFile": { + "type": "structure", + "members": { + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "content": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#ListSecretFilesForServiceResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#SecretFileWithCursor" + }, + "traits": {} + }, + "com.render.api#ListSecretFilesForServiceResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListSecretFilesForServiceResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListSecretFilesForService": { + "type": "operation", + "input": { + "target": "com.render.api#ListSecretFilesForServiceRequest" + }, + "output": { + "target": "com.render.api#ListSecretFilesForServiceResponse" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/services/{serviceId}/secret-files", + "code": 200 + }, + "smithy.api#documentation": "List secret files\n\nList all secret files for the service with the provided ID." + } + }, + "com.render.api#UpdateSecretFilesForServiceRequestBodyItem": { + "type": "structure", + "members": { + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "content": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#UpdateSecretFilesForServiceRequestBodyList": { + "type": "list", + "member": { + "target": "com.render.api#UpdateSecretFilesForServiceRequestBodyItem" + }, + "traits": {} + }, + "com.render.api#UpdateSecretFilesForServiceRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "body": { + "target": "com.render.api#UpdateSecretFilesForServiceRequestBodyList", + "traits": { + "smithy.api#httpPayload": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UpdateSecretFilesForServiceResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#SecretFileWithCursor" + }, + "traits": {} + }, + "com.render.api#UpdateSecretFilesForServiceResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#UpdateSecretFilesForServiceResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#UpdateSecretFilesForService": { + "type": "operation", + "input": { + "target": "com.render.api#UpdateSecretFilesForServiceRequest" + }, + "output": { + "target": "com.render.api#UpdateSecretFilesForServiceResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "PUT", + "uri": "/services/{serviceId}/secret-files", + "code": 200 + }, + "smithy.api#documentation": "Update secret files\n\nReplace all secret files for a service with the provided list of secret files.\n\n**Any of the service's existing secret files not included in this request will be deleted.**\n\nThis only applies to secret files set directly on the service, not to secret files in a linked environment group." + } + }, + "com.render.api#RetrieveSecretFileRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "envVarKey": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The file name of the secret file" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrieveSecretFile": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveSecretFileRequest" + }, + "output": { + "target": "com.render.api#SecretFile" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/services/{serviceId}/secret-files/{envVarKey}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve secret file\n\nRetrieve a particular secret file for a particular service.\n\nThis only applies to secret files set directly on the service, not to secret files in a linked environment group." + } + }, + "com.render.api#AddOrUpdateSecretFileRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "envVarKey": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The file name of the secret file" + } + }, + "content": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#AddOrUpdateSecretFile": { + "type": "operation", + "input": { + "target": "com.render.api#AddOrUpdateSecretFileRequest" + }, + "output": { + "target": "com.render.api#SecretFile" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "PUT", + "uri": "/services/{serviceId}/secret-files/{envVarKey}", + "code": 200 + }, + "smithy.api#documentation": "Add or update secret file\n\nAdd or update a particular secret file for a particular service.\n\nThis only applies to secret files set directly on the service, not to secret files in a linked environment group." + } + }, + "com.render.api#DeleteSecretFileRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "envVarKey": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The file name of the secret file" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeleteSecretFile": { + "type": "operation", + "input": { + "target": "com.render.api#DeleteSecretFileRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/services/{serviceId}/secret-files/{envVarKey}", + "code": 200 + }, + "smithy.api#documentation": "Delete secret file\n\nDelete a particular secret file from a particular service.\n\nThis only applies to secret files set directly on the service, not to secret files in a linked environment group." + } + }, + "com.render.api#ListEventsRequestType": { + "type": "enum", + "members": { + "ARTIFACT_FETCH_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "artifact_fetch_failed" + } + }, + "ARTIFACT_SOURCE_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "artifact_source_changed" + } + }, + "AUTOSCALING_CONFIG_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "autoscaling_config_changed" + } + }, + "AUTOSCALING_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "autoscaling_ended" + } + }, + "AUTOSCALING_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "autoscaling_started" + } + }, + "BRANCH_DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "branch_deleted" + } + }, + "BUILD_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "build_ended" + } + }, + "BUILD_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "build_started" + } + }, + "COMMIT_IGNORED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "commit_ignored" + } + }, + "CRON_JOB_RUN_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cron_job_run_ended" + } + }, + "CRON_JOB_RUN_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cron_job_run_started" + } + }, + "DEPLOY_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deploy_ended" + } + }, + "DEPLOY_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deploy_started" + } + }, + "DISK_CREATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disk_created" + } + }, + "DISK_UPDATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disk_updated" + } + }, + "DISK_DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disk_deleted" + } + }, + "SERVICE_DISK_USAGE_HIGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "service_disk_usage_high" + } + }, + "SERVICE_DISK_USAGE_RECOVERED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "service_disk_usage_recovered" + } + }, + "IMAGE_PULL_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "image_pull_failed" + } + }, + "INITIAL_DEPLOY_HOOK_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "initial_deploy_hook_ended" + } + }, + "INITIAL_DEPLOY_HOOK_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "initial_deploy_hook_started" + } + }, + "INSTANCE_COUNT_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance_count_changed" + } + }, + "JOB_RUN_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "job_run_ended" + } + }, + "MAINTENANCE_MODE_ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "maintenance_mode_enabled" + } + }, + "MAINTENANCE_MODE_URI_UPDATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "maintenance_mode_uri_updated" + } + }, + "MAINTENANCE_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "maintenance_ended" + } + }, + "MAINTENANCE_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "maintenance_started" + } + }, + "PIPELINE_MINUTES_EXHAUSTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pipeline_minutes_exhausted" + } + }, + "PLAN_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "plan_changed" + } + }, + "PRE_DEPLOY_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pre_deploy_ended" + } + }, + "PRE_DEPLOY_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pre_deploy_started" + } + }, + "SERVER_AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "server_available" + } + }, + "SERVER_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "server_failed" + } + }, + "SERVER_HARDWARE_FAILURE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "server_hardware_failure" + } + }, + "SERVER_RESTARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "server_restarted" + } + }, + "SERVICE_RESUMED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "service_resumed" + } + }, + "SERVICE_SUSPENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "service_suspended" + } + }, + "SUSPENDER_ADDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "suspender_added" + } + }, + "SUSPENDER_REMOVED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "suspender_removed" + } + }, + "ZERO_DOWNTIME_REDEPLOY_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "zero_downtime_redeploy_ended" + } + }, + "ZERO_DOWNTIME_REDEPLOY_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "zero_downtime_redeploy_started" + } + }, + "AUTO_DEPLOY_DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "auto_deploy_disabled" + } + }, + "AUTO_DEPLOY_ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "auto_deploy_enabled" + } + } + }, + "traits": {} + }, + "com.render.api#ListEventsRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "type": { + "target": "com.render.api#ListEventsRequestType", + "traits": { + "smithy.api#httpQuery": "type", + "smithy.api#documentation": "The type of event to filter to" + } + }, + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#ServiceEventWithCursor": { + "type": "structure", + "members": { + "event": { + "target": "com.render.api#ServiceEventWithCursorEvent", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A service event with a cursor" + } + }, + "com.render.api#_0": { + "type": "enum", + "members": { + "ARTIFACT_FETCH_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "artifact_fetch_failed" + } + }, + "ARTIFACT_SOURCE_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "artifact_source_changed" + } + }, + "AUTOSCALING_CONFIG_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "autoscaling_config_changed" + } + }, + "AUTOSCALING_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "autoscaling_ended" + } + }, + "AUTOSCALING_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "autoscaling_started" + } + }, + "BRANCH_DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "branch_deleted" + } + }, + "BUILD_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "build_ended" + } + }, + "BUILD_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "build_started" + } + }, + "COMMIT_IGNORED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "commit_ignored" + } + }, + "CRON_JOB_RUN_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cron_job_run_ended" + } + }, + "CRON_JOB_RUN_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cron_job_run_started" + } + }, + "DEPLOY_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deploy_ended" + } + }, + "DEPLOY_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deploy_started" + } + }, + "DISK_CREATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disk_created" + } + }, + "DISK_UPDATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disk_updated" + } + }, + "DISK_DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disk_deleted" + } + }, + "SERVICE_DISK_USAGE_HIGH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "service_disk_usage_high" + } + }, + "SERVICE_DISK_USAGE_RECOVERED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "service_disk_usage_recovered" + } + }, + "IMAGE_PULL_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "image_pull_failed" + } + }, + "INITIAL_DEPLOY_HOOK_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "initial_deploy_hook_ended" + } + }, + "INITIAL_DEPLOY_HOOK_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "initial_deploy_hook_started" + } + }, + "INSTANCE_COUNT_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance_count_changed" + } + }, + "JOB_RUN_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "job_run_ended" + } + }, + "MAINTENANCE_MODE_ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "maintenance_mode_enabled" + } + }, + "MAINTENANCE_MODE_URI_UPDATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "maintenance_mode_uri_updated" + } + }, + "MAINTENANCE_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "maintenance_ended" + } + }, + "MAINTENANCE_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "maintenance_started" + } + }, + "PIPELINE_MINUTES_EXHAUSTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pipeline_minutes_exhausted" + } + }, + "PLAN_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "plan_changed" + } + }, + "PRE_DEPLOY_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pre_deploy_ended" + } + }, + "PRE_DEPLOY_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pre_deploy_started" + } + }, + "SERVER_AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "server_available" + } + }, + "SERVER_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "server_failed" + } + }, + "SERVER_HARDWARE_FAILURE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "server_hardware_failure" + } + }, + "SERVER_RESTARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "server_restarted" + } + }, + "SERVICE_RESUMED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "service_resumed" + } + }, + "SERVICE_SUSPENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "service_suspended" + } + }, + "SUSPENDER_ADDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "suspender_added" + } + }, + "SUSPENDER_REMOVED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "suspender_removed" + } + }, + "ZERO_DOWNTIME_REDEPLOY_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "zero_downtime_redeploy_ended" + } + }, + "ZERO_DOWNTIME_REDEPLOY_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "zero_downtime_redeploy_started" + } + }, + "AUTO_DEPLOY_DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "auto_deploy_disabled" + } + }, + "AUTO_DEPLOY_ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "auto_deploy_enabled" + } + } + }, + "traits": {} + }, + "com.render.api#_02": { + "type": "union", + "members": { + "Case0": { + "target": "com.render.api#_0Case0" + }, + "Case1": { + "target": "com.render.api#_0Case1" + }, + "Case2": { + "target": "com.render.api#_0Case2" + }, + "Case3": { + "target": "com.render.api#_0Case3" + }, + "Case4": { + "target": "com.render.api#_0Case4" + }, + "Case5": { + "target": "com.render.api#_0Case5" + }, + "Case6": { + "target": "com.render.api#_0Case6" + }, + "Case7": { + "target": "com.render.api#_0Case7" + }, + "Case8": { + "target": "com.render.api#_0Case8" + }, + "Case9": { + "target": "com.render.api#_0Case9" + }, + "Case10": { + "target": "com.render.api#_0Case10" + }, + "Case11": { + "target": "com.render.api#_0Case11" + }, + "Case12": { + "target": "com.render.api#_0Case12" + }, + "Case13": { + "target": "com.render.api#_0Case13" + }, + "Case14": { + "target": "com.render.api#_0Case14" + }, + "Case15": { + "target": "com.render.api#_0Case15" + }, + "Case16": { + "target": "com.render.api#_0Case16" + }, + "Case17": { + "target": "com.render.api#_0Case17" + }, + "Case18": { + "target": "com.render.api#_0Case18" + }, + "Case19": { + "target": "com.render.api#_0Case19" + }, + "Case20": { + "target": "com.render.api#_0Case20" + }, + "Case21": { + "target": "com.render.api#_0Case21" + }, + "Case22": { + "target": "com.render.api#_0Case22" + }, + "Case23": { + "target": "com.render.api#_0Case23" + }, + "Case24": { + "target": "com.render.api#_0Case24" + }, + "Case25": { + "target": "smithy.api#Document" + }, + "Case26": { + "target": "com.render.api#_0Case26" + }, + "Case27": { + "target": "com.render.api#_0Case27" + }, + "Case28": { + "target": "com.render.api#_0Case28" + }, + "Case29": { + "target": "com.render.api#_0Case29" + }, + "Case30": { + "target": "com.render.api#_0Case30" + }, + "Case32": { + "target": "com.render.api#_0Case32" + }, + "Case34": { + "target": "com.render.api#_0Case34" + }, + "Case37": { + "target": "com.render.api#_0Case37" + }, + "Case38": { + "target": "com.render.api#_0Case38" + }, + "Case40": { + "target": "com.render.api#_0Case40" + }, + "Case41": { + "target": "com.render.api#_0Case41" + }, + "Case42": { + "target": "com.render.api#_0Case42" + }, + "Case43": { + "target": "com.render.api#_0Case43" + }, + "Case44": { + "target": "com.render.api#_0Case44" + }, + "Case45": { + "target": "com.render.api#_0Case45" + } + }, + "traits": {} + }, + "com.render.api#_0Case0": { + "type": "structure", + "members": { + "artifactId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case1": { + "type": "structure", + "members": { + "fromArtifactSourceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The previously linked artifact source. Absent when the service was newly attached." + } + }, + "toArtifactSourceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The newly linked artifact source. Absent when the service was detached." + } + } + }, + "traits": {} + }, + "com.render.api#_0Case2": { + "type": "structure", + "members": { + "fromConfig": { + "target": "com.render.api#Schema5" + }, + "toConfig": { + "target": "com.render.api#Schema5", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case3": { + "type": "structure", + "members": { + "fromInstances": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "toInstances": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case4": { + "type": "structure", + "members": { + "fromInstances": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "toInstances": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "currentCPU": { + "target": "smithy.api#Integer" + }, + "targetCPU": { + "target": "smithy.api#Integer" + }, + "currentMemory": { + "target": "smithy.api#Integer" + }, + "targetMemory": { + "target": "smithy.api#Integer" + } + }, + "traits": {} + }, + "com.render.api#_0Case5": { + "type": "structure", + "members": { + "deletedBranch": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "newBranch": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case6BuildStatus": { + "type": "enum", + "members": { + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "succeeded" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "CANCELED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "canceled" + } + } + }, + "traits": {} + }, + "com.render.api#NewBuild": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case6ReasonNewBuild": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Reason": { + "type": "structure", + "members": { + "evicted": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "evictionReason": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Details about why the application was evicted." + } + }, + "nonZeroExit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "If present, the application exited with the specified non-zero status." + } + }, + "earlyExit": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "If true, the application exited early. Services besides cron jobs should not exit unless receiving a `SIGTERM` signal from Render." + } + }, + "oomKilled": { + "target": "com.render.api#ReasonOomKilled" + }, + "timedOutSeconds": { + "target": "smithy.api#Integer" + }, + "unhealthy": { + "target": "smithy.api#String" + }, + "timedOutReason": { + "target": "smithy.api#String" + } + }, + "traits": {} + }, + "com.render.api#ReasonOomKilled": { + "type": "structure", + "members": { + "memoryLimit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case6Reason": { + "type": "structure", + "members": { + "buildFailed": { + "target": "com.render.api#NewBuild" + }, + "newBuild": { + "target": "com.render.api#_0Case6ReasonNewBuild" + }, + "newDeploy": { + "target": "com.render.api#NewBuild" + }, + "failure": { + "target": "com.render.api#Reason" + } + }, + "traits": {} + }, + "com.render.api#_0Case6": { + "type": "structure", + "members": { + "buildId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "buildStatus": { + "target": "com.render.api#_0Case6BuildStatus", + "traits": { + "smithy.api#required": {} + } + }, + "reason": { + "target": "com.render.api#_0Case6Reason", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#User2": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "email": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "User who triggered the action" + } + }, + "com.render.api#_0Case7Trigger": { + "type": "structure", + "members": { + "firstBuild": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Deploy was triggered by service creation", + "smithy.api#required": {} + } + }, + "envUpdated": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Deploy was triggered by an environment update", + "smithy.api#required": {} + } + }, + "manual": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Deploy was triggered manually from the dashboard", + "smithy.api#required": {} + } + }, + "user": { + "target": "com.render.api#User2" + }, + "updatedProperty": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Updated property that triggered the deploy" + } + }, + "newCommit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Commit that triggered the deploy" + } + }, + "deployedByRender": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Deploy was triggered by Render", + "smithy.api#required": {} + } + }, + "clearCache": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Whether the cache was cleared for the deploy", + "smithy.api#required": {} + } + }, + "rollback": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Whether the deploy was triggered by a rollback", + "smithy.api#required": {} + } + }, + "rollbackTargetDeployId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Deploy ID that was rolled back to" + } + } + }, + "traits": {} + }, + "com.render.api#_0Case7": { + "type": "structure", + "members": { + "buildId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "trigger": { + "target": "com.render.api#_0Case7Trigger", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case8": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "the commit id", + "smithy.api#required": {} + } + }, + "url": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "the commit url", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case9Status": { + "type": "enum", + "members": { + "CANCELED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "canceled" + } + }, + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "SUCCESSFUL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "successful" + } + }, + "UNSUCCESSFUL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unsuccessful" + } + } + }, + "traits": {} + }, + "com.render.api#_0Case9ReasonOomKilled": { + "type": "structure", + "members": { + "memoryLimit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case9Reason": { + "type": "structure", + "members": { + "evicted": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "evictionReason": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Details about why the application was evicted." + } + }, + "nonZeroExit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "If present, the application exited with the specified non-zero status." + } + }, + "earlyExit": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "If true, the application exited early. Services besides cron jobs should not exit unless receiving a `SIGTERM` signal from Render." + } + }, + "oomKilled": { + "target": "com.render.api#_0Case9ReasonOomKilled" + }, + "timedOutSeconds": { + "target": "smithy.api#Integer" + }, + "unhealthy": { + "target": "smithy.api#String" + }, + "timedOutReason": { + "target": "smithy.api#String" + } + }, + "traits": {} + }, + "com.render.api#_0Case9User": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "email": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "User who triggered the action" + } + }, + "com.render.api#_0Case9": { + "type": "structure", + "members": { + "cronJobRunId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#_0Case9Status", + "traits": { + "smithy.api#required": {} + } + }, + "reason": { + "target": "com.render.api#_0Case9Reason" + }, + "user": { + "target": "com.render.api#_0Case9User", + "traits": { + "smithy.api#documentation": "User who triggered the action" + } + } + }, + "traits": {} + }, + "com.render.api#_0Case10": { + "type": "structure", + "members": { + "cronJobRunId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Reason2": { + "type": "structure", + "members": { + "buildFailed": { + "target": "com.render.api#NewBuild" + }, + "newBuild": { + "target": "com.render.api#ReasonNewBuild" + }, + "newDeploy": { + "target": "com.render.api#NewBuild" + }, + "failure": { + "target": "com.render.api#Reason" + } + }, + "traits": {} + }, + "com.render.api#ReasonNewBuild": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#BuildStatus": { + "type": "enum", + "members": { + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "succeeded" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "CANCELED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "canceled" + } + } + }, + "traits": {} + }, + "com.render.api#_0Case11": { + "type": "structure", + "members": { + "deployId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "reason": { + "target": "com.render.api#Reason2", + "traits": { + "smithy.api#required": {} + } + }, + "deployStatus": { + "target": "com.render.api#BuildStatus", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "artifactId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Set when the deploy shipped an artifact published by the service's linked artifact source." + } + } + }, + "traits": {} + }, + "com.render.api#Trigger": { + "type": "structure", + "members": { + "firstBuild": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Deploy was triggered by service creation", + "smithy.api#required": {} + } + }, + "envUpdated": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Deploy was triggered by an environment update", + "smithy.api#required": {} + } + }, + "manual": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Deploy was triggered manually from the dashboard", + "smithy.api#required": {} + } + }, + "user": { + "target": "com.render.api#User2" + }, + "updatedProperty": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Updated property that triggered the deploy" + } + }, + "newCommit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Commit that triggered the deploy" + } + }, + "deployedByRender": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Deploy was triggered by Render", + "smithy.api#required": {} + } + }, + "clearCache": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Whether the cache was cleared for the deploy", + "smithy.api#required": {} + } + }, + "rollback": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Whether the deploy was triggered by a rollback", + "smithy.api#required": {} + } + }, + "rollbackTargetDeployId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Deploy ID that was rolled back to" + } + } + }, + "traits": {} + }, + "com.render.api#_0Case12": { + "type": "structure", + "members": { + "deployId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "trigger": { + "target": "com.render.api#Trigger", + "traits": { + "smithy.api#required": {} + } + }, + "artifactId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Set when the deploy ships an artifact published by the service's linked artifact source." + } + } + }, + "traits": {} + }, + "com.render.api#_0Case13": { + "type": "structure", + "members": { + "diskId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "sizeGB": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case14": { + "type": "structure", + "members": { + "diskId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "fromSizeGB": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "toSizeGB": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case15": { + "type": "structure", + "members": { + "diskId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case16": { + "type": "structure", + "members": { + "diskId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "diskName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "mountPath": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "usagePercent": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + }, + "thresholdPercent": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case17": { + "type": "structure", + "members": { + "diskId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "diskName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "mountPath": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "usagePercent": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + }, + "thresholdPercent": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case18": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "imageURL": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case19": { + "type": "structure", + "members": { + "deployId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case20": { + "type": "structure", + "members": { + "deployId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case21": { + "type": "structure", + "members": { + "fromInstances": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "toInstances": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Items2": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "RUNNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "running" + } + }, + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "succeeded" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "CANCELED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "canceled" + } + } + }, + "traits": {} + }, + "com.render.api#_0Case22": { + "type": "structure", + "members": { + "jobId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#Items2", + "traits": { + "smithy.api#required": {} + } + }, + "reason": { + "target": "com.render.api#Reason" + } + }, + "traits": {} + }, + "com.render.api#_0Case23": { + "type": "structure", + "members": { + "enabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case24": { + "type": "structure", + "members": { + "fromURI": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "toURI": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case26Trigger": { + "type": "structure", + "members": { + "user": { + "target": "com.render.api#User2" + }, + "manual": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Maintenance was triggered manually", + "smithy.api#required": {} + } + }, + "startedByRender": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Maintenance was triggered by Render", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case26": { + "type": "structure", + "members": { + "trigger": { + "target": "com.render.api#_0Case26Trigger", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case27": { + "type": "structure", + "members": { + "buildId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "trigger": { + "target": "com.render.api#Trigger", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case28": { + "type": "structure", + "members": { + "from": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "to": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case29": { + "type": "structure", + "members": { + "deployCommandExecutionId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "deployId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "preDeployStatus": { + "target": "com.render.api#BuildStatus", + "traits": { + "smithy.api#required": {} + } + }, + "reason": { + "target": "com.render.api#Reason2", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case30": { + "type": "structure", + "members": { + "deployCommandExecutionId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "deployId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case32": { + "type": "structure", + "members": { + "instanceID": { + "target": "smithy.api#String" + }, + "reason": { + "target": "com.render.api#Reason" + } + }, + "traits": {} + }, + "com.render.api#_0Case34": { + "type": "structure", + "members": { + "triggeredByUser": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {}, + "com.distilled.openapi#nullable": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case37": { + "type": "structure", + "members": { + "actor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "suspendedByUser": { + "target": "com.render.api#User2" + } + }, + "traits": {} + }, + "com.render.api#_0Case38": { + "type": "structure", + "members": { + "actor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "resumedByUser": { + "target": "com.render.api#User2" + } + }, + "traits": {} + }, + "com.render.api#_0Case40": { + "type": "structure", + "members": { + "trigger": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case41Trigger": { + "type": "structure", + "members": { + "manual": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Edge Cache change was triggered manually from the dashboard", + "smithy.api#required": {} + } + }, + "user": { + "target": "com.render.api#User2" + }, + "system": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Edge Cache Change was triggered by Render", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case41": { + "type": "structure", + "members": { + "trigger": { + "target": "com.render.api#_0Case41Trigger", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Trigger2": { + "type": "structure", + "members": { + "manual": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Edge Cache change was triggered manually from the dashboard", + "smithy.api#required": {} + } + }, + "user": { + "target": "com.render.api#User2" + }, + "system": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Edge Cache Change was triggered by Render", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case42": { + "type": "structure", + "members": { + "trigger": { + "target": "com.render.api#Trigger2", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#_0Case43": { + "type": "structure", + "members": { + "trigger": { + "target": "com.render.api#Trigger2", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#NewTrigger": { + "type": "enum", + "members": { + "COMMIT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "commit" + } + }, + "OFF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "off" + } + }, + "CHECKSPASS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "checksPass" + } + } + }, + "traits": { + "smithy.api#documentation": "The auto-deploy trigger value after it was re-enabled" + } + }, + "com.render.api#_0Case44": { + "type": "structure", + "members": { + "reason": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Why auto-deploy was disabled (manual_deploy, rollback, or setting_change)", + "smithy.api#required": {} + } + }, + "fromTrigger": { + "target": "com.render.api#NewTrigger", + "traits": { + "smithy.api#documentation": "The auto-deploy trigger value immediately before it was disabled" + } + } + }, + "traits": {} + }, + "com.render.api#_0Case45NewTrigger": { + "type": "enum", + "members": { + "COMMIT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "commit" + } + }, + "OFF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "off" + } + }, + "CHECKSPASS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "checksPass" + } + } + }, + "traits": { + "smithy.api#documentation": "The auto-deploy trigger value after it was re-enabled" + } + }, + "com.render.api#_0Case45": { + "type": "structure", + "members": { + "newTrigger": { + "target": "com.render.api#_0Case45NewTrigger", + "traits": { + "smithy.api#documentation": "The auto-deploy trigger value after it was re-enabled" + } + } + }, + "traits": {} + }, + "com.render.api#ServiceEventWithCursorEvent": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "timestamp": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "type": { + "target": "com.render.api#_0", + "traits": { + "smithy.api#required": {} + } + }, + "details": { + "target": "com.render.api#_02", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#ListEventsResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#ServiceEventWithCursor" + }, + "traits": {} + }, + "com.render.api#ListEventsResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListEventsResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListEvents": { + "type": "operation", + "input": { + "target": "com.render.api#ListEventsRequest" + }, + "output": { + "target": "com.render.api#ListEventsResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/services/{serviceId}/events", + "code": 200 + }, + "smithy.api#documentation": "List events\n\nList recent events that occurred for the service with the provided ID." + } + }, + "com.render.api#ListHeadersRequestPathList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListHeadersRequestNameList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListHeadersRequestValueList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListHeadersRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "path": { + "target": "com.render.api#ListHeadersRequestPathList", + "traits": { + "smithy.api#httpQuery": "path", + "smithy.api#documentation": "Filter for specific paths that headers apply to" + } + }, + "name": { + "target": "com.render.api#ListHeadersRequestNameList", + "traits": { + "smithy.api#httpQuery": "name", + "smithy.api#documentation": "Filter for header names" + } + }, + "value": { + "target": "com.render.api#ListHeadersRequestValueList", + "traits": { + "smithy.api#httpQuery": "value", + "smithy.api#documentation": "Filter for header values" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#HeaderWithCursor": { + "type": "structure", + "members": { + "header": { + "target": "com.render.api#Header", + "traits": { + "smithy.api#required": {} + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Header": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "path": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#ListHeadersResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#HeaderWithCursor" + }, + "traits": {} + }, + "com.render.api#ListHeadersResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListHeadersResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListHeaders": { + "type": "operation", + "input": { + "target": "com.render.api#ListHeadersRequest" + }, + "output": { + "target": "com.render.api#ListHeadersResponse" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/services/{serviceId}/headers", + "code": 200 + }, + "smithy.api#documentation": "List header rules\n\nList a particular service's response header rules that match the provided filters. If no filters are provided, all rules for the service are returned." + } + }, + "com.render.api#AddHeadersRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "path": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The request path to add the header to. Wildcards will cause headers to be applied to all matching paths.", + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Header name", + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Header value", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#AddHeadersResponse": { + "type": "structure", + "members": { + "headers": { + "target": "com.render.api#Header" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#AddHeaders": { + "type": "operation", + "input": { + "target": "com.render.api#AddHeadersRequest" + }, + "output": { + "target": "com.render.api#AddHeadersResponse" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/services/{serviceId}/headers", + "code": 200 + }, + "smithy.api#documentation": "Add header rule\n\nAdd a response header rule to the service with the provided ID." + } + }, + "com.render.api#UpdateHeadersRequestBodyList": { + "type": "list", + "member": { + "target": "com.render.api#HeaderInput" + }, + "traits": {} + }, + "com.render.api#UpdateHeadersRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "body": { + "target": "com.render.api#UpdateHeadersRequestBodyList", + "traits": { + "smithy.api#httpPayload": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UpdateHeadersResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#Header" + }, + "traits": {} + }, + "com.render.api#UpdateHeadersResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#UpdateHeadersResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#UpdateHeaders": { + "type": "operation", + "input": { + "target": "com.render.api#UpdateHeadersRequest" + }, + "output": { + "target": "com.render.api#UpdateHeadersResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "PUT", + "uri": "/services/{serviceId}/headers", + "code": 200 + }, + "smithy.api#documentation": "Replace header rules\n\nReplace all header rules for a particular service with the provided list.\n\n**This deletes all existing header rules for the service that aren't included in the request.**" + } + }, + "com.render.api#DeleteHeaderRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "headerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The id of the header" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeleteHeader": { + "type": "operation", + "input": { + "target": "com.render.api#DeleteHeaderRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/services/{serviceId}/headers/{headerId}", + "code": 200 + }, + "smithy.api#documentation": "Delete header rule\n\nDelete a particular response header rule for a particular service." + } + }, + "com.render.api#ListRoutesRequestTypeItem": { + "type": "enum", + "members": { + "REDIRECT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "redirect" + } + }, + "REWRITE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "rewrite" + } + } + }, + "traits": {} + }, + "com.render.api#ListRoutesRequestTypeList": { + "type": "list", + "member": { + "target": "com.render.api#ListRoutesRequestTypeItem" + }, + "traits": {} + }, + "com.render.api#ListRoutesRequestSourceList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListRoutesRequestDestinationList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListRoutesRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "type": { + "target": "com.render.api#ListRoutesRequestTypeList", + "traits": { + "smithy.api#httpQuery": "type", + "smithy.api#documentation": "Filter for the type of route rule" + } + }, + "source": { + "target": "com.render.api#ListRoutesRequestSourceList", + "traits": { + "smithy.api#httpQuery": "source", + "smithy.api#documentation": "Filter for the source path of the route" + } + }, + "destination": { + "target": "com.render.api#ListRoutesRequestDestinationList", + "traits": { + "smithy.api#httpQuery": "destination", + "smithy.api#documentation": "Filter for the destination path of the route" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RouteWithCursor": { + "type": "structure", + "members": { + "route": { + "target": "com.render.api#Route", + "traits": { + "smithy.api#required": {} + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Route": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "type": { + "target": "com.render.api#RouteType", + "traits": { + "smithy.api#required": {} + } + }, + "source": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "destination": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "priority": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "Redirect and Rewrite Rules are applied in priority order starting at 0", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#ListRoutesResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#RouteWithCursor" + }, + "traits": {} + }, + "com.render.api#ListRoutesResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListRoutesResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListRoutes": { + "type": "operation", + "input": { + "target": "com.render.api#ListRoutesRequest" + }, + "output": { + "target": "com.render.api#ListRoutesResponse" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/services/{serviceId}/routes", + "code": 200 + }, + "smithy.api#documentation": "List redirect/rewrite rules\n\nList a particular service's redirect/rewrite rules that match the provided filters. If no filters are provided, all rules for the service are returned." + } + }, + "com.render.api#AddRouteRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "type": { + "target": "com.render.api#RouteType", + "traits": { + "smithy.api#required": {} + } + }, + "source": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "destination": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "priority": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "Redirect and Rewrite Rules are applied in priority order starting at 0. Defaults to last in the priority list." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#AddRoute": { + "type": "operation", + "input": { + "target": "com.render.api#AddRouteRequest" + }, + "output": { + "target": "com.render.api#Route" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/services/{serviceId}/routes", + "code": 200 + }, + "smithy.api#documentation": "Add redirect/rewrite rules\n\nAdd redirect/rewrite rules to the service with the provided ID." + } + }, + "com.render.api#RoutePut": { + "type": "structure", + "members": { + "type": { + "target": "com.render.api#RouteType", + "traits": { + "smithy.api#required": {} + } + }, + "source": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "destination": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#PutRoutesRequestBodyList": { + "type": "list", + "member": { + "target": "com.render.api#RoutePut" + }, + "traits": {} + }, + "com.render.api#PutRoutesRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "body": { + "target": "com.render.api#PutRoutesRequestBodyList", + "traits": { + "smithy.api#httpPayload": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#PutRoutesResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#Route" + }, + "traits": {} + }, + "com.render.api#PutRoutesResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#PutRoutesResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#PutRoutes": { + "type": "operation", + "input": { + "target": "com.render.api#PutRoutesRequest" + }, + "output": { + "target": "com.render.api#PutRoutesResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "PUT", + "uri": "/services/{serviceId}/routes", + "code": 200 + }, + "smithy.api#documentation": "Update redirect/rewrite rules\n\nReplace all redirect/rewrite rules for a particular service with the provided list.\n\n**This deletes all existing redirect/rewrite rules for the service that aren't included in the request.**\n\nRule priority is assigned according to list order (the first rule in the list has the highest priority)." + } + }, + "com.render.api#PatchRouteRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "routeId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The id of the route" + } + }, + "priority": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "Redirect and Rewrite Rules are applied in priority order starting at 0. Moves this route to the specified priority and adjusts other route priorities accordingly.", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#PatchRouteResponse": { + "type": "structure", + "members": { + "headers": { + "target": "com.render.api#Route" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#PatchRoute": { + "type": "operation", + "input": { + "target": "com.render.api#PatchRouteRequest" + }, + "output": { + "target": "com.render.api#PatchRouteResponse" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "PATCH", + "uri": "/services/{serviceId}/routes/{routeId}", + "code": 200 + }, + "smithy.api#documentation": "Update redirect/rewrite rule priority\n\nUpdate the priority for a particular redirect/rewrite rule.\n\nTo apply redirect/rewrite rules to an incoming request, Render starts from the rule with priority `0` and applies the first encountered rule that matches the request's path (if any).\n\nRender increments the priority of other rules by `1` as necessary to make space for the updated rule." + } + }, + "com.render.api#DeleteRouteRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "routeId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The id of the route" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeleteRoute": { + "type": "operation", + "input": { + "target": "com.render.api#DeleteRouteRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/services/{serviceId}/routes/{routeId}", + "code": 200 + }, + "smithy.api#documentation": "Delete redirect/rewrite rule\n\nDelete a particular redirect/rewrite rule for a particular service." + } + }, + "com.render.api#ListCustomDomainsRequestNameList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListCustomDomainsRequestDomainType": { + "type": "enum", + "members": { + "APEX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "apex" + } + }, + "SUBDOMAIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "subdomain" + } + } + }, + "traits": {} + }, + "com.render.api#ListCustomDomainsRequestVerificationStatus": { + "type": "enum", + "members": { + "VERIFIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "verified" + } + }, + "UNVERIFIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unverified" + } + } + }, + "traits": {} + }, + "com.render.api#ListCustomDomainsRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "name": { + "target": "com.render.api#ListCustomDomainsRequestNameList", + "traits": { + "smithy.api#httpQuery": "name", + "smithy.api#documentation": "Filter for the names of custom domain" + } + }, + "domainType": { + "target": "com.render.api#ListCustomDomainsRequestDomainType", + "traits": { + "smithy.api#httpQuery": "domainType", + "smithy.api#documentation": "Filter for domain type" + } + }, + "verificationStatus": { + "target": "com.render.api#ListCustomDomainsRequestVerificationStatus", + "traits": { + "smithy.api#httpQuery": "verificationStatus", + "smithy.api#documentation": "Filter for domain verification status (`verified` or `unverified`)" + } + }, + "createdBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "createdBefore", + "smithy.api#documentation": "Filter for custom domains created before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "createdAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "createdAfter", + "smithy.api#documentation": "Filter for custom domains created after a certain time (specified as an ISO 8601 timestamp)" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#CustomDomainWithCursor": { + "type": "structure", + "members": { + "customDomain": { + "target": "com.render.api#CustomDomain", + "traits": { + "smithy.api#required": {} + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#CustomDomain": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "domainType": { + "target": "com.render.api#CustomDomainDomainType", + "traits": { + "smithy.api#required": {} + } + }, + "publicSuffix": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "redirectForName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "verificationStatus": { + "target": "com.render.api#CustomDomainVerificationStatus", + "traits": { + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "server": { + "target": "com.render.api#CustomDomainServer" + } + }, + "traits": {} + }, + "com.render.api#CustomDomainDomainType": { + "type": "enum", + "members": { + "APEX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "apex" + } + }, + "SUBDOMAIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "subdomain" + } + } + }, + "traits": {} + }, + "com.render.api#CustomDomainVerificationStatus": { + "type": "enum", + "members": { + "VERIFIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "verified" + } + }, + "UNVERIFIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unverified" + } + } + }, + "traits": {} + }, + "com.render.api#CustomDomainServer": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String" + }, + "name": { + "target": "smithy.api#String" + } + }, + "traits": {} + }, + "com.render.api#ListCustomDomainsResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#CustomDomainWithCursor" + }, + "traits": {} + }, + "com.render.api#ListCustomDomainsResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListCustomDomainsResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListCustomDomains": { + "type": "operation", + "input": { + "target": "com.render.api#ListCustomDomainsRequest" + }, + "output": { + "target": "com.render.api#ListCustomDomainsResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/services/{serviceId}/custom-domains", + "code": 200 + }, + "smithy.api#documentation": "List custom domains\n\nList a particular service's custom domains that match the provided filters. If no filters are provided, all custom domains for the service are returned." + } + }, + "com.render.api#CreateCustomDomainRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#CreateCustomDomainResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#CustomDomain" + }, + "traits": {} + }, + "com.render.api#CreateCustomDomainResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#CreateCustomDomainResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#CreateCustomDomain": { + "type": "operation", + "input": { + "target": "com.render.api#CreateCustomDomainRequest" + }, + "output": { + "target": "com.render.api#CreateCustomDomainResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + }, + { + "target": "com.render.api#Conflict" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/services/{serviceId}/custom-domains", + "code": 200 + }, + "smithy.api#documentation": "Add custom domain\n\nAdd a custom domain to the service with the provided ID." + } + }, + "com.render.api#RetrieveCustomDomainRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "customDomainNameOrID": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID or name of the custom domain" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrieveCustomDomain": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveCustomDomainRequest" + }, + "output": { + "target": "com.render.api#CustomDomain" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/services/{serviceId}/custom-domains/{customDomainNameOrID}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve custom domain\n\nRetrieve a particular custom domain for a particular service." + } + }, + "com.render.api#DeleteCustomDomainRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "customDomainNameOrID": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID or name of the custom domain" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeleteCustomDomain": { + "type": "operation", + "input": { + "target": "com.render.api#DeleteCustomDomainRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/services/{serviceId}/custom-domains/{customDomainNameOrID}", + "code": 200 + }, + "smithy.api#documentation": "Delete custom domain\n\nDelete a custom domain for a service given the service id and custom domain id or name." + } + }, + "com.render.api#RefreshCustomDomainRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "customDomainNameOrID": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID or name of the custom domain" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RefreshCustomDomain": { + "type": "operation", + "input": { + "target": "com.render.api#RefreshCustomDomainRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/services/{serviceId}/custom-domains/{customDomainNameOrID}/verify", + "code": 200 + }, + "smithy.api#documentation": "Verify DNS configuration\n\nVerify the DNS configuration for a custom domain." + } + }, + "com.render.api#SuspendServiceRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#SuspendService": { + "type": "operation", + "input": { + "target": "com.render.api#SuspendServiceRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/services/{serviceId}/suspend", + "code": 200 + }, + "smithy.api#documentation": "Suspend service\n\nSuspend the service with the provided ID." + } + }, + "com.render.api#ResumeServiceRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#ResumeService": { + "type": "operation", + "input": { + "target": "com.render.api#ResumeServiceRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/services/{serviceId}/resume", + "code": 200 + }, + "smithy.api#documentation": "Resume service\n\nResume the service with the provided ID (if it's currently suspended)." + } + }, + "com.render.api#RestartServiceRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RestartService": { + "type": "operation", + "input": { + "target": "com.render.api#RestartServiceRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/services/{serviceId}/restart", + "code": 200 + }, + "smithy.api#documentation": "Restart service\n\nRestart the service with the provided ID.\n\nNot supported for cron jobs." + } + }, + "com.render.api#ScaleServiceRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "numInstances": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#ScaleService": { + "type": "operation", + "input": { + "target": "com.render.api#ScaleServiceRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/services/{serviceId}/scale", + "code": 200 + }, + "smithy.api#documentation": "Scale instance count\n\n[Scale](https://render.com/docs/scaling#manual-scaling) the service with the provided ID to a fixed number of instances.\n\nRender ignores this value as long as autoscaling is enabled for the service." + } + }, + "com.render.api#AutoscaleServiceRequestCriteriaCpu": { + "type": "structure", + "members": { + "enabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "percentage": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "Determines when your service will be scaled. If the average resource utilization is significantly above/below the target, we will increase/decrease the number of instances.\n", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#AutoscaleServiceRequestCriteria": { + "type": "structure", + "members": { + "cpu": { + "target": "com.render.api#AutoscaleServiceRequestCriteriaCpu", + "traits": { + "smithy.api#required": {} + } + }, + "memory": { + "target": "com.render.api#Cpu", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#AutoscaleServiceRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "enabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "min": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "The minimum number of instances for the service", + "smithy.api#required": {} + } + }, + "max": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "The maximum number of instances for the service", + "smithy.api#required": {} + } + }, + "criteria": { + "target": "com.render.api#AutoscaleServiceRequestCriteria", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#AutoscaleService": { + "type": "operation", + "input": { + "target": "com.render.api#AutoscaleServiceRequest" + }, + "output": { + "target": "com.render.api#Schema5" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "PUT", + "uri": "/services/{serviceId}/autoscaling", + "code": 200 + }, + "smithy.api#documentation": "Update autoscaling config\n\nUpdate the [autoscaling](https://render.com/docs/scaling#autoscaling) config for the service with the provided ID." + } + }, + "com.render.api#DeleteAutoscalingConfigRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeleteAutoscalingConfig": { + "type": "operation", + "input": { + "target": "com.render.api#DeleteAutoscalingConfigRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/services/{serviceId}/autoscaling", + "code": 200 + }, + "smithy.api#documentation": "Delete autoscaling config\n\nDelete the autoscaling config for a service given the service id." + } + }, + "com.render.api#PreviewServiceRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "imagePath": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Must be either a full URL or the relative path to an image. If a relative path, Render uses the base service's image URL as its root. For example, if the base service's image URL is `docker.io/library/nginx:latest`, then valid values are: `docker.io/library/nginx:`, `library/nginx:`, or `nginx:`. Note that the path must match (only the tag or SHA can vary).", + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "A name for the service preview instance. If not specified, Render generates the name using the base service's name and the specified tag or SHA." + } + }, + "plan": { + "target": "com.render.api#Plan" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#PreviewService": { + "type": "operation", + "input": { + "target": "com.render.api#PreviewServiceRequest" + }, + "output": { + "target": "com.render.api#ServiceAndDeploy" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/services/{serviceId}/preview", + "code": 200 + }, + "smithy.api#documentation": "Create service preview (image-backed)\n\nCreate a preview instance for an image-backed service. The preview uses the settings of the base service (referenced by `serviceId`), except settings overridden via provided parameters.\n\nView all active previews from your service's Previews tab in the Render Dashboard.\n\nNote that you can't create previews for Git-backed services using the Render API." + } + }, + "com.render.api#ListJobRequestStatusItem": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "RUNNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "running" + } + }, + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "succeeded" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "CANCELED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "canceled" + } + } + }, + "traits": {} + }, + "com.render.api#ListJobRequestStatusList": { + "type": "list", + "member": { + "target": "com.render.api#ListJobRequestStatusItem" + }, + "traits": {} + }, + "com.render.api#ListJobRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "status": { + "target": "com.render.api#ListJobRequestStatusList", + "traits": { + "smithy.api#httpQuery": "status", + "smithy.api#documentation": "Filter for the status of the job (`pending`, `running`, `succeeded`, `failed`, or `canceled`)" + } + }, + "createdBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "createdBefore", + "smithy.api#documentation": "Filter for jobs created before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "createdAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "createdAfter", + "smithy.api#documentation": "Filter for jobs created after a certain time (specified as an ISO 8601 timestamp)" + } + }, + "startedBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startedBefore", + "smithy.api#documentation": "Filter for jobs started before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "startedAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startedAfter", + "smithy.api#documentation": "Filter for jobs started after a certain time (specified as an ISO 8601 timestamp)" + } + }, + "finishedBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "finishedBefore", + "smithy.api#documentation": "Filter for jobs finished before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "finishedAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "finishedAfter", + "smithy.api#documentation": "Filter for jobs finished after a certain time (specified as an ISO 8601 timestamp)" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#JobWithCursor": { + "type": "structure", + "members": { + "job": { + "target": "com.render.api#Schema7", + "traits": { + "smithy.api#required": {} + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Schema7": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "startCommand": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "planId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#Items2" + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "startedAt": { + "target": "smithy.api#String" + }, + "finishedAt": { + "target": "smithy.api#String" + } + }, + "traits": {} + }, + "com.render.api#ListJobResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#JobWithCursor" + }, + "traits": {} + }, + "com.render.api#ListJobResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListJobResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListJob": { + "type": "operation", + "input": { + "target": "com.render.api#ListJobRequest" + }, + "output": { + "target": "com.render.api#ListJobResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/services/{serviceId}/jobs", + "code": 200 + }, + "smithy.api#documentation": "List jobs\n\nList jobs for the provided service that match the provided filters. If no filters are provided, all jobs for the service are returned." + } + }, + "com.render.api#PostJobRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "startCommand": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "planId": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#PostJobResponse": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "startCommand": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "planId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#Items2" + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "startedAt": { + "target": "smithy.api#String" + }, + "finishedAt": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#PostJob": { + "type": "operation", + "input": { + "target": "com.render.api#PostJobRequest" + }, + "output": { + "target": "com.render.api#PostJobResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/services/{serviceId}/jobs", + "code": 200 + }, + "smithy.api#documentation": "Create job\n\nCreate a one-off job using the provided service. For details, see [One-Off Jobs](https://render.com/docs/one-off-jobs)." + } + }, + "com.render.api#RetrieveJobRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "jobId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the job" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrieveJob": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveJobRequest" + }, + "output": { + "target": "com.render.api#Schema7" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/services/{serviceId}/jobs/{jobId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve job\n\nRetrieve the details of a particular one-off job for a particular service." + } + }, + "com.render.api#CancelJobRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + }, + "jobId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the job" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#CancelJob": { + "type": "operation", + "input": { + "target": "com.render.api#CancelJobRequest" + }, + "output": { + "target": "com.render.api#Schema7" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/services/{serviceId}/jobs/{jobId}/cancel", + "code": 200 + }, + "smithy.api#documentation": "Cancel running job\n\nCancel a particular one-off job for a particular service." + } + }, + "com.render.api#ListInstancesRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#ServiceInstance": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#ListInstancesResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#ServiceInstance" + }, + "traits": {} + }, + "com.render.api#ListInstancesResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListInstancesResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListInstances": { + "type": "operation", + "input": { + "target": "com.render.api#ListInstancesRequest" + }, + "output": { + "target": "com.render.api#ListInstancesResponse" + }, + "errors": [ + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/services/{serviceId}/instances", + "code": 200 + }, + "smithy.api#documentation": "List instances\n\nList instances for the provided service." + } + }, + "com.render.api#RetrieveServiceOutboundIpsRequest": { + "type": "structure", + "members": { + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#OutboundIps": { + "type": "structure", + "members": { + "type": { + "target": "com.render.api#OutboundIpsType", + "traits": { + "smithy.api#documentation": "`dedicated` if a dedicated IP set applies to the resource, `shared` if its traffic originates from the shared Render IPs for its region.\n", + "smithy.api#required": {} + } + }, + "dedicatedIpId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The dedicated IP set the traffic originates from. Only present when `type` is `dedicated`." + } + }, + "ips": { + "target": "com.render.api#OutboundIpsIpsList", + "traits": { + "smithy.api#documentation": "The IP addresses the resource's outbound traffic originates from.", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#OutboundIpsType": { + "type": "enum", + "members": { + "SHARED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "shared" + } + }, + "DEDICATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "dedicated" + } + } + }, + "traits": { + "smithy.api#documentation": "`dedicated` if a dedicated IP set applies to the resource, `shared` if its traffic originates from the shared Render IPs for its region.\n" + } + }, + "com.render.api#OutboundIpsIpsList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": { + "smithy.api#documentation": "The IP addresses the resource's outbound traffic originates from." + } + }, + "com.render.api#RetrieveServiceOutboundIps": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveServiceOutboundIpsRequest" + }, + "output": { + "target": "com.render.api#OutboundIps" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/services/{serviceId}/outbound-ips", + "code": 200 + }, + "smithy.api#documentation": "Retrieve service outbound IPs\n\nRetrieve the IP addresses the service's outbound traffic originates from.\n\nA service uses either a dedicated IP set that applies to it, or the shared Render IPs for its region." + } + }, + "com.render.api#RunCronJobRequest": { + "type": "structure", + "members": { + "cronJobId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the cron job" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#CronJobRun": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the run", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#CronJobRunStatus", + "traits": { + "smithy.api#required": {} + } + }, + "startedAt": { + "target": "smithy.api#String" + }, + "finishedAt": { + "target": "smithy.api#String" + }, + "triggeredBy": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "user who triggered the cron job run" + } + }, + "canceledBy": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "user who cancelled the cron job run" + } + } + }, + "traits": { + "smithy.api#documentation": "A run of a cron job" + } + }, + "com.render.api#CronJobRunStatus": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "SUCCESSFUL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "successful" + } + }, + "UNSUCCESSFUL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unsuccessful" + } + }, + "CANCELED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "canceled" + } + } + }, + "traits": {} + }, + "com.render.api#RunCronJob": { + "type": "operation", + "input": { + "target": "com.render.api#RunCronJobRequest" + }, + "output": { + "target": "com.render.api#CronJobRun" + }, + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/cron-jobs/{cronJobId}/runs", + "code": 200 + }, + "smithy.api#documentation": "Trigger cron job run\n\nTrigger a run for a cron job and cancel any active runs." + } + }, + "com.render.api#CancelCronJobRunRequest": { + "type": "structure", + "members": { + "cronJobId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the cron job" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#CancelCronJobRun": { + "type": "operation", + "input": { + "target": "com.render.api#CancelCronJobRunRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/cron-jobs/{cronJobId}/runs", + "code": 200 + }, + "smithy.api#documentation": "Cancel running cron job\n\nCancel a currently running cron job." + } + }, + "com.render.api#RetrieveEventRequest": { + "type": "structure", + "members": { + "eventId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the event" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrieveEventResponseType": { + "type": "enum", + "members": { + "ARTIFACT_FETCH_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "artifact_fetch_failed" + } + }, + "ARTIFACT_SOURCE_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "artifact_source_changed" + } + }, + "AUTOSCALING_CONFIG_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "autoscaling_config_changed" + } + }, + "AUTOSCALING_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "autoscaling_ended" + } + }, + "AUTOSCALING_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "autoscaling_started" + } + }, + "BRANCH_DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "branch_deleted" + } + }, + "BUILD_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "build_ended" + } + }, + "BUILD_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "build_started" + } + }, + "COMMIT_IGNORED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "commit_ignored" + } + }, + "CRON_JOB_RUN_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cron_job_run_ended" + } + }, + "CRON_JOB_RUN_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cron_job_run_started" + } + }, + "DEPLOY_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deploy_ended" + } + }, + "DEPLOY_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deploy_started" + } + }, + "DISK_CREATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disk_created" + } + }, + "DISK_UPDATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disk_updated" + } + }, + "DISK_DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disk_deleted" + } + }, + "IMAGE_PULL_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "image_pull_failed" + } + }, + "INSTANCE_COUNT_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance_count_changed" + } + }, + "JOB_RUN_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "job_run_ended" + } + }, + "MAINTENANCE_MODE_ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "maintenance_mode_enabled" + } + }, + "MAINTENANCE_MODE_URI_UPDATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "maintenance_mode_uri_updated" + } + }, + "MAINTENANCE_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "maintenance_ended" + } + }, + "MAINTENANCE_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "maintenance_started" + } + }, + "PIPELINE_MINUTES_EXHAUSTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pipeline_minutes_exhausted" + } + }, + "PLAN_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "plan_changed" + } + }, + "PRE_DEPLOY_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pre_deploy_ended" + } + }, + "PRE_DEPLOY_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pre_deploy_started" + } + }, + "SERVER_AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "server_available" + } + }, + "SERVER_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "server_failed" + } + }, + "SERVER_HARDWARE_FAILURE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "server_hardware_failure" + } + }, + "SERVER_RESTARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "server_restarted" + } + }, + "SERVICE_RESUMED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "service_resumed" + } + }, + "SERVICE_SUSPENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "service_suspended" + } + }, + "ZERO_DOWNTIME_REDEPLOY_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "zero_downtime_redeploy_ended" + } + }, + "ZERO_DOWNTIME_REDEPLOY_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "zero_downtime_redeploy_started" + } + }, + "EDGE_CACHE_ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "edge_cache_enabled" + } + }, + "EDGE_CACHE_DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "edge_cache_disabled" + } + }, + "EDGE_CACHE_PURGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "edge_cache_purged" + } + }, + "AUTO_DEPLOY_DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "auto_deploy_disabled" + } + }, + "AUTO_DEPLOY_ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "auto_deploy_enabled" + } + }, + "POSTGRES_AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_available" + } + }, + "POSTGRES_BACKUP_COMPLETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_backup_completed" + } + }, + "POSTGRES_BACKUP_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_backup_failed" + } + }, + "POSTGRES_BACKUP_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_backup_started" + } + }, + "POSTGRES_CLUSTER_LEADER_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_cluster_leader_changed" + } + }, + "POSTGRES_CONNECTION_POOL_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_connection_pool_changed" + } + }, + "POSTGRES_CONNECTION_POOL_ENABLED_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_connection_pool_enabled_changed" + } + }, + "POSTGRES_CREATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_created" + } + }, + "POSTGRES_DISK_SIZE_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_disk_size_changed" + } + }, + "POSTGRES_DISK_AUTOSCALING_ENABLED_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_disk_autoscaling_enabled_changed" + } + }, + "POSTGRES_HA_STATUS_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_ha_status_changed" + } + }, + "POSTGRES_RESTARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_restarted" + } + }, + "POSTGRES_UNAVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_unavailable" + } + }, + "POSTGRES_UPGRADE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_upgrade_failed" + } + }, + "POSTGRES_UPGRADE_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_upgrade_started" + } + }, + "POSTGRES_UPGRADE_SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_upgrade_succeeded" + } + }, + "POSTGRES_RESTORE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_restore_failed" + } + }, + "POSTGRES_RESTORE_SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_restore_succeeded" + } + }, + "POSTGRES_READ_REPLICAS_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_read_replicas_changed" + } + }, + "POSTGRES_PITR_CHECKPOINT_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_pitr_checkpoint_started" + } + }, + "POSTGRES_PITR_CHECKPOINT_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_pitr_checkpoint_failed" + } + }, + "POSTGRES_PITR_CHECKPOINT_COMPLETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_pitr_checkpoint_completed" + } + }, + "POSTGRES_READ_REPLICA_STALE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_read_replica_stale" + } + }, + "POSTGRES_WAL_ARCHIVE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_wal_archive_failed" + } + }, + "KEY_VALUE_AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "key_value_available" + } + }, + "KEY_VALUE_CONFIG_RESTART": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "key_value_config_restart" + } + }, + "KEY_VALUE_UNHEALTHY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "key_value_unhealthy" + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case0": { + "type": "structure", + "members": { + "artifactId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case1": { + "type": "structure", + "members": { + "fromArtifactSourceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The previously linked artifact source. Absent when the service was newly attached." + } + }, + "toArtifactSourceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The newly linked artifact source. Absent when the service was detached." + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case2": { + "type": "structure", + "members": { + "fromConfig": { + "target": "com.render.api#Schema5" + }, + "toConfig": { + "target": "com.render.api#Schema5", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case3": { + "type": "structure", + "members": { + "fromInstances": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "toInstances": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case4": { + "type": "structure", + "members": { + "fromInstances": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "toInstances": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "currentCPU": { + "target": "smithy.api#Integer" + }, + "targetCPU": { + "target": "smithy.api#Integer" + }, + "currentMemory": { + "target": "smithy.api#Integer" + }, + "targetMemory": { + "target": "smithy.api#Integer" + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case5": { + "type": "structure", + "members": { + "deletedBranch": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "newBranch": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case6BuildStatus": { + "type": "enum", + "members": { + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "succeeded" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "CANCELED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "canceled" + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case6ReasonNewBuild": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case6Reason": { + "type": "structure", + "members": { + "buildFailed": { + "target": "com.render.api#NewBuild" + }, + "newBuild": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case6ReasonNewBuild" + }, + "newDeploy": { + "target": "com.render.api#NewBuild" + }, + "failure": { + "target": "com.render.api#Reason" + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case6": { + "type": "structure", + "members": { + "buildId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "buildStatus": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case6BuildStatus", + "traits": { + "smithy.api#required": {} + } + }, + "reason": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case6Reason", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case7Trigger": { + "type": "structure", + "members": { + "firstBuild": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Deploy was triggered by service creation", + "smithy.api#required": {} + } + }, + "envUpdated": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Deploy was triggered by an environment update", + "smithy.api#required": {} + } + }, + "manual": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Deploy was triggered manually from the dashboard", + "smithy.api#required": {} + } + }, + "user": { + "target": "com.render.api#User2" + }, + "updatedProperty": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Updated property that triggered the deploy" + } + }, + "newCommit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Commit that triggered the deploy" + } + }, + "deployedByRender": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Deploy was triggered by Render", + "smithy.api#required": {} + } + }, + "clearCache": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Whether the cache was cleared for the deploy", + "smithy.api#required": {} + } + }, + "rollback": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Whether the deploy was triggered by a rollback", + "smithy.api#required": {} + } + }, + "rollbackTargetDeployId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Deploy ID that was rolled back to" + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case7": { + "type": "structure", + "members": { + "buildId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "trigger": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case7Trigger", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case8": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "the commit id", + "smithy.api#required": {} + } + }, + "url": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "the commit url", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case9Status": { + "type": "enum", + "members": { + "CANCELED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "canceled" + } + }, + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "SUCCESSFUL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "successful" + } + }, + "UNSUCCESSFUL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unsuccessful" + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case9ReasonOomKilled": { + "type": "structure", + "members": { + "memoryLimit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case9Reason": { + "type": "structure", + "members": { + "evicted": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "evictionReason": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Details about why the application was evicted." + } + }, + "nonZeroExit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "If present, the application exited with the specified non-zero status." + } + }, + "earlyExit": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "If true, the application exited early. Services besides cron jobs should not exit unless receiving a `SIGTERM` signal from Render." + } + }, + "oomKilled": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case9ReasonOomKilled" + }, + "timedOutSeconds": { + "target": "smithy.api#Integer" + }, + "unhealthy": { + "target": "smithy.api#String" + }, + "timedOutReason": { + "target": "smithy.api#String" + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case9User": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "email": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "User who triggered the action" + } + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case9": { + "type": "structure", + "members": { + "cronJobRunId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case9Status", + "traits": { + "smithy.api#required": {} + } + }, + "reason": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case9Reason" + }, + "user": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case9User", + "traits": { + "smithy.api#documentation": "User who triggered the action" + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case10": { + "type": "structure", + "members": { + "cronJobRunId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case11": { + "type": "structure", + "members": { + "deployId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "reason": { + "target": "com.render.api#Reason2", + "traits": { + "smithy.api#required": {} + } + }, + "deployStatus": { + "target": "com.render.api#BuildStatus", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "artifactId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Set when the deploy shipped an artifact published by the service's linked artifact source." + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case12": { + "type": "structure", + "members": { + "deployId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "trigger": { + "target": "com.render.api#Trigger", + "traits": { + "smithy.api#required": {} + } + }, + "artifactId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Set when the deploy ships an artifact published by the service's linked artifact source." + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case13": { + "type": "structure", + "members": { + "diskId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "sizeGB": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case14": { + "type": "structure", + "members": { + "diskId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "fromSizeGB": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "toSizeGB": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case15": { + "type": "structure", + "members": { + "diskId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case16": { + "type": "structure", + "members": { + "diskId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "diskName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "mountPath": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "usagePercent": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + }, + "thresholdPercent": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case17": { + "type": "structure", + "members": { + "diskId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "diskName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "mountPath": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "usagePercent": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + }, + "thresholdPercent": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case18": { + "type": "structure", + "members": { + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "imageURL": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case19": { + "type": "structure", + "members": { + "deployId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case20": { + "type": "structure", + "members": { + "deployId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case21": { + "type": "structure", + "members": { + "fromInstances": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "toInstances": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case22": { + "type": "structure", + "members": { + "jobId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#Items2", + "traits": { + "smithy.api#required": {} + } + }, + "reason": { + "target": "com.render.api#Reason" + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case23": { + "type": "structure", + "members": { + "enabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case24": { + "type": "structure", + "members": { + "fromURI": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "toURI": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case26Trigger": { + "type": "structure", + "members": { + "user": { + "target": "com.render.api#User2" + }, + "manual": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Maintenance was triggered manually", + "smithy.api#required": {} + } + }, + "startedByRender": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Maintenance was triggered by Render", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case26": { + "type": "structure", + "members": { + "trigger": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case26Trigger", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case27": { + "type": "structure", + "members": { + "buildId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "trigger": { + "target": "com.render.api#Trigger", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case28": { + "type": "structure", + "members": { + "from": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "to": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case29": { + "type": "structure", + "members": { + "deployCommandExecutionId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "deployId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "preDeployStatus": { + "target": "com.render.api#BuildStatus", + "traits": { + "smithy.api#required": {} + } + }, + "reason": { + "target": "com.render.api#Reason2", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case30": { + "type": "structure", + "members": { + "deployCommandExecutionId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "deployId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case32": { + "type": "structure", + "members": { + "instanceID": { + "target": "smithy.api#String" + }, + "reason": { + "target": "com.render.api#Reason" + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case34": { + "type": "structure", + "members": { + "triggeredByUser": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {}, + "com.distilled.openapi#nullable": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case37": { + "type": "structure", + "members": { + "actor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "suspendedByUser": { + "target": "com.render.api#User2" + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case38": { + "type": "structure", + "members": { + "actor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "resumedByUser": { + "target": "com.render.api#User2" + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case40": { + "type": "structure", + "members": { + "trigger": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case41Trigger": { + "type": "structure", + "members": { + "manual": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Edge Cache change was triggered manually from the dashboard", + "smithy.api#required": {} + } + }, + "user": { + "target": "com.render.api#User2" + }, + "system": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Edge Cache Change was triggered by Render", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case41": { + "type": "structure", + "members": { + "trigger": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case41Trigger", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case42": { + "type": "structure", + "members": { + "trigger": { + "target": "com.render.api#Trigger2", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case43": { + "type": "structure", + "members": { + "trigger": { + "target": "com.render.api#Trigger2", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case44": { + "type": "structure", + "members": { + "reason": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Why auto-deploy was disabled (manual_deploy, rollback, or setting_change)", + "smithy.api#required": {} + } + }, + "fromTrigger": { + "target": "com.render.api#NewTrigger", + "traits": { + "smithy.api#documentation": "The auto-deploy trigger value immediately before it was disabled" + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case45NewTrigger": { + "type": "enum", + "members": { + "COMMIT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "commit" + } + }, + "OFF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "off" + } + }, + "CHECKSPASS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "checksPass" + } + } + }, + "traits": { + "smithy.api#documentation": "The auto-deploy trigger value after it was re-enabled" + } + }, + "com.render.api#RetrieveEventResponseDetailsCase0Case45": { + "type": "structure", + "members": { + "newTrigger": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case45NewTrigger", + "traits": { + "smithy.api#documentation": "The auto-deploy trigger value after it was re-enabled" + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase0": { + "type": "union", + "members": { + "Case0": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case0" + }, + "Case1": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case1" + }, + "Case2": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case2" + }, + "Case3": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case3" + }, + "Case4": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case4" + }, + "Case5": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case5" + }, + "Case6": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case6" + }, + "Case7": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case7" + }, + "Case8": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case8" + }, + "Case9": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case9" + }, + "Case10": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case10" + }, + "Case11": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case11" + }, + "Case12": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case12" + }, + "Case13": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case13" + }, + "Case14": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case14" + }, + "Case15": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case15" + }, + "Case16": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case16" + }, + "Case17": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case17" + }, + "Case18": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case18" + }, + "Case19": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case19" + }, + "Case20": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case20" + }, + "Case21": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case21" + }, + "Case22": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case22" + }, + "Case23": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case23" + }, + "Case24": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case24" + }, + "Case25": { + "target": "smithy.api#Document" + }, + "Case26": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case26" + }, + "Case27": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case27" + }, + "Case28": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case28" + }, + "Case29": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case29" + }, + "Case30": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case30" + }, + "Case32": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case32" + }, + "Case34": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case34" + }, + "Case37": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case37" + }, + "Case38": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case38" + }, + "Case40": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case40" + }, + "Case41": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case41" + }, + "Case42": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case42" + }, + "Case43": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case43" + }, + "Case44": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case44" + }, + "Case45": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0Case45" + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase1Case4": { + "type": "structure", + "members": { + "leaderId": { + "target": "smithy.api#String" + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase1Case5": { + "type": "structure", + "members": { + "user": { + "target": "com.render.api#User2" + }, + "from": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "to": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase1Case6": { + "type": "structure", + "members": { + "user": { + "target": "com.render.api#User2" + }, + "enabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase1Case7": { + "type": "structure", + "members": { + "user": { + "target": "com.render.api#User2" + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase1Case8": { + "type": "structure", + "members": { + "user": { + "target": "com.render.api#User2" + }, + "fromDiskSize": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "toDiskSize": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase1Case9": { + "type": "structure", + "members": { + "fromStatus": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "toStatus": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase1Case10": { + "type": "structure", + "members": { + "fromReplicas": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "toReplicas": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase1Case11": { + "type": "structure", + "members": { + "user": { + "target": "com.render.api#User2" + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase1Case13": { + "type": "structure", + "members": { + "fromVersion": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "toVersion": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase1Case14": { + "type": "structure", + "members": { + "user": { + "target": "com.render.api#User2" + }, + "fromVersion": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "toVersion": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase1Case15": { + "type": "structure", + "members": { + "fromVersion": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "toVersion": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase1": { + "type": "union", + "members": { + "Case0": { + "target": "smithy.api#Document" + }, + "Case4": { + "target": "com.render.api#RetrieveEventResponseDetailsCase1Case4" + }, + "Case5": { + "target": "com.render.api#RetrieveEventResponseDetailsCase1Case5" + }, + "Case6": { + "target": "com.render.api#RetrieveEventResponseDetailsCase1Case6" + }, + "Case7": { + "target": "com.render.api#RetrieveEventResponseDetailsCase1Case7" + }, + "Case8": { + "target": "com.render.api#RetrieveEventResponseDetailsCase1Case8" + }, + "Case9": { + "target": "com.render.api#RetrieveEventResponseDetailsCase1Case9" + }, + "Case10": { + "target": "com.render.api#RetrieveEventResponseDetailsCase1Case10" + }, + "Case11": { + "target": "com.render.api#RetrieveEventResponseDetailsCase1Case11" + }, + "Case13": { + "target": "com.render.api#RetrieveEventResponseDetailsCase1Case13" + }, + "Case14": { + "target": "com.render.api#RetrieveEventResponseDetailsCase1Case14" + }, + "Case15": { + "target": "com.render.api#RetrieveEventResponseDetailsCase1Case15" + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase2Case1": { + "type": "structure", + "members": { + "reason": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetailsCase2": { + "type": "union", + "members": { + "Case0": { + "target": "smithy.api#Document" + }, + "Case1": { + "target": "com.render.api#RetrieveEventResponseDetailsCase2Case1" + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponseDetails": { + "type": "union", + "members": { + "Case0": { + "target": "com.render.api#RetrieveEventResponseDetailsCase0" + }, + "Case1": { + "target": "com.render.api#RetrieveEventResponseDetailsCase1" + }, + "Case2": { + "target": "com.render.api#RetrieveEventResponseDetailsCase2" + } + }, + "traits": {} + }, + "com.render.api#RetrieveEventResponse": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "timestamp": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "type": { + "target": "com.render.api#RetrieveEventResponseType", + "traits": { + "smithy.api#required": {} + } + }, + "details": { + "target": "com.render.api#RetrieveEventResponseDetails", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#RetrieveEvent": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveEventRequest" + }, + "output": { + "target": "com.render.api#RetrieveEventResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/events/{eventId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve event\n\nRetrieve the details of a particular event" + } + }, + "com.render.api#ListLogsRequestDirection": { + "type": "enum", + "members": { + "FORWARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "forward" + } + }, + "BACKWARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "backward" + } + } + }, + "traits": {} + }, + "com.render.api#ListLogsRequestResourceList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsRequestInstanceList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsRequestHostList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsRequestStatusCodeList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsRequestMethodList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsRequestTaskList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsRequestTaskRunList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsRequestSandboxList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsRequestLevelList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsRequestTypeList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsRequestTextList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsRequestPathList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "ownerId", + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the workspace to return logs for" + } + }, + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "direction": { + "target": "com.render.api#ListLogsRequestDirection", + "traits": { + "smithy.api#httpQuery": "direction", + "smithy.api#documentation": "The direction to query logs for. Backward will return most recent logs first.\nForward will start with the oldest logs in the time range.\n" + } + }, + "resource": { + "target": "com.render.api#ListLogsRequestResourceList", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#required": {}, + "smithy.api#documentation": "Filter logs by their resource. A resource is the id of a server, cronjob, job, postgres, redis, workflow, or sandbox group." + } + }, + "instance": { + "target": "com.render.api#ListLogsRequestInstanceList", + "traits": { + "smithy.api#httpQuery": "instance", + "smithy.api#documentation": "Filter logs by the instance they were emitted from. An instance is the id of a specific running server." + } + }, + "host": { + "target": "com.render.api#ListLogsRequestHostList", + "traits": { + "smithy.api#httpQuery": "host", + "smithy.api#documentation": "Filter request logs by their host. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported." + } + }, + "statusCode": { + "target": "com.render.api#ListLogsRequestStatusCodeList", + "traits": { + "smithy.api#httpQuery": "statusCode", + "smithy.api#documentation": "Filter request logs by their status code. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported." + } + }, + "method": { + "target": "com.render.api#ListLogsRequestMethodList", + "traits": { + "smithy.api#httpQuery": "method", + "smithy.api#documentation": "Filter request logs by their requests method. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported." + } + }, + "task": { + "target": "com.render.api#ListLogsRequestTaskList", + "traits": { + "smithy.api#httpQuery": "task", + "smithy.api#documentation": "Filter logs by their task(s)" + } + }, + "taskRun": { + "target": "com.render.api#ListLogsRequestTaskRunList", + "traits": { + "smithy.api#httpQuery": "taskRun", + "smithy.api#documentation": "Filter logs by their task run id(s)" + } + }, + "sandbox": { + "target": "com.render.api#ListLogsRequestSandboxList", + "traits": { + "smithy.api#httpQuery": "sandbox", + "smithy.api#documentation": "Filter logs by sandbox ID." + } + }, + "level": { + "target": "com.render.api#ListLogsRequestLevelList", + "traits": { + "smithy.api#httpQuery": "level", + "smithy.api#documentation": "Filter logs by their severity level. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported." + } + }, + "type": { + "target": "com.render.api#ListLogsRequestTypeList", + "traits": { + "smithy.api#httpQuery": "type", + "smithy.api#documentation": "Filter logs by their type. Types include `app` for application logs, `request` for request logs, and `build` for build logs. You can find the full set of types available for a query by using the `GET /logs/values` endpoint." + } + }, + "text": { + "target": "com.render.api#ListLogsRequestTextList", + "traits": { + "smithy.api#httpQuery": "text", + "smithy.api#documentation": "Filter by the text of the logs. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported." + } + }, + "path": { + "target": "com.render.api#ListLogsRequestPathList", + "traits": { + "smithy.api#httpQuery": "path", + "smithy.api#documentation": "Filter request logs by their path. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#Schema8": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "A unique ID of the log entry", + "smithy.api#required": {} + } + }, + "message": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The message of the log entry", + "smithy.api#required": {} + } + }, + "timestamp": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The timestamp of the log entry", + "smithy.api#required": {} + } + }, + "labels": { + "target": "com.render.api#SchemaLabelsList", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A log entry with metadata" + } + }, + "com.render.api#SchemaLabelsItemName": { + "type": "enum", + "members": { + "RESOURCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "resource" + } + }, + "INSTANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance" + } + }, + "HOST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "host" + } + }, + "STATUSCODE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "statusCode" + } + }, + "METHOD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "method" + } + }, + "LEVEL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "level" + } + }, + "WORKFLOWSERVICE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "workflowService" + } + }, + "WORKFLOWVERESION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "workflowVeresion" + } + }, + "TASK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "task" + } + }, + "TASKRUN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "taskRun" + } + }, + "SANDBOX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "sandbox" + } + }, + "TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "type" + } + }, + "TEXT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "text" + } + }, + "PATH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "path" + } + }, + "BLOCKED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "blocked" + } + } + }, + "traits": { + "smithy.api#documentation": "The name of the log label" + } + }, + "com.render.api#SchemaLabelsItem": { + "type": "structure", + "members": { + "name": { + "target": "com.render.api#SchemaLabelsItemName", + "traits": { + "smithy.api#documentation": "The name of the log label", + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The value of the log label", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A log label" + } + }, + "com.render.api#SchemaLabelsList": { + "type": "list", + "member": { + "target": "com.render.api#SchemaLabelsItem" + }, + "traits": {} + }, + "com.render.api#ListLogsResponseLogsList": { + "type": "list", + "member": { + "target": "com.render.api#Schema8" + }, + "traits": {} + }, + "com.render.api#ListLogsResponse": { + "type": "structure", + "members": { + "hasMore": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "True if there are more logs to fetch", + "smithy.api#required": {} + } + }, + "nextStartTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The start time to use in the next query to fetch the next set of logs", + "smithy.api#required": {} + } + }, + "nextEndTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The end time to use in the next query to fetch the next set of logs", + "smithy.api#required": {} + } + }, + "logs": { + "target": "com.render.api#ListLogsResponseLogsList", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListLogs": { + "type": "operation", + "input": { + "target": "com.render.api#ListLogsRequest" + }, + "output": { + "target": "com.render.api#ListLogsResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/logs", + "code": 200 + }, + "smithy.api#documentation": "List logs\n\nList logs matching the provided filters. Logs are paginated by start and end timestamps.\nThere are more logs to fetch if `hasMore` is true in the response. Provide the `nextStartTime`\nand `nextEndTime` timestamps as the `startTime` and `endTime` query parameters to fetch the next page of logs.\n\nYou can query for logs across multiple resources, but all resources must be in the same region and belong to the same owner." + } + }, + "com.render.api#SubscribeLogsRequestDirection": { + "type": "enum", + "members": { + "FORWARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "forward" + } + }, + "BACKWARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "backward" + } + } + }, + "traits": {} + }, + "com.render.api#SubscribeLogsRequestResourceList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#SubscribeLogsRequestInstanceList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#SubscribeLogsRequestHostList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#SubscribeLogsRequestStatusCodeList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#SubscribeLogsRequestMethodList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#SubscribeLogsRequestTaskList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#SubscribeLogsRequestTaskRunList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#SubscribeLogsRequestSandboxList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#SubscribeLogsRequestLevelList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#SubscribeLogsRequestTypeList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#SubscribeLogsRequestTextList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#SubscribeLogsRequestPathList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#SubscribeLogsRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "ownerId", + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the workspace to return logs for" + } + }, + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "direction": { + "target": "com.render.api#SubscribeLogsRequestDirection", + "traits": { + "smithy.api#httpQuery": "direction", + "smithy.api#documentation": "The direction to query logs for. Backward will return most recent logs first.\nForward will start with the oldest logs in the time range.\n" + } + }, + "resource": { + "target": "com.render.api#SubscribeLogsRequestResourceList", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#required": {}, + "smithy.api#documentation": "Filter logs by their resource. A resource is the id of a server, cronjob, job, postgres, redis, workflow, or sandbox group." + } + }, + "instance": { + "target": "com.render.api#SubscribeLogsRequestInstanceList", + "traits": { + "smithy.api#httpQuery": "instance", + "smithy.api#documentation": "Filter logs by the instance they were emitted from. An instance is the id of a specific running server." + } + }, + "host": { + "target": "com.render.api#SubscribeLogsRequestHostList", + "traits": { + "smithy.api#httpQuery": "host", + "smithy.api#documentation": "Filter request logs by their host. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported." + } + }, + "statusCode": { + "target": "com.render.api#SubscribeLogsRequestStatusCodeList", + "traits": { + "smithy.api#httpQuery": "statusCode", + "smithy.api#documentation": "Filter request logs by their status code. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported." + } + }, + "method": { + "target": "com.render.api#SubscribeLogsRequestMethodList", + "traits": { + "smithy.api#httpQuery": "method", + "smithy.api#documentation": "Filter request logs by their requests method. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported." + } + }, + "task": { + "target": "com.render.api#SubscribeLogsRequestTaskList", + "traits": { + "smithy.api#httpQuery": "task", + "smithy.api#documentation": "Filter logs by their task(s)" + } + }, + "taskRun": { + "target": "com.render.api#SubscribeLogsRequestTaskRunList", + "traits": { + "smithy.api#httpQuery": "taskRun", + "smithy.api#documentation": "Filter logs by their task run id(s)" + } + }, + "sandbox": { + "target": "com.render.api#SubscribeLogsRequestSandboxList", + "traits": { + "smithy.api#httpQuery": "sandbox", + "smithy.api#documentation": "Filter logs by sandbox ID." + } + }, + "level": { + "target": "com.render.api#SubscribeLogsRequestLevelList", + "traits": { + "smithy.api#httpQuery": "level", + "smithy.api#documentation": "Filter logs by their severity level. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported." + } + }, + "type": { + "target": "com.render.api#SubscribeLogsRequestTypeList", + "traits": { + "smithy.api#httpQuery": "type", + "smithy.api#documentation": "Filter logs by their type. Types include `app` for application logs, `request` for request logs, and `build` for build logs. You can find the full set of types available for a query by using the `GET /logs/values` endpoint." + } + }, + "text": { + "target": "com.render.api#SubscribeLogsRequestTextList", + "traits": { + "smithy.api#httpQuery": "text", + "smithy.api#documentation": "Filter by the text of the logs. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported." + } + }, + "path": { + "target": "com.render.api#SubscribeLogsRequestPathList", + "traits": { + "smithy.api#httpQuery": "path", + "smithy.api#documentation": "Filter request logs by their path. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#SubscribeLogs": { + "type": "operation", + "input": { + "target": "com.render.api#SubscribeLogsRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/logs/subscribe", + "code": 200 + }, + "smithy.api#documentation": "Subscribe to new logs\n\nOpen a websocket connection to subscribe to logs matching the provided filters. Logs are streamed in real-time as they are generated.\n\nYou can query for logs across multiple resources, but all resources must be in the same region and belong to the same owner." + } + }, + "com.render.api#ListLogsValuesRequestLabel": { + "type": "enum", + "members": { + "INSTANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance" + } + }, + "HOST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "host" + } + }, + "STATUSCODE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "statusCode" + } + }, + "METHOD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "method" + } + }, + "LEVEL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "level" + } + }, + "TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "type" + } + } + }, + "traits": {} + }, + "com.render.api#ListLogsValuesRequestDirection": { + "type": "enum", + "members": { + "FORWARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "forward" + } + }, + "BACKWARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "backward" + } + } + }, + "traits": {} + }, + "com.render.api#ListLogsValuesRequestResourceList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsValuesRequestInstanceList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsValuesRequestHostList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsValuesRequestStatusCodeList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsValuesRequestMethodList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsValuesRequestTaskList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsValuesRequestTaskRunList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsValuesRequestSandboxList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsValuesRequestLevelList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsValuesRequestTypeList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsValuesRequestTextList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsValuesRequestPathList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsValuesRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "ownerId", + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the workspace to return log label values for" + } + }, + "label": { + "target": "com.render.api#ListLogsValuesRequestLabel", + "traits": { + "smithy.api#httpQuery": "label", + "smithy.api#required": {}, + "smithy.api#documentation": "The label to query logs for" + } + }, + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "direction": { + "target": "com.render.api#ListLogsValuesRequestDirection", + "traits": { + "smithy.api#httpQuery": "direction", + "smithy.api#documentation": "The direction to query logs for. Backward will return most recent logs first.\nForward will start with the oldest logs in the time range.\n" + } + }, + "resource": { + "target": "com.render.api#ListLogsValuesRequestResourceList", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#required": {}, + "smithy.api#documentation": "Filter logs by their resource. A resource is the id of a server, cronjob, job, postgres, redis, workflow, or sandbox group." + } + }, + "instance": { + "target": "com.render.api#ListLogsValuesRequestInstanceList", + "traits": { + "smithy.api#httpQuery": "instance", + "smithy.api#documentation": "Filter logs by the instance they were emitted from. An instance is the id of a specific running server." + } + }, + "host": { + "target": "com.render.api#ListLogsValuesRequestHostList", + "traits": { + "smithy.api#httpQuery": "host", + "smithy.api#documentation": "Filter request logs by their host. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported." + } + }, + "statusCode": { + "target": "com.render.api#ListLogsValuesRequestStatusCodeList", + "traits": { + "smithy.api#httpQuery": "statusCode", + "smithy.api#documentation": "Filter request logs by their status code. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported." + } + }, + "method": { + "target": "com.render.api#ListLogsValuesRequestMethodList", + "traits": { + "smithy.api#httpQuery": "method", + "smithy.api#documentation": "Filter request logs by their requests method. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported." + } + }, + "task": { + "target": "com.render.api#ListLogsValuesRequestTaskList", + "traits": { + "smithy.api#httpQuery": "task", + "smithy.api#documentation": "Filter logs by their task(s)" + } + }, + "taskRun": { + "target": "com.render.api#ListLogsValuesRequestTaskRunList", + "traits": { + "smithy.api#httpQuery": "taskRun", + "smithy.api#documentation": "Filter logs by their task run id(s)" + } + }, + "sandbox": { + "target": "com.render.api#ListLogsValuesRequestSandboxList", + "traits": { + "smithy.api#httpQuery": "sandbox", + "smithy.api#documentation": "Filter logs by sandbox ID." + } + }, + "level": { + "target": "com.render.api#ListLogsValuesRequestLevelList", + "traits": { + "smithy.api#httpQuery": "level", + "smithy.api#documentation": "Filter logs by their severity level. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported." + } + }, + "type": { + "target": "com.render.api#ListLogsValuesRequestTypeList", + "traits": { + "smithy.api#httpQuery": "type", + "smithy.api#documentation": "Filter logs by their type. Types include `app` for application logs, `request` for request logs, and `build` for build logs. You can find the full set of types available for a query by using the `GET /logs/values` endpoint." + } + }, + "text": { + "target": "com.render.api#ListLogsValuesRequestTextList", + "traits": { + "smithy.api#httpQuery": "text", + "smithy.api#documentation": "Filter by the text of the logs. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported." + } + }, + "path": { + "target": "com.render.api#ListLogsValuesRequestPathList", + "traits": { + "smithy.api#httpQuery": "path", + "smithy.api#documentation": "Filter request logs by their path. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#ListLogsValuesResponseBodyList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListLogsValuesResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListLogsValuesResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListLogsValues": { + "type": "operation", + "input": { + "target": "com.render.api#ListLogsValuesRequest" + }, + "output": { + "target": "com.render.api#ListLogsValuesResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/logs/values", + "code": 200 + }, + "smithy.api#documentation": "List log label values\n\nList all values for a given log label in the logs matching the provided filters." + } + }, + "com.render.api#GetOwnerLogStreamRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the workspace to return log stream information for" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#Preview": { + "type": "enum", + "members": { + "SEND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "send" + } + }, + "DROP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "drop" + } + } + }, + "traits": { + "smithy.api#documentation": "Whether to send logs or drop them." + } + }, + "com.render.api#GetOwnerLogStreamResponse": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the owner." + } + }, + "endpoint": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The endpoint to stream logs to." + } + }, + "preview": { + "target": "com.render.api#Preview" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetOwnerLogStream": { + "type": "operation", + "input": { + "target": "com.render.api#GetOwnerLogStreamRequest" + }, + "output": { + "target": "com.render.api#GetOwnerLogStreamResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/logs/streams/owner/{ownerId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve log stream\n\nReturns log stream information for the specified workspace." + } + }, + "com.render.api#UpdateOwnerLogStreamRequestPreview": { + "type": "enum", + "members": { + "SEND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "send" + } + }, + "DROP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "drop" + } + } + }, + "traits": { + "smithy.api#documentation": "Whether to send logs or drop them." + } + }, + "com.render.api#UpdateOwnerLogStreamRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the workspace to update log stream information for" + } + }, + "endpoint": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The endpoint to stream logs to." + } + }, + "token": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The optional token to authenticate the log stream." + } + }, + "preview": { + "target": "com.render.api#UpdateOwnerLogStreamRequestPreview", + "traits": { + "smithy.api#documentation": "Whether to send logs or drop them.", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UpdateOwnerLogStreamResponse": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the owner." + } + }, + "endpoint": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The endpoint to stream logs to." + } + }, + "preview": { + "target": "com.render.api#Preview" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#UpdateOwnerLogStream": { + "type": "operation", + "input": { + "target": "com.render.api#UpdateOwnerLogStreamRequest" + }, + "output": { + "target": "com.render.api#UpdateOwnerLogStreamResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "PUT", + "uri": "/logs/streams/owner/{ownerId}", + "code": 200 + }, + "smithy.api#documentation": "Update log stream\n\nUpdates log stream information for the specified workspace. All logs for resources owned by this workspace will be sent to this log stream unless overridden by individual resources." + } + }, + "com.render.api#DeleteOwnerLogStreamRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the workspace to delete the log stream for" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeleteOwnerLogStream": { + "type": "operation", + "input": { + "target": "com.render.api#DeleteOwnerLogStreamRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/logs/streams/owner/{ownerId}", + "code": 200 + }, + "smithy.api#documentation": "Delete log stream\n\nRemoves the log stream for the specified workspace." + } + }, + "com.render.api#ListResourceLogStreamsRequestOwnerIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListResourceLogStreamsRequestLogStreamIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListResourceLogStreamsRequestResourceIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListResourceLogStreamsRequestSettingItem": { + "type": "enum", + "members": { + "SEND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "send" + } + }, + "DROP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "drop" + } + } + }, + "traits": { + "smithy.api#documentation": "Whether to send logs or drop them." + } + }, + "com.render.api#ListResourceLogStreamsRequestSettingList": { + "type": "list", + "member": { + "target": "com.render.api#ListResourceLogStreamsRequestSettingItem" + }, + "traits": {} + }, + "com.render.api#ListResourceLogStreamsRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "com.render.api#ListResourceLogStreamsRequestOwnerIdList", + "traits": { + "smithy.api#httpQuery": "ownerId", + "smithy.api#documentation": "The ID of the workspaces to return resources for" + } + }, + "logStreamId": { + "target": "com.render.api#ListResourceLogStreamsRequestLogStreamIdList", + "traits": { + "smithy.api#httpQuery": "logStreamId", + "smithy.api#documentation": "Filter log streams by their id." + } + }, + "resourceId": { + "target": "com.render.api#ListResourceLogStreamsRequestResourceIdList", + "traits": { + "smithy.api#httpQuery": "resourceId", + "smithy.api#documentation": "IDs of resources (server, cron job, postgres, or redis) to filter by" + } + }, + "setting": { + "target": "com.render.api#ListResourceLogStreamsRequestSettingList", + "traits": { + "smithy.api#httpQuery": "setting", + "smithy.api#documentation": "Filter log streams by their setting." + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#Schema9": { + "type": "structure", + "members": { + "resourceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the resource." + } + }, + "endpoint": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The endpoint to stream logs to. Must be present if setting is send. Cannot be present if setting is drop." + } + }, + "setting": { + "target": "com.render.api#Items3" + } + }, + "traits": { + "smithy.api#documentation": "Resource log stream overrides" + } + }, + "com.render.api#Items3": { + "type": "enum", + "members": { + "SEND": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "send" + } + }, + "DROP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "drop" + } + } + }, + "traits": { + "smithy.api#documentation": "Whether to send logs or drop them." + } + }, + "com.render.api#ListResourceLogStreamsResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#Schema9" + }, + "traits": {} + }, + "com.render.api#ListResourceLogStreamsResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListResourceLogStreamsResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListResourceLogStreams": { + "type": "operation", + "input": { + "target": "com.render.api#ListResourceLogStreamsRequest" + }, + "output": { + "target": "com.render.api#ListResourceLogStreamsResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/logs/streams/resource", + "code": 200 + }, + "smithy.api#documentation": "List log stream overrides\n\nLists log stream overrides for the provided workspace that match the provided filters. These overrides take precedence over the workspace's default log stream." + } + }, + "com.render.api#GetResourceLogStreamRequest": { + "type": "structure", + "members": { + "resourceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the resource (server, cron job, postgres, or redis) to return log stream override information for" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#GetResourceLogStreamResponse": { + "type": "structure", + "members": { + "resourceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the resource." + } + }, + "endpoint": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The endpoint to stream logs to. Must be present if setting is send. Cannot be present if setting is drop." + } + }, + "setting": { + "target": "com.render.api#Items3" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetResourceLogStream": { + "type": "operation", + "input": { + "target": "com.render.api#GetResourceLogStreamRequest" + }, + "output": { + "target": "com.render.api#GetResourceLogStreamResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/logs/streams/resource/{resourceId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve log stream override\n\nReturns log stream override information for the specified resource. A log stream override takes precedence over a workspace's default log stream." + } + }, + "com.render.api#UpdateResourceLogStreamRequest": { + "type": "structure", + "members": { + "resourceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the resource (server, cron job, postgres, or redis) to update log stream override information for" + } + }, + "endpoint": { + "target": "smithy.api#String" + }, + "token": { + "target": "smithy.api#String" + }, + "setting": { + "target": "com.render.api#Items3", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UpdateResourceLogStreamResponse": { + "type": "structure", + "members": { + "resourceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the resource." + } + }, + "endpoint": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The endpoint to stream logs to. Must be present if setting is send. Cannot be present if setting is drop." + } + }, + "setting": { + "target": "com.render.api#Items3" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#UpdateResourceLogStream": { + "type": "operation", + "input": { + "target": "com.render.api#UpdateResourceLogStreamRequest" + }, + "output": { + "target": "com.render.api#UpdateResourceLogStreamResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "PUT", + "uri": "/logs/streams/resource/{resourceId}", + "code": 200 + }, + "smithy.api#documentation": "Update log stream override\n\nUpdates log stream override information for the specified resource. A log stream override takes precedence over a workspace's default log stream." + } + }, + "com.render.api#DeleteResourceLogStreamRequest": { + "type": "structure", + "members": { + "resourceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the resource (server, cron job, postgres, or redis) whose log streams should be returned" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeleteResourceLogStream": { + "type": "operation", + "input": { + "target": "com.render.api#DeleteResourceLogStreamRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/logs/streams/resource/{resourceId}", + "code": 200 + }, + "smithy.api#documentation": "Delete log stream override\n\nRemoves the log stream override for the specified resource. After deletion, the resource will use the workspace's default log stream setting." + } + }, + "com.render.api#GetOwnerMetricsStreamRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the workspace to return metrics stream information for" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#Schema10": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the owner", + "smithy.api#required": {} + } + }, + "provider": { + "target": "com.render.api#Provider", + "traits": { + "smithy.api#required": {} + } + }, + "url": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The endpoint URL to stream metrics to", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Provider": { + "type": "enum", + "members": { + "BETTER_STACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BETTER_STACK" + } + }, + "GRAFANA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GRAFANA" + } + }, + "DATADOG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DATADOG" + } + }, + "NEW_RELIC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NEW_RELIC" + } + }, + "HONEYCOMB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HONEYCOMB" + } + }, + "SIGNOZ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SIGNOZ" + } + }, + "GROUNDCOVER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GROUNDCOVER" + } + }, + "LOGFIRE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LOGFIRE" + } + }, + "CUSTOM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CUSTOM" + } + } + }, + "traits": { + "smithy.api#documentation": "Provider to send metrics to" + } + }, + "com.render.api#GetOwnerMetricsStream": { + "type": "operation", + "input": { + "target": "com.render.api#GetOwnerMetricsStreamRequest" + }, + "output": { + "target": "com.render.api#Schema10" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/metrics-stream/{ownerId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve metrics stream\n\nReturns metrics stream information for the specified workspace." + } + }, + "com.render.api#UpsertOwnerMetricsStreamRequestProvider": { + "type": "enum", + "members": { + "BETTER_STACK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BETTER_STACK" + } + }, + "GRAFANA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GRAFANA" + } + }, + "DATADOG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DATADOG" + } + }, + "NEW_RELIC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NEW_RELIC" + } + }, + "HONEYCOMB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HONEYCOMB" + } + }, + "SIGNOZ": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SIGNOZ" + } + }, + "GROUNDCOVER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GROUNDCOVER" + } + }, + "LOGFIRE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LOGFIRE" + } + }, + "CUSTOM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CUSTOM" + } + } + }, + "traits": { + "smithy.api#documentation": "Provider to send metrics to" + } + }, + "com.render.api#UpsertOwnerMetricsStreamRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the workspace to return metrics stream information for" + } + }, + "provider": { + "target": "com.render.api#UpsertOwnerMetricsStreamRequestProvider", + "traits": { + "smithy.api#documentation": "Provider to send metrics to" + } + }, + "url": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The endpoint URL to stream metrics to" + } + }, + "token": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Authentication token for the metrics stream" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UpsertOwnerMetricsStreamResponse": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the owner", + "smithy.api#required": {} + } + }, + "provider": { + "target": "com.render.api#Provider", + "traits": { + "smithy.api#required": {} + } + }, + "url": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The endpoint URL to stream metrics to", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#UpsertOwnerMetricsStream": { + "type": "operation", + "input": { + "target": "com.render.api#UpsertOwnerMetricsStreamRequest" + }, + "output": { + "target": "com.render.api#UpsertOwnerMetricsStreamResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + } + ], + "traits": { + "smithy.api#http": { + "method": "PUT", + "uri": "/metrics-stream/{ownerId}", + "code": 200 + }, + "smithy.api#documentation": "Create or update metrics stream\n\nCreates or updates the metrics stream for the specified workspace." + } + }, + "com.render.api#DeleteOwnerMetricsStreamRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the workspace to return metrics stream information for" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeleteOwnerMetricsStream": { + "type": "operation", + "input": { + "target": "com.render.api#DeleteOwnerMetricsStreamRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/metrics-stream/{ownerId}", + "code": 200 + }, + "smithy.api#documentation": "Delete metrics stream\n\nDeletes the metrics stream for the specified workspace." + } + }, + "com.render.api#GetCpuRequestAggregationMethod": { + "type": "enum", + "members": { + "AVG": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AVG" + } + }, + "MAX": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MAX" + } + }, + "MIN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MIN" + } + } + }, + "traits": {} + }, + "com.render.api#GetCpuRequest": { + "type": "structure", + "members": { + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "resolutionSeconds": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#httpQuery": "resolutionSeconds", + "smithy.api#documentation": "The resolution of the returned data" + } + }, + "resource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#documentation": "Resource ID to query. When multiple resource query params are provided, they are ORed together. Resources can be service ids, Postgres ids, or Redis ids" + } + }, + "service": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "service", + "smithy.api#documentation": "This parameter is deprecated. Please use `resource` instead" + } + }, + "instance": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "instance", + "smithy.api#documentation": "Instance ID to query. When multiple instance ID query params are provided, they are ORed together" + } + }, + "aggregationMethod": { + "target": "com.render.api#GetCpuRequestAggregationMethod", + "traits": { + "smithy.api#httpQuery": "aggregationMethod", + "smithy.api#documentation": "The aggregation method to apply to multiple time series" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#GetCpuResponseBodyItemLabelsItem": { + "type": "structure", + "members": { + "field": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint label" + } + }, + "com.render.api#GetCpuResponseBodyItemLabelsList": { + "type": "list", + "member": { + "target": "com.render.api#GetCpuResponseBodyItemLabelsItem" + }, + "traits": { + "smithy.api#documentation": "List of labels describing the time series" + } + }, + "com.render.api#GetCpuResponseBodyItemValuesItem": { + "type": "structure", + "members": { + "timestamp": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint value" + } + }, + "com.render.api#GetCpuResponseBodyItemValuesList": { + "type": "list", + "member": { + "target": "com.render.api#GetCpuResponseBodyItemValuesItem" + }, + "traits": { + "smithy.api#documentation": "The values of the time series" + } + }, + "com.render.api#GetCpuResponseBodyItem": { + "type": "structure", + "members": { + "labels": { + "target": "com.render.api#GetCpuResponseBodyItemLabelsList", + "traits": { + "smithy.api#documentation": "List of labels describing the time series", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.render.api#GetCpuResponseBodyItemValuesList", + "traits": { + "smithy.api#documentation": "The values of the time series", + "smithy.api#required": {} + } + }, + "unit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series data point" + } + }, + "com.render.api#GetCpuResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#GetCpuResponseBodyItem" + }, + "traits": { + "smithy.api#documentation": "A collection of time series" + } + }, + "com.render.api#GetCpuResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#GetCpuResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetCpu": { + "type": "operation", + "input": { + "target": "com.render.api#GetCpuRequest" + }, + "output": { + "target": "com.render.api#GetCpuResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/metrics/cpu", + "code": 200 + }, + "smithy.api#documentation": "Get CPU usage\n\nGet CPU usage for one or more resources." + } + }, + "com.render.api#GetCpuLimitRequest": { + "type": "structure", + "members": { + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "resolutionSeconds": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#httpQuery": "resolutionSeconds", + "smithy.api#documentation": "The resolution of the returned data" + } + }, + "resource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#documentation": "Resource ID to query. When multiple resource query params are provided, they are ORed together. Resources can be service ids, Postgres ids, or Redis ids" + } + }, + "service": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "service", + "smithy.api#documentation": "This parameter is deprecated. Please use `resource` instead" + } + }, + "instance": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "instance", + "smithy.api#documentation": "Instance ID to query. When multiple instance ID query params are provided, they are ORed together" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#GetCpuLimitResponseBodyItemLabelsItem": { + "type": "structure", + "members": { + "field": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint label" + } + }, + "com.render.api#GetCpuLimitResponseBodyItemLabelsList": { + "type": "list", + "member": { + "target": "com.render.api#GetCpuLimitResponseBodyItemLabelsItem" + }, + "traits": { + "smithy.api#documentation": "List of labels describing the time series" + } + }, + "com.render.api#GetCpuLimitResponseBodyItemValuesItem": { + "type": "structure", + "members": { + "timestamp": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint value" + } + }, + "com.render.api#GetCpuLimitResponseBodyItemValuesList": { + "type": "list", + "member": { + "target": "com.render.api#GetCpuLimitResponseBodyItemValuesItem" + }, + "traits": { + "smithy.api#documentation": "The values of the time series" + } + }, + "com.render.api#GetCpuLimitResponseBodyItem": { + "type": "structure", + "members": { + "labels": { + "target": "com.render.api#GetCpuLimitResponseBodyItemLabelsList", + "traits": { + "smithy.api#documentation": "List of labels describing the time series", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.render.api#GetCpuLimitResponseBodyItemValuesList", + "traits": { + "smithy.api#documentation": "The values of the time series", + "smithy.api#required": {} + } + }, + "unit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series data point" + } + }, + "com.render.api#GetCpuLimitResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#GetCpuLimitResponseBodyItem" + }, + "traits": { + "smithy.api#documentation": "A collection of time series" + } + }, + "com.render.api#GetCpuLimitResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#GetCpuLimitResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetCpuLimit": { + "type": "operation", + "input": { + "target": "com.render.api#GetCpuLimitRequest" + }, + "output": { + "target": "com.render.api#GetCpuLimitResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/metrics/cpu-limit", + "code": 200 + }, + "smithy.api#documentation": "Get CPU limit\n\nGet the CPU limit for one or more resources." + } + }, + "com.render.api#GetCpuTargetRequest": { + "type": "structure", + "members": { + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "resolutionSeconds": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#httpQuery": "resolutionSeconds", + "smithy.api#documentation": "The resolution of the returned data" + } + }, + "resource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#documentation": "Resource ID to query. When multiple resource query params are provided, they are ORed together. Resources can be service ids, Postgres ids, or Redis ids" + } + }, + "service": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "service", + "smithy.api#documentation": "This parameter is deprecated. Please use `resource` instead" + } + }, + "instance": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "instance", + "smithy.api#documentation": "Instance ID to query. When multiple instance ID query params are provided, they are ORed together" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#GetCpuTargetResponseBodyItemLabelsItem": { + "type": "structure", + "members": { + "field": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint label" + } + }, + "com.render.api#GetCpuTargetResponseBodyItemLabelsList": { + "type": "list", + "member": { + "target": "com.render.api#GetCpuTargetResponseBodyItemLabelsItem" + }, + "traits": { + "smithy.api#documentation": "List of labels describing the time series" + } + }, + "com.render.api#GetCpuTargetResponseBodyItemValuesItem": { + "type": "structure", + "members": { + "timestamp": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint value" + } + }, + "com.render.api#GetCpuTargetResponseBodyItemValuesList": { + "type": "list", + "member": { + "target": "com.render.api#GetCpuTargetResponseBodyItemValuesItem" + }, + "traits": { + "smithy.api#documentation": "The values of the time series" + } + }, + "com.render.api#GetCpuTargetResponseBodyItem": { + "type": "structure", + "members": { + "labels": { + "target": "com.render.api#GetCpuTargetResponseBodyItemLabelsList", + "traits": { + "smithy.api#documentation": "List of labels describing the time series", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.render.api#GetCpuTargetResponseBodyItemValuesList", + "traits": { + "smithy.api#documentation": "The values of the time series", + "smithy.api#required": {} + } + }, + "unit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series data point" + } + }, + "com.render.api#GetCpuTargetResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#GetCpuTargetResponseBodyItem" + }, + "traits": { + "smithy.api#documentation": "A collection of time series" + } + }, + "com.render.api#GetCpuTargetResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#GetCpuTargetResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetCpuTarget": { + "type": "operation", + "input": { + "target": "com.render.api#GetCpuTargetRequest" + }, + "output": { + "target": "com.render.api#GetCpuTargetResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/metrics/cpu-target", + "code": 200 + }, + "smithy.api#documentation": "Get CPU target\n\nGet CPU target for one or more resources." + } + }, + "com.render.api#GetMemoryRequest": { + "type": "structure", + "members": { + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "resolutionSeconds": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#httpQuery": "resolutionSeconds", + "smithy.api#documentation": "The resolution of the returned data" + } + }, + "resource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#documentation": "Resource ID to query. When multiple resource query params are provided, they are ORed together. Resources can be service ids, Postgres ids, or Redis ids" + } + }, + "service": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "service", + "smithy.api#documentation": "This parameter is deprecated. Please use `resource` instead" + } + }, + "instance": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "instance", + "smithy.api#documentation": "Instance ID to query. When multiple instance ID query params are provided, they are ORed together" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#GetMemoryResponseBodyItemLabelsItem": { + "type": "structure", + "members": { + "field": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint label" + } + }, + "com.render.api#GetMemoryResponseBodyItemLabelsList": { + "type": "list", + "member": { + "target": "com.render.api#GetMemoryResponseBodyItemLabelsItem" + }, + "traits": { + "smithy.api#documentation": "List of labels describing the time series" + } + }, + "com.render.api#GetMemoryResponseBodyItemValuesItem": { + "type": "structure", + "members": { + "timestamp": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint value" + } + }, + "com.render.api#GetMemoryResponseBodyItemValuesList": { + "type": "list", + "member": { + "target": "com.render.api#GetMemoryResponseBodyItemValuesItem" + }, + "traits": { + "smithy.api#documentation": "The values of the time series" + } + }, + "com.render.api#GetMemoryResponseBodyItem": { + "type": "structure", + "members": { + "labels": { + "target": "com.render.api#GetMemoryResponseBodyItemLabelsList", + "traits": { + "smithy.api#documentation": "List of labels describing the time series", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.render.api#GetMemoryResponseBodyItemValuesList", + "traits": { + "smithy.api#documentation": "The values of the time series", + "smithy.api#required": {} + } + }, + "unit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series data point" + } + }, + "com.render.api#GetMemoryResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#GetMemoryResponseBodyItem" + }, + "traits": { + "smithy.api#documentation": "A collection of time series" + } + }, + "com.render.api#GetMemoryResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#GetMemoryResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetMemory": { + "type": "operation", + "input": { + "target": "com.render.api#GetMemoryRequest" + }, + "output": { + "target": "com.render.api#GetMemoryResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/metrics/memory", + "code": 200 + }, + "smithy.api#documentation": "Get memory usage\n\nGet memory usage for one or more resources." + } + }, + "com.render.api#GetMemoryLimitRequest": { + "type": "structure", + "members": { + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "resolutionSeconds": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#httpQuery": "resolutionSeconds", + "smithy.api#documentation": "The resolution of the returned data" + } + }, + "resource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#documentation": "Resource ID to query. When multiple resource query params are provided, they are ORed together. Resources can be service ids, Postgres ids, or Redis ids" + } + }, + "service": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "service", + "smithy.api#documentation": "This parameter is deprecated. Please use `resource` instead" + } + }, + "instance": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "instance", + "smithy.api#documentation": "Instance ID to query. When multiple instance ID query params are provided, they are ORed together" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#GetMemoryLimitResponseBodyItemLabelsItem": { + "type": "structure", + "members": { + "field": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint label" + } + }, + "com.render.api#GetMemoryLimitResponseBodyItemLabelsList": { + "type": "list", + "member": { + "target": "com.render.api#GetMemoryLimitResponseBodyItemLabelsItem" + }, + "traits": { + "smithy.api#documentation": "List of labels describing the time series" + } + }, + "com.render.api#GetMemoryLimitResponseBodyItemValuesItem": { + "type": "structure", + "members": { + "timestamp": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint value" + } + }, + "com.render.api#GetMemoryLimitResponseBodyItemValuesList": { + "type": "list", + "member": { + "target": "com.render.api#GetMemoryLimitResponseBodyItemValuesItem" + }, + "traits": { + "smithy.api#documentation": "The values of the time series" + } + }, + "com.render.api#GetMemoryLimitResponseBodyItem": { + "type": "structure", + "members": { + "labels": { + "target": "com.render.api#GetMemoryLimitResponseBodyItemLabelsList", + "traits": { + "smithy.api#documentation": "List of labels describing the time series", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.render.api#GetMemoryLimitResponseBodyItemValuesList", + "traits": { + "smithy.api#documentation": "The values of the time series", + "smithy.api#required": {} + } + }, + "unit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series data point" + } + }, + "com.render.api#GetMemoryLimitResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#GetMemoryLimitResponseBodyItem" + }, + "traits": { + "smithy.api#documentation": "A collection of time series" + } + }, + "com.render.api#GetMemoryLimitResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#GetMemoryLimitResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetMemoryLimit": { + "type": "operation", + "input": { + "target": "com.render.api#GetMemoryLimitRequest" + }, + "output": { + "target": "com.render.api#GetMemoryLimitResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/metrics/memory-limit", + "code": 200 + }, + "smithy.api#documentation": "Get memory limit\n\nGet the memory limit for one or more resources." + } + }, + "com.render.api#GetMemoryTargetRequest": { + "type": "structure", + "members": { + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "resolutionSeconds": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#httpQuery": "resolutionSeconds", + "smithy.api#documentation": "The resolution of the returned data" + } + }, + "resource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#documentation": "Resource ID to query. When multiple resource query params are provided, they are ORed together. Resources can be service ids, Postgres ids, or Redis ids" + } + }, + "service": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "service", + "smithy.api#documentation": "This parameter is deprecated. Please use `resource` instead" + } + }, + "instance": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "instance", + "smithy.api#documentation": "Instance ID to query. When multiple instance ID query params are provided, they are ORed together" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#GetMemoryTargetResponseBodyItemLabelsItem": { + "type": "structure", + "members": { + "field": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint label" + } + }, + "com.render.api#GetMemoryTargetResponseBodyItemLabelsList": { + "type": "list", + "member": { + "target": "com.render.api#GetMemoryTargetResponseBodyItemLabelsItem" + }, + "traits": { + "smithy.api#documentation": "List of labels describing the time series" + } + }, + "com.render.api#GetMemoryTargetResponseBodyItemValuesItem": { + "type": "structure", + "members": { + "timestamp": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint value" + } + }, + "com.render.api#GetMemoryTargetResponseBodyItemValuesList": { + "type": "list", + "member": { + "target": "com.render.api#GetMemoryTargetResponseBodyItemValuesItem" + }, + "traits": { + "smithy.api#documentation": "The values of the time series" + } + }, + "com.render.api#GetMemoryTargetResponseBodyItem": { + "type": "structure", + "members": { + "labels": { + "target": "com.render.api#GetMemoryTargetResponseBodyItemLabelsList", + "traits": { + "smithy.api#documentation": "List of labels describing the time series", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.render.api#GetMemoryTargetResponseBodyItemValuesList", + "traits": { + "smithy.api#documentation": "The values of the time series", + "smithy.api#required": {} + } + }, + "unit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series data point" + } + }, + "com.render.api#GetMemoryTargetResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#GetMemoryTargetResponseBodyItem" + }, + "traits": { + "smithy.api#documentation": "A collection of time series" + } + }, + "com.render.api#GetMemoryTargetResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#GetMemoryTargetResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetMemoryTarget": { + "type": "operation", + "input": { + "target": "com.render.api#GetMemoryTargetRequest" + }, + "output": { + "target": "com.render.api#GetMemoryTargetResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/metrics/memory-target", + "code": 200 + }, + "smithy.api#documentation": "Get memory target\n\nGet memory target for one or more resources." + } + }, + "com.render.api#GetHttpRequestsRequestAggregateBy": { + "type": "enum", + "members": { + "STATUSCODE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "statusCode" + } + }, + "HOST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "host" + } + } + }, + "traits": {} + }, + "com.render.api#GetHttpRequestsRequest": { + "type": "structure", + "members": { + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "resolutionSeconds": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#httpQuery": "resolutionSeconds", + "smithy.api#documentation": "The resolution of the returned data" + } + }, + "resource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#documentation": "Service ID to query. When multiple service ids are provided, they are ORed together" + } + }, + "service": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "service", + "smithy.api#documentation": "This parameter is deprecated. Please use `resource` instead" + } + }, + "host": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "host", + "smithy.api#documentation": "The hosts of HTTP requests to filter to. When multiple host query params are provided, they are ORed together" + } + }, + "path": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "path", + "smithy.api#documentation": "The paths of HTTP requests to filter to. When multiple path query params are provided, they are ORed together" + } + }, + "aggregateBy": { + "target": "com.render.api#GetHttpRequestsRequestAggregateBy", + "traits": { + "smithy.api#httpQuery": "aggregateBy", + "smithy.api#documentation": "The field to aggregate by" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#GetHttpRequestsResponseBodyItemLabelsItem": { + "type": "structure", + "members": { + "field": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint label" + } + }, + "com.render.api#GetHttpRequestsResponseBodyItemLabelsList": { + "type": "list", + "member": { + "target": "com.render.api#GetHttpRequestsResponseBodyItemLabelsItem" + }, + "traits": { + "smithy.api#documentation": "List of labels describing the time series" + } + }, + "com.render.api#GetHttpRequestsResponseBodyItemValuesItem": { + "type": "structure", + "members": { + "timestamp": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint value" + } + }, + "com.render.api#GetHttpRequestsResponseBodyItemValuesList": { + "type": "list", + "member": { + "target": "com.render.api#GetHttpRequestsResponseBodyItemValuesItem" + }, + "traits": { + "smithy.api#documentation": "The values of the time series" + } + }, + "com.render.api#GetHttpRequestsResponseBodyItem": { + "type": "structure", + "members": { + "labels": { + "target": "com.render.api#GetHttpRequestsResponseBodyItemLabelsList", + "traits": { + "smithy.api#documentation": "List of labels describing the time series", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.render.api#GetHttpRequestsResponseBodyItemValuesList", + "traits": { + "smithy.api#documentation": "The values of the time series", + "smithy.api#required": {} + } + }, + "unit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series data point" + } + }, + "com.render.api#GetHttpRequestsResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#GetHttpRequestsResponseBodyItem" + }, + "traits": { + "smithy.api#documentation": "A collection of time series" + } + }, + "com.render.api#GetHttpRequestsResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#GetHttpRequestsResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetHttpRequests": { + "type": "operation", + "input": { + "target": "com.render.api#GetHttpRequestsRequest" + }, + "output": { + "target": "com.render.api#GetHttpRequestsResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/metrics/http-requests", + "code": 200 + }, + "smithy.api#documentation": "Get HTTP request count\n\nGet the HTTP request count for one or more resources." + } + }, + "com.render.api#GetHttpLatencyRequest": { + "type": "structure", + "members": { + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "resolutionSeconds": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#httpQuery": "resolutionSeconds", + "smithy.api#documentation": "The resolution of the returned data" + } + }, + "resource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#documentation": "Service ID to query. When multiple service ids are provided, they are ORed together" + } + }, + "service": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "service", + "smithy.api#documentation": "This parameter is deprecated. Please use `resource` instead" + } + }, + "host": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "host", + "smithy.api#documentation": "The hosts of HTTP requests to filter to. When multiple host query params are provided, they are ORed together" + } + }, + "path": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "path", + "smithy.api#documentation": "The paths of HTTP requests to filter to. When multiple path query params are provided, they are ORed together" + } + }, + "quantile": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#httpQuery": "quantile", + "smithy.api#documentation": "The quantile of latencies to fetch. When multiple quantile query params are provided, they are ORed together" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#GetHttpLatencyResponseBodyItemLabelsItem": { + "type": "structure", + "members": { + "field": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint label" + } + }, + "com.render.api#GetHttpLatencyResponseBodyItemLabelsList": { + "type": "list", + "member": { + "target": "com.render.api#GetHttpLatencyResponseBodyItemLabelsItem" + }, + "traits": { + "smithy.api#documentation": "List of labels describing the time series" + } + }, + "com.render.api#GetHttpLatencyResponseBodyItemValuesItem": { + "type": "structure", + "members": { + "timestamp": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint value" + } + }, + "com.render.api#GetHttpLatencyResponseBodyItemValuesList": { + "type": "list", + "member": { + "target": "com.render.api#GetHttpLatencyResponseBodyItemValuesItem" + }, + "traits": { + "smithy.api#documentation": "The values of the time series" + } + }, + "com.render.api#GetHttpLatencyResponseBodyItem": { + "type": "structure", + "members": { + "labels": { + "target": "com.render.api#GetHttpLatencyResponseBodyItemLabelsList", + "traits": { + "smithy.api#documentation": "List of labels describing the time series", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.render.api#GetHttpLatencyResponseBodyItemValuesList", + "traits": { + "smithy.api#documentation": "The values of the time series", + "smithy.api#required": {} + } + }, + "unit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series data point" + } + }, + "com.render.api#GetHttpLatencyResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#GetHttpLatencyResponseBodyItem" + }, + "traits": { + "smithy.api#documentation": "A collection of time series" + } + }, + "com.render.api#GetHttpLatencyResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#GetHttpLatencyResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetHttpLatency": { + "type": "operation", + "input": { + "target": "com.render.api#GetHttpLatencyRequest" + }, + "output": { + "target": "com.render.api#GetHttpLatencyResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/metrics/http-latency", + "code": 200 + }, + "smithy.api#documentation": "Get HTTP latency\n\nGet HTTP latency metrics for one or more resources." + } + }, + "com.render.api#GetBandwidthRequest": { + "type": "structure", + "members": { + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "resource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#documentation": "Service ID to query. When multiple service ids are provided, they are ORed together" + } + }, + "service": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "service", + "smithy.api#documentation": "This parameter is deprecated. Please use `resource` instead" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#GetBandwidthResponseBodyItemLabelsItem": { + "type": "structure", + "members": { + "field": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint label" + } + }, + "com.render.api#GetBandwidthResponseBodyItemLabelsList": { + "type": "list", + "member": { + "target": "com.render.api#GetBandwidthResponseBodyItemLabelsItem" + }, + "traits": { + "smithy.api#documentation": "List of labels describing the time series" + } + }, + "com.render.api#GetBandwidthResponseBodyItemValuesItem": { + "type": "structure", + "members": { + "timestamp": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint value" + } + }, + "com.render.api#GetBandwidthResponseBodyItemValuesList": { + "type": "list", + "member": { + "target": "com.render.api#GetBandwidthResponseBodyItemValuesItem" + }, + "traits": { + "smithy.api#documentation": "The values of the time series" + } + }, + "com.render.api#GetBandwidthResponseBodyItem": { + "type": "structure", + "members": { + "labels": { + "target": "com.render.api#GetBandwidthResponseBodyItemLabelsList", + "traits": { + "smithy.api#documentation": "List of labels describing the time series", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.render.api#GetBandwidthResponseBodyItemValuesList", + "traits": { + "smithy.api#documentation": "The values of the time series", + "smithy.api#required": {} + } + }, + "unit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series data point" + } + }, + "com.render.api#GetBandwidthResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#GetBandwidthResponseBodyItem" + }, + "traits": { + "smithy.api#documentation": "A collection of time series" + } + }, + "com.render.api#GetBandwidthResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#GetBandwidthResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetBandwidth": { + "type": "operation", + "input": { + "target": "com.render.api#GetBandwidthRequest" + }, + "output": { + "target": "com.render.api#GetBandwidthResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/metrics/bandwidth", + "code": 200 + }, + "smithy.api#documentation": "Get bandwidth usage\n\nGet bandwidth usage for one or more resources." + } + }, + "com.render.api#GetBandwidthSourcesRequest": { + "type": "structure", + "members": { + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "resource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#documentation": "Service ID to query. When multiple service ids are provided, they are ORed together" + } + }, + "service": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "service", + "smithy.api#documentation": "This parameter is deprecated. Please use `resource` instead" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#GetBandwidthSourcesResponseDataItemLabelsTrafficSource": { + "type": "enum", + "members": { + "TOTAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "total" + } + }, + "HTTP": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "http" + } + }, + "WEBSOCKET": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "websocket" + } + }, + "NAT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "nat" + } + }, + "PRIVATELINK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "privatelink" + } + } + }, + "traits": {} + }, + "com.render.api#GetBandwidthSourcesResponseDataItemLabels": { + "type": "structure", + "members": { + "resource": { + "target": "smithy.api#String" + }, + "trafficSource": { + "target": "com.render.api#GetBandwidthSourcesResponseDataItemLabelsTrafficSource" + } + }, + "traits": {} + }, + "com.render.api#GetBandwidthSourcesResponseDataItemValuesItem": { + "type": "structure", + "members": { + "timestamp": { + "target": "smithy.api#Integer" + }, + "value": { + "target": "smithy.api#Double" + } + }, + "traits": {} + }, + "com.render.api#GetBandwidthSourcesResponseDataItemValuesList": { + "type": "list", + "member": { + "target": "com.render.api#GetBandwidthSourcesResponseDataItemValuesItem" + }, + "traits": {} + }, + "com.render.api#GetBandwidthSourcesResponseDataItem": { + "type": "structure", + "members": { + "labels": { + "target": "com.render.api#GetBandwidthSourcesResponseDataItemLabels" + }, + "values": { + "target": "com.render.api#GetBandwidthSourcesResponseDataItemValuesList" + } + }, + "traits": {} + }, + "com.render.api#GetBandwidthSourcesResponseDataList": { + "type": "list", + "member": { + "target": "com.render.api#GetBandwidthSourcesResponseDataItem" + }, + "traits": {} + }, + "com.render.api#GetBandwidthSourcesResponse": { + "type": "structure", + "members": { + "data": { + "target": "com.render.api#GetBandwidthSourcesResponseDataList" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetBandwidthSources": { + "type": "operation", + "input": { + "target": "com.render.api#GetBandwidthSourcesRequest" + }, + "output": { + "target": "com.render.api#GetBandwidthSourcesResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/metrics/bandwidth-sources", + "code": 200 + }, + "smithy.api#documentation": "Get bandwidth usage breakdown by traffic source\n\nGet bandwidth usage for one or more resources broken down by traffic source (HTTP, WebSocket, NAT, PrivateLink).\n\nReturns hourly data points with traffic source breakdown. Traffic source data is available from March 9, 2025 onwards.\nQueries for earlier dates will return a 400 Bad Request error." + } + }, + "com.render.api#GetDiskUsageRequest": { + "type": "structure", + "members": { + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "resolutionSeconds": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#httpQuery": "resolutionSeconds", + "smithy.api#documentation": "The resolution of the returned data" + } + }, + "resource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#documentation": "Resource ID to query. When multiple resource query params are provided, they are ORed together. Resources can be service ids, Postgres ids, or Redis ids" + } + }, + "service": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "service", + "smithy.api#documentation": "This parameter is deprecated. Please use `resource` instead" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#GetDiskUsageResponseBodyItemLabelsItem": { + "type": "structure", + "members": { + "field": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint label" + } + }, + "com.render.api#GetDiskUsageResponseBodyItemLabelsList": { + "type": "list", + "member": { + "target": "com.render.api#GetDiskUsageResponseBodyItemLabelsItem" + }, + "traits": { + "smithy.api#documentation": "List of labels describing the time series" + } + }, + "com.render.api#GetDiskUsageResponseBodyItemValuesItem": { + "type": "structure", + "members": { + "timestamp": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint value" + } + }, + "com.render.api#GetDiskUsageResponseBodyItemValuesList": { + "type": "list", + "member": { + "target": "com.render.api#GetDiskUsageResponseBodyItemValuesItem" + }, + "traits": { + "smithy.api#documentation": "The values of the time series" + } + }, + "com.render.api#GetDiskUsageResponseBodyItem": { + "type": "structure", + "members": { + "labels": { + "target": "com.render.api#GetDiskUsageResponseBodyItemLabelsList", + "traits": { + "smithy.api#documentation": "List of labels describing the time series", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.render.api#GetDiskUsageResponseBodyItemValuesList", + "traits": { + "smithy.api#documentation": "The values of the time series", + "smithy.api#required": {} + } + }, + "unit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series data point" + } + }, + "com.render.api#GetDiskUsageResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#GetDiskUsageResponseBodyItem" + }, + "traits": { + "smithy.api#documentation": "A collection of time series" + } + }, + "com.render.api#GetDiskUsageResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#GetDiskUsageResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetDiskUsage": { + "type": "operation", + "input": { + "target": "com.render.api#GetDiskUsageRequest" + }, + "output": { + "target": "com.render.api#GetDiskUsageResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/metrics/disk-usage", + "code": 200 + }, + "smithy.api#documentation": "Get disk usage\n\nGet persistent disk usage for one or more resources." + } + }, + "com.render.api#GetDiskCapacityRequest": { + "type": "structure", + "members": { + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "resolutionSeconds": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#httpQuery": "resolutionSeconds", + "smithy.api#documentation": "The resolution of the returned data" + } + }, + "resource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#documentation": "Resource ID to query. When multiple resource query params are provided, they are ORed together. Resources can be service ids, Postgres ids, or Redis ids" + } + }, + "service": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "service", + "smithy.api#documentation": "This parameter is deprecated. Please use `resource` instead" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#GetDiskCapacityResponseBodyItemLabelsItem": { + "type": "structure", + "members": { + "field": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint label" + } + }, + "com.render.api#GetDiskCapacityResponseBodyItemLabelsList": { + "type": "list", + "member": { + "target": "com.render.api#GetDiskCapacityResponseBodyItemLabelsItem" + }, + "traits": { + "smithy.api#documentation": "List of labels describing the time series" + } + }, + "com.render.api#GetDiskCapacityResponseBodyItemValuesItem": { + "type": "structure", + "members": { + "timestamp": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint value" + } + }, + "com.render.api#GetDiskCapacityResponseBodyItemValuesList": { + "type": "list", + "member": { + "target": "com.render.api#GetDiskCapacityResponseBodyItemValuesItem" + }, + "traits": { + "smithy.api#documentation": "The values of the time series" + } + }, + "com.render.api#GetDiskCapacityResponseBodyItem": { + "type": "structure", + "members": { + "labels": { + "target": "com.render.api#GetDiskCapacityResponseBodyItemLabelsList", + "traits": { + "smithy.api#documentation": "List of labels describing the time series", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.render.api#GetDiskCapacityResponseBodyItemValuesList", + "traits": { + "smithy.api#documentation": "The values of the time series", + "smithy.api#required": {} + } + }, + "unit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series data point" + } + }, + "com.render.api#GetDiskCapacityResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#GetDiskCapacityResponseBodyItem" + }, + "traits": { + "smithy.api#documentation": "A collection of time series" + } + }, + "com.render.api#GetDiskCapacityResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#GetDiskCapacityResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetDiskCapacity": { + "type": "operation", + "input": { + "target": "com.render.api#GetDiskCapacityRequest" + }, + "output": { + "target": "com.render.api#GetDiskCapacityResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/metrics/disk-capacity", + "code": 200 + }, + "smithy.api#documentation": "Get disk capacity\n\nGet persistent disk capacity for one or more resources." + } + }, + "com.render.api#GetInstanceCountRequest": { + "type": "structure", + "members": { + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "resolutionSeconds": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#httpQuery": "resolutionSeconds", + "smithy.api#documentation": "The resolution of the returned data" + } + }, + "resource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#documentation": "Resource ID to query. When multiple resource query params are provided, they are ORed together. Resources can be service ids, Postgres ids, or Redis ids" + } + }, + "service": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "service", + "smithy.api#documentation": "This parameter is deprecated. Please use `resource` instead" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#GetInstanceCountResponseBodyItemLabelsItem": { + "type": "structure", + "members": { + "field": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint label" + } + }, + "com.render.api#GetInstanceCountResponseBodyItemLabelsList": { + "type": "list", + "member": { + "target": "com.render.api#GetInstanceCountResponseBodyItemLabelsItem" + }, + "traits": { + "smithy.api#documentation": "List of labels describing the time series" + } + }, + "com.render.api#GetInstanceCountResponseBodyItemValuesItem": { + "type": "structure", + "members": { + "timestamp": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint value" + } + }, + "com.render.api#GetInstanceCountResponseBodyItemValuesList": { + "type": "list", + "member": { + "target": "com.render.api#GetInstanceCountResponseBodyItemValuesItem" + }, + "traits": { + "smithy.api#documentation": "The values of the time series" + } + }, + "com.render.api#GetInstanceCountResponseBodyItem": { + "type": "structure", + "members": { + "labels": { + "target": "com.render.api#GetInstanceCountResponseBodyItemLabelsList", + "traits": { + "smithy.api#documentation": "List of labels describing the time series", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.render.api#GetInstanceCountResponseBodyItemValuesList", + "traits": { + "smithy.api#documentation": "The values of the time series", + "smithy.api#required": {} + } + }, + "unit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series data point" + } + }, + "com.render.api#GetInstanceCountResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#GetInstanceCountResponseBodyItem" + }, + "traits": { + "smithy.api#documentation": "A collection of time series" + } + }, + "com.render.api#GetInstanceCountResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#GetInstanceCountResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetInstanceCount": { + "type": "operation", + "input": { + "target": "com.render.api#GetInstanceCountRequest" + }, + "output": { + "target": "com.render.api#GetInstanceCountResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/metrics/instance-count", + "code": 200 + }, + "smithy.api#documentation": "Get instance count\n\nGet the instance count for one or more resources." + } + }, + "com.render.api#GetActiveConnectionsRequest": { + "type": "structure", + "members": { + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "resolutionSeconds": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#httpQuery": "resolutionSeconds", + "smithy.api#documentation": "The resolution of the returned data" + } + }, + "resource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#documentation": "Resource ID to query. When multiple resource query params are provided, they are ORed together. Resources Postgres ids or Redis ids" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#GetActiveConnectionsResponseBodyItemLabelsItem": { + "type": "structure", + "members": { + "field": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint label" + } + }, + "com.render.api#GetActiveConnectionsResponseBodyItemLabelsList": { + "type": "list", + "member": { + "target": "com.render.api#GetActiveConnectionsResponseBodyItemLabelsItem" + }, + "traits": { + "smithy.api#documentation": "List of labels describing the time series" + } + }, + "com.render.api#GetActiveConnectionsResponseBodyItemValuesItem": { + "type": "structure", + "members": { + "timestamp": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint value" + } + }, + "com.render.api#GetActiveConnectionsResponseBodyItemValuesList": { + "type": "list", + "member": { + "target": "com.render.api#GetActiveConnectionsResponseBodyItemValuesItem" + }, + "traits": { + "smithy.api#documentation": "The values of the time series" + } + }, + "com.render.api#GetActiveConnectionsResponseBodyItem": { + "type": "structure", + "members": { + "labels": { + "target": "com.render.api#GetActiveConnectionsResponseBodyItemLabelsList", + "traits": { + "smithy.api#documentation": "List of labels describing the time series", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.render.api#GetActiveConnectionsResponseBodyItemValuesList", + "traits": { + "smithy.api#documentation": "The values of the time series", + "smithy.api#required": {} + } + }, + "unit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series data point" + } + }, + "com.render.api#GetActiveConnectionsResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#GetActiveConnectionsResponseBodyItem" + }, + "traits": { + "smithy.api#documentation": "A collection of time series" + } + }, + "com.render.api#GetActiveConnectionsResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#GetActiveConnectionsResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetActiveConnections": { + "type": "operation", + "input": { + "target": "com.render.api#GetActiveConnectionsRequest" + }, + "output": { + "target": "com.render.api#GetActiveConnectionsResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/metrics/active-connections", + "code": 200 + }, + "smithy.api#documentation": "Get active connection count\n\nGet the number of active connections for one or more Postgres databases or Redis instances." + } + }, + "com.render.api#GetReplicationLagRequest": { + "type": "structure", + "members": { + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "resolutionSeconds": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#httpQuery": "resolutionSeconds", + "smithy.api#documentation": "The resolution of the returned data" + } + }, + "resource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#documentation": "Postgres ID to query. When multiple resource query params are provided, they are ORed together" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#GetReplicationLagResponseBodyItemLabelsItem": { + "type": "structure", + "members": { + "field": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint label" + } + }, + "com.render.api#GetReplicationLagResponseBodyItemLabelsList": { + "type": "list", + "member": { + "target": "com.render.api#GetReplicationLagResponseBodyItemLabelsItem" + }, + "traits": { + "smithy.api#documentation": "List of labels describing the time series" + } + }, + "com.render.api#GetReplicationLagResponseBodyItemValuesItem": { + "type": "structure", + "members": { + "timestamp": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint value" + } + }, + "com.render.api#GetReplicationLagResponseBodyItemValuesList": { + "type": "list", + "member": { + "target": "com.render.api#GetReplicationLagResponseBodyItemValuesItem" + }, + "traits": { + "smithy.api#documentation": "The values of the time series" + } + }, + "com.render.api#GetReplicationLagResponseBodyItem": { + "type": "structure", + "members": { + "labels": { + "target": "com.render.api#GetReplicationLagResponseBodyItemLabelsList", + "traits": { + "smithy.api#documentation": "List of labels describing the time series", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.render.api#GetReplicationLagResponseBodyItemValuesList", + "traits": { + "smithy.api#documentation": "The values of the time series", + "smithy.api#required": {} + } + }, + "unit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series data point" + } + }, + "com.render.api#GetReplicationLagResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#GetReplicationLagResponseBodyItem" + }, + "traits": { + "smithy.api#documentation": "A collection of time series" + } + }, + "com.render.api#GetReplicationLagResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#GetReplicationLagResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetReplicationLag": { + "type": "operation", + "input": { + "target": "com.render.api#GetReplicationLagRequest" + }, + "output": { + "target": "com.render.api#GetReplicationLagResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/metrics/replication-lag", + "code": 200 + }, + "smithy.api#documentation": "Get replica lag\n\nGet seconds of replica lag of a Postgres replica." + } + }, + "com.render.api#ListApplicationFilterValuesRequest": { + "type": "structure", + "members": { + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "resolutionSeconds": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#httpQuery": "resolutionSeconds", + "smithy.api#documentation": "The resolution of the returned data" + } + }, + "resource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#documentation": "Service ID to query. When multiple service ids are provided, they are ORed together" + } + }, + "service": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "service", + "smithy.api#documentation": "This parameter is deprecated. Please use `resource` instead" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#ListApplicationFilterValuesResponseBodyItemFilter": { + "type": "enum", + "members": { + "INSTANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance" + } + } + }, + "traits": {} + }, + "com.render.api#ListApplicationFilterValuesResponseBodyItemValuesList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListApplicationFilterValuesResponseBodyItem": { + "type": "structure", + "members": { + "filter": { + "target": "com.render.api#ListApplicationFilterValuesResponseBodyItemFilter" + }, + "values": { + "target": "com.render.api#ListApplicationFilterValuesResponseBodyItemValuesList" + } + }, + "traits": {} + }, + "com.render.api#ListApplicationFilterValuesResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#ListApplicationFilterValuesResponseBodyItem" + }, + "traits": { + "smithy.api#documentation": "A collection of filter values for application metrics" + } + }, + "com.render.api#ListApplicationFilterValuesResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListApplicationFilterValuesResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListApplicationFilterValues": { + "type": "operation", + "input": { + "target": "com.render.api#ListApplicationFilterValuesRequest" + }, + "output": { + "target": "com.render.api#ListApplicationFilterValuesResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/metrics/filters/application", + "code": 200 + }, + "smithy.api#documentation": "List queryable instance values\n\nList instance values to filter by for one or more resources." + } + }, + "com.render.api#ListHttpFilterValuesRequest": { + "type": "structure", + "members": { + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "resolutionSeconds": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#httpQuery": "resolutionSeconds", + "smithy.api#documentation": "The resolution of the returned data" + } + }, + "resource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#documentation": "Service ID to query. When multiple service ids are provided, they are ORed together" + } + }, + "service": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "service", + "smithy.api#documentation": "This parameter is deprecated. Please use `resource` instead" + } + }, + "host": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "host", + "smithy.api#documentation": "The hosts of HTTP requests to filter to. When multiple host query params are provided, they are ORed together" + } + }, + "statusCode": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "statusCode", + "smithy.api#documentation": "The status codes of HTTP requests to filter to. When multiple status code query params are provided, they are ORed together" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#ListHttpFilterValuesResponseBodyItemFilter": { + "type": "enum", + "members": { + "HOST": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "host" + } + }, + "STATUSCODE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "statusCode" + } + } + }, + "traits": {} + }, + "com.render.api#ListHttpFilterValuesResponseBodyItemValuesList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListHttpFilterValuesResponseBodyItem": { + "type": "structure", + "members": { + "filter": { + "target": "com.render.api#ListHttpFilterValuesResponseBodyItemFilter" + }, + "values": { + "target": "com.render.api#ListHttpFilterValuesResponseBodyItemValuesList" + } + }, + "traits": {} + }, + "com.render.api#ListHttpFilterValuesResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#ListHttpFilterValuesResponseBodyItem" + }, + "traits": { + "smithy.api#documentation": "A collection of filter values for HTTP metrics" + } + }, + "com.render.api#ListHttpFilterValuesResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListHttpFilterValuesResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListHttpFilterValues": { + "type": "operation", + "input": { + "target": "com.render.api#ListHttpFilterValuesRequest" + }, + "output": { + "target": "com.render.api#ListHttpFilterValuesResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/metrics/filters/http", + "code": 200 + }, + "smithy.api#documentation": "List queryable status codes and host values\n\nList status codes and host values to filter by for one or more resources." + } + }, + "com.render.api#ListPathFilterValuesRequest": { + "type": "structure", + "members": { + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "resolutionSeconds": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#httpQuery": "resolutionSeconds", + "smithy.api#documentation": "The resolution of the returned data" + } + }, + "resource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#documentation": "Service ID to query. When multiple service ids are provided, they are ORed together" + } + }, + "service": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "service", + "smithy.api#documentation": "This parameter is deprecated. Please use `resource` instead" + } + }, + "host": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "host", + "smithy.api#documentation": "The hosts of HTTP requests to filter to. When multiple host query params are provided, they are ORed together" + } + }, + "statusCode": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "statusCode", + "smithy.api#documentation": "The status codes of HTTP requests to filter to. When multiple status code query params are provided, they are ORed together" + } + }, + "path": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "path", + "smithy.api#documentation": "The paths of HTTP requests to filter to. When multiple path query params are provided, they are ORed together" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#ListPathFilterValuesResponseBodyList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": { + "smithy.api#documentation": "A collection of suggested paths to filter by" + } + }, + "com.render.api#ListPathFilterValuesResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListPathFilterValuesResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListPathFilterValues": { + "type": "operation", + "input": { + "target": "com.render.api#ListPathFilterValuesRequest" + }, + "output": { + "target": "com.render.api#ListPathFilterValuesResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/metrics/filters/path", + "code": 200 + }, + "smithy.api#documentation": "List queryable paths\n\nThe path suggestions are based on the most recent 5000 log lines as filtered by the provided filters" + } + }, + "com.render.api#GetTaskRunsQueuedRequest": { + "type": "structure", + "members": { + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "resolutionSeconds": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#httpQuery": "resolutionSeconds", + "smithy.api#documentation": "The resolution of the returned data" + } + }, + "resource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#documentation": "Task ID to query. When multiple task IDs are provided, they are ORed together" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#GetTaskRunsQueuedResponseBodyItemLabelsItem": { + "type": "structure", + "members": { + "field": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint label" + } + }, + "com.render.api#GetTaskRunsQueuedResponseBodyItemLabelsList": { + "type": "list", + "member": { + "target": "com.render.api#GetTaskRunsQueuedResponseBodyItemLabelsItem" + }, + "traits": { + "smithy.api#documentation": "List of labels describing the time series" + } + }, + "com.render.api#GetTaskRunsQueuedResponseBodyItemValuesItem": { + "type": "structure", + "members": { + "timestamp": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint value" + } + }, + "com.render.api#GetTaskRunsQueuedResponseBodyItemValuesList": { + "type": "list", + "member": { + "target": "com.render.api#GetTaskRunsQueuedResponseBodyItemValuesItem" + }, + "traits": { + "smithy.api#documentation": "The values of the time series" + } + }, + "com.render.api#GetTaskRunsQueuedResponseBodyItem": { + "type": "structure", + "members": { + "labels": { + "target": "com.render.api#GetTaskRunsQueuedResponseBodyItemLabelsList", + "traits": { + "smithy.api#documentation": "List of labels describing the time series", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.render.api#GetTaskRunsQueuedResponseBodyItemValuesList", + "traits": { + "smithy.api#documentation": "The values of the time series", + "smithy.api#required": {} + } + }, + "unit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series data point" + } + }, + "com.render.api#GetTaskRunsQueuedResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#GetTaskRunsQueuedResponseBodyItem" + }, + "traits": { + "smithy.api#documentation": "A collection of time series" + } + }, + "com.render.api#GetTaskRunsQueuedResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#GetTaskRunsQueuedResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetTaskRunsQueued": { + "type": "operation", + "input": { + "target": "com.render.api#GetTaskRunsQueuedRequest" + }, + "output": { + "target": "com.render.api#GetTaskRunsQueuedResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/metrics/task-runs-queued", + "code": 200 + }, + "smithy.api#documentation": "Get task runs queued count\n\nGet the total number of task runs queued for one or more tasks." + } + }, + "com.render.api#GetTaskRunsCompletedRequestState": { + "type": "enum", + "members": { + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "succeeded" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + }, + "traits": {} + }, + "com.render.api#GetTaskRunsCompletedRequestAggregateBy": { + "type": "enum", + "members": { + "STATE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "state" + } + } + }, + "traits": {} + }, + "com.render.api#GetTaskRunsCompletedRequest": { + "type": "structure", + "members": { + "startTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "startTime", + "smithy.api#documentation": "Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`." + } + }, + "endTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "endTime", + "smithy.api#documentation": "Epoch/Unix timestamp of end of time range to return. Defaults to `now()`." + } + }, + "resolutionSeconds": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#httpQuery": "resolutionSeconds", + "smithy.api#documentation": "The resolution of the returned data" + } + }, + "resource": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "resource", + "smithy.api#documentation": "Task ID to query. When multiple task IDs are provided, they are ORed together" + } + }, + "state": { + "target": "com.render.api#GetTaskRunsCompletedRequestState", + "traits": { + "smithy.api#httpQuery": "state", + "smithy.api#documentation": "The state of task runs to filter to. When multiple state query params are provided, they are ORed together" + } + }, + "aggregateBy": { + "target": "com.render.api#GetTaskRunsCompletedRequestAggregateBy", + "traits": { + "smithy.api#httpQuery": "aggregateBy", + "smithy.api#documentation": "The field to aggregate by" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#GetTaskRunsCompletedResponseBodyItemLabelsItem": { + "type": "structure", + "members": { + "field": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint label" + } + }, + "com.render.api#GetTaskRunsCompletedResponseBodyItemLabelsList": { + "type": "list", + "member": { + "target": "com.render.api#GetTaskRunsCompletedResponseBodyItemLabelsItem" + }, + "traits": { + "smithy.api#documentation": "List of labels describing the time series" + } + }, + "com.render.api#GetTaskRunsCompletedResponseBodyItemValuesItem": { + "type": "structure", + "members": { + "timestamp": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "value": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series datapoint value" + } + }, + "com.render.api#GetTaskRunsCompletedResponseBodyItemValuesList": { + "type": "list", + "member": { + "target": "com.render.api#GetTaskRunsCompletedResponseBodyItemValuesItem" + }, + "traits": { + "smithy.api#documentation": "The values of the time series" + } + }, + "com.render.api#GetTaskRunsCompletedResponseBodyItem": { + "type": "structure", + "members": { + "labels": { + "target": "com.render.api#GetTaskRunsCompletedResponseBodyItemLabelsList", + "traits": { + "smithy.api#documentation": "List of labels describing the time series", + "smithy.api#required": {} + } + }, + "values": { + "target": "com.render.api#GetTaskRunsCompletedResponseBodyItemValuesList", + "traits": { + "smithy.api#documentation": "The values of the time series", + "smithy.api#required": {} + } + }, + "unit": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A time series data point" + } + }, + "com.render.api#GetTaskRunsCompletedResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#GetTaskRunsCompletedResponseBodyItem" + }, + "traits": { + "smithy.api#documentation": "A collection of time series" + } + }, + "com.render.api#GetTaskRunsCompletedResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#GetTaskRunsCompletedResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetTaskRunsCompleted": { + "type": "operation", + "input": { + "target": "com.render.api#GetTaskRunsCompletedRequest" + }, + "output": { + "target": "com.render.api#GetTaskRunsCompletedResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/metrics/task-runs-completed", + "code": 200 + }, + "smithy.api#documentation": "Get task runs completed count\n\nGet the total number of task runs completed for one or more tasks. Optionally filter by state (succeeded/failed) or aggregate by state." + } + }, + "com.render.api#ListKeyValueRequestNameList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListKeyValueRequestRegionList": { + "type": "list", + "member": { + "target": "com.render.api#Region" + }, + "traits": {} + }, + "com.render.api#ListKeyValueRequestOwnerIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListKeyValueRequestEnvironmentIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListKeyValueRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.render.api#ListKeyValueRequestNameList", + "traits": { + "smithy.api#httpQuery": "name", + "smithy.api#documentation": "Filter by name" + } + }, + "region": { + "target": "com.render.api#ListKeyValueRequestRegionList", + "traits": { + "smithy.api#httpQuery": "region", + "smithy.api#documentation": "Filter by resource region" + } + }, + "createdBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "createdBefore", + "smithy.api#documentation": "Filter for resources created before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "createdAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "createdAfter", + "smithy.api#documentation": "Filter for resources created after a certain time (specified as an ISO 8601 timestamp)" + } + }, + "updatedBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "updatedBefore", + "smithy.api#documentation": "Filter for resources updated before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "updatedAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "updatedAfter", + "smithy.api#documentation": "Filter for resources updated after a certain time (specified as an ISO 8601 timestamp)" + } + }, + "ownerId": { + "target": "com.render.api#ListKeyValueRequestOwnerIdList", + "traits": { + "smithy.api#httpQuery": "ownerId", + "smithy.api#documentation": "The ID of the workspaces to return resources for" + } + }, + "environmentId": { + "target": "com.render.api#ListKeyValueRequestEnvironmentIdList", + "traits": { + "smithy.api#httpQuery": "environmentId", + "smithy.api#documentation": "Filter for resources that belong to an environment" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#KeyValueWithCursor": { + "type": "structure", + "members": { + "keyValue": { + "target": "com.render.api#KeyValue", + "traits": { + "smithy.api#required": {} + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#KeyValue": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the Key Value instance", + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The creation time of the Key Value instance", + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The last updated time of the Key Value instance", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#DatabaseStatus", + "traits": { + "smithy.api#required": {} + } + }, + "region": { + "target": "com.render.api#Region", + "traits": { + "smithy.api#required": {} + } + }, + "plan": { + "target": "com.render.api#KeyValuePlan", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The name of the Key Value instance", + "smithy.api#required": {} + } + }, + "owner": { + "target": "com.render.api#Owner", + "traits": { + "smithy.api#required": {} + } + }, + "options": { + "target": "com.render.api#KeyValueOptions", + "traits": { + "smithy.api#required": {} + } + }, + "ipAllowList": { + "target": "com.render.api#KeyValueIpAllowListList", + "traits": { + "smithy.api#documentation": "The IP allow list for the Key Value instance", + "smithy.api#required": {} + } + }, + "environmentId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the environment the Key Value instance is associated with" + } + }, + "version": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The version of Key Value", + "smithy.api#required": {} + } + }, + "dashboardUrl": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The URL to view the Key Value instance in the Render Dashboard", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A Key Value instance" + } + }, + "com.render.api#DatabaseStatus": { + "type": "enum", + "members": { + "CREATING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "creating" + } + }, + "AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "available" + } + }, + "UNAVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unavailable" + } + }, + "CONFIG_RESTART": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "config_restart" + } + }, + "SUSPENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "suspended" + } + }, + "MAINTENANCE_SCHEDULED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "maintenance_scheduled" + } + }, + "MAINTENANCE_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "maintenance_in_progress" + } + }, + "RECOVERY_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "recovery_failed" + } + }, + "RECOVERY_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "recovery_in_progress" + } + }, + "UNKNOWN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unknown" + } + }, + "UPDATING_INSTANCE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "updating_instance" + } + } + }, + "traits": {} + }, + "com.render.api#KeyValuePlan": { + "type": "enum", + "members": { + "FREE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "free" + } + }, + "STARTER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "starter" + } + }, + "STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "standard" + } + }, + "PRO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro" + } + }, + "PRO_PLUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_plus" + } + }, + "CUSTOM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "custom" + } + }, + "_256MB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "256mb" + } + }, + "_1G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "1g" + } + }, + "_5G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "5g" + } + }, + "_10G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "10g" + } + }, + "_20G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "20g" + } + }, + "_40G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "40g" + } + } + }, + "traits": {} + }, + "com.render.api#KeyValueOptions": { + "type": "structure", + "members": { + "maxmemoryPolicy": { + "target": "smithy.api#String" + }, + "persistenceMode": { + "target": "com.render.api#PersistenceMode" + } + }, + "traits": { + "smithy.api#documentation": "Options for a Key Value instance" + } + }, + "com.render.api#PersistenceMode": { + "type": "enum", + "members": { + "JOURNAL_SNAPSHOT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "journal_snapshot" + } + }, + "SNAPSHOT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "snapshot" + } + }, + "OFF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "off" + } + } + }, + "traits": { + "smithy.api#documentation": "The persistence mode for the Key Value instance. The default for paid instances is journal_snapshot (both journaling and snapshots). Only turn off persistence if you're using this Key Value instance as a cache and are okay with losing data. Free instances do not have persistence." + } + }, + "com.render.api#KeyValueIpAllowListList": { + "type": "list", + "member": { + "target": "com.render.api#CidrBlockAndDescription" + }, + "traits": { + "smithy.api#documentation": "The IP allow list for the Key Value instance" + } + }, + "com.render.api#ListKeyValueResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#KeyValueWithCursor" + }, + "traits": {} + }, + "com.render.api#ListKeyValueResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListKeyValueResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListKeyValue": { + "type": "operation", + "input": { + "target": "com.render.api#ListKeyValueRequest" + }, + "output": { + "target": "com.render.api#ListKeyValueResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + }, + { + "target": "com.render.api#Conflict" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/key-value", + "code": 200 + }, + "smithy.api#documentation": "List Key Value instances\n\nList Key Value instances matching the provided filters. If no filters are provided, all Key Value instances are returned." + } + }, + "com.render.api#MaxmemoryPolicy": { + "type": "enum", + "members": { + "NOEVICTION": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "noeviction" + } + }, + "ALLKEYS_LFU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "allkeys_lfu" + } + }, + "ALLKEYS_LRU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "allkeys_lru" + } + }, + "ALLKEYS_RANDOM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "allkeys_random" + } + }, + "VOLATILE_LFU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "volatile_lfu" + } + }, + "VOLATILE_LRU": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "volatile_lru" + } + }, + "VOLATILE_RANDOM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "volatile_random" + } + }, + "VOLATILE_TTL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "volatile_ttl" + } + } + }, + "traits": { + "smithy.api#documentation": "The eviction policy for the Key Value instance" + } + }, + "com.render.api#CreateKeyValueRequestIpAllowListList": { + "type": "list", + "member": { + "target": "com.render.api#CidrBlockAndDescription" + }, + "traits": {} + }, + "com.render.api#CreateKeyValueRequest": { + "type": "structure", + "members": { + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The name of the Key Value instance", + "smithy.api#required": {} + } + }, + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the owner of the Key Value instance", + "smithy.api#required": {} + } + }, + "plan": { + "target": "com.render.api#KeyValuePlan", + "traits": { + "smithy.api#required": {} + } + }, + "region": { + "target": "com.render.api#Region" + }, + "environmentId": { + "target": "smithy.api#String" + }, + "maxmemoryPolicy": { + "target": "com.render.api#MaxmemoryPolicy" + }, + "persistenceMode": { + "target": "com.render.api#PersistenceMode" + }, + "ipAllowList": { + "target": "com.render.api#CreateKeyValueRequestIpAllowListList" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#KeyValueDetail": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the Key Value instance", + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The creation time of the Key Value instance", + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The last updated time of the Key Value instance", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#DatabaseStatus", + "traits": { + "smithy.api#required": {} + } + }, + "region": { + "target": "com.render.api#Region", + "traits": { + "smithy.api#required": {} + } + }, + "plan": { + "target": "com.render.api#KeyValuePlan", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The name of the Key Value instance", + "smithy.api#required": {} + } + }, + "owner": { + "target": "com.render.api#Owner", + "traits": { + "smithy.api#required": {} + } + }, + "options": { + "target": "com.render.api#KeyValueOptions", + "traits": { + "smithy.api#required": {} + } + }, + "ipAllowList": { + "target": "com.render.api#KeyValueDetailIpAllowListList", + "traits": { + "smithy.api#documentation": "The IP allow list for the Key Value instance", + "smithy.api#required": {} + } + }, + "environmentId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the environment the Key Value instance is associated with" + } + }, + "version": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The version of Key Value", + "smithy.api#required": {} + } + }, + "maintenance": { + "target": "com.render.api#Maintenance" + } + }, + "traits": { + "smithy.api#documentation": "A Key Value instance" + } + }, + "com.render.api#KeyValueDetailIpAllowListList": { + "type": "list", + "member": { + "target": "com.render.api#CidrBlockAndDescription" + }, + "traits": { + "smithy.api#documentation": "The IP allow list for the Key Value instance" + } + }, + "com.render.api#Maintenance": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "type": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "scheduledAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "pendingMaintenanceBy": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "If present, the maintenance run cannot be scheduled for later than this date-time." + } + }, + "state": { + "target": "com.render.api#Items4", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Items4": { + "type": "enum", + "members": { + "SCHEDULED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scheduled" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "in_progress" + } + }, + "USER_FIX_REQUIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "user_fix_required" + } + }, + "CANCELLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelled" + } + }, + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "succeeded" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + }, + "traits": {} + }, + "com.render.api#CreateKeyValue": { + "type": "operation", + "input": { + "target": "com.render.api#CreateKeyValueRequest" + }, + "output": { + "target": "com.render.api#KeyValueDetail" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/key-value", + "code": 200 + }, + "smithy.api#documentation": "Create Key Value instance\n\nCreate a new Key Value instance." + } + }, + "com.render.api#RetrieveKeyValueRequest": { + "type": "structure", + "members": { + "redisId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrieveKeyValue": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveKeyValueRequest" + }, + "output": { + "target": "com.render.api#KeyValueDetail" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/key-value/{redisId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve Key Value instance\n\nRetrieve a Key Value instance by ID." + } + }, + "com.render.api#UpdateKeyValueRequestIpAllowListList": { + "type": "list", + "member": { + "target": "com.render.api#CidrBlockAndDescription" + }, + "traits": {} + }, + "com.render.api#UpdateKeyValueRequest": { + "type": "structure", + "members": { + "redisId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The name of the Key Value instance" + } + }, + "plan": { + "target": "com.render.api#KeyValuePlan" + }, + "maxmemoryPolicy": { + "target": "com.render.api#MaxmemoryPolicy" + }, + "persistenceMode": { + "target": "com.render.api#PersistenceMode" + }, + "ipAllowList": { + "target": "com.render.api#UpdateKeyValueRequestIpAllowListList" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UpdateKeyValue": { + "type": "operation", + "input": { + "target": "com.render.api#UpdateKeyValueRequest" + }, + "output": { + "target": "com.render.api#KeyValueDetail" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + }, + { + "target": "com.render.api#Conflict" + } + ], + "traits": { + "smithy.api#http": { + "method": "PATCH", + "uri": "/key-value/{redisId}", + "code": 200 + }, + "smithy.api#documentation": "Update Key Value instance\n\nUpdate a Key Value instance by ID. Note that changing your plan, max memory policy, or persistence mode will restart your Key Value instance." + } + }, + "com.render.api#DeleteKeyValueRequest": { + "type": "structure", + "members": { + "redisId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeleteKeyValue": { + "type": "operation", + "input": { + "target": "com.render.api#DeleteKeyValueRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/key-value/{redisId}", + "code": 200 + }, + "smithy.api#documentation": "Delete Key Value instance\n\nDelete a Key Value instance by ID." + } + }, + "com.render.api#RetrieveKeyValueConnectionInfoRequest": { + "type": "structure", + "members": { + "redisId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#KeyValueConnectionInfo": { + "type": "structure", + "members": { + "internalConnectionString": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The connection string to use from within Render", + "smithy.api#required": {} + } + }, + "externalConnectionString": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The connection string to use from outside Render", + "smithy.api#required": {} + } + }, + "cliCommand": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The CLI (redis-cli or valkey-cli) command to connect to the Key Value instance", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A Key Value instance" + } + }, + "com.render.api#RetrieveKeyValueConnectionInfo": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveKeyValueConnectionInfoRequest" + }, + "output": { + "target": "com.render.api#KeyValueConnectionInfo" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/key-value/{redisId}/connection-info", + "code": 200 + }, + "smithy.api#documentation": "Retrieve Key Value connection info\n\nRetrieve connection info for a Key Value instance by ID. Connection info includes sensitive information." + } + }, + "com.render.api#SuspendKeyValueRequest": { + "type": "structure", + "members": { + "redisId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#SuspendKeyValue": { + "type": "operation", + "input": { + "target": "com.render.api#SuspendKeyValueRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/key-value/{redisId}/suspend", + "code": 200 + }, + "smithy.api#documentation": "Suspend Key Value instance\n\nSuspend a Key Value instance by ID." + } + }, + "com.render.api#ResumeKeyValueRequest": { + "type": "structure", + "members": { + "redisId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#ResumeKeyValue": { + "type": "operation", + "input": { + "target": "com.render.api#ResumeKeyValueRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/key-value/{redisId}/resume", + "code": 200 + }, + "smithy.api#documentation": "Resume Key Value instance\n\nResume a Key Value instance by ID." + } + }, + "com.render.api#ListPostgresRequestNameList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListPostgresRequestRegionList": { + "type": "list", + "member": { + "target": "com.render.api#Region" + }, + "traits": {} + }, + "com.render.api#ListPostgresRequestSuspendedItem": { + "type": "enum", + "members": { + "SUSPENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "suspended" + } + }, + "NOT_SUSPENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "not_suspended" + } + } + }, + "traits": {} + }, + "com.render.api#ListPostgresRequestSuspendedList": { + "type": "list", + "member": { + "target": "com.render.api#ListPostgresRequestSuspendedItem" + }, + "traits": {} + }, + "com.render.api#ListPostgresRequestOwnerIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListPostgresRequestEnvironmentIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListPostgresRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.render.api#ListPostgresRequestNameList", + "traits": { + "smithy.api#httpQuery": "name", + "smithy.api#documentation": "Filter by name" + } + }, + "region": { + "target": "com.render.api#ListPostgresRequestRegionList", + "traits": { + "smithy.api#httpQuery": "region", + "smithy.api#documentation": "Filter by resource region" + } + }, + "suspended": { + "target": "com.render.api#ListPostgresRequestSuspendedList", + "traits": { + "smithy.api#httpQuery": "suspended", + "smithy.api#documentation": "Filter resources based on whether they're suspended or not suspended" + } + }, + "createdBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "createdBefore", + "smithy.api#documentation": "Filter for resources created before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "createdAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "createdAfter", + "smithy.api#documentation": "Filter for resources created after a certain time (specified as an ISO 8601 timestamp)" + } + }, + "updatedBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "updatedBefore", + "smithy.api#documentation": "Filter for resources updated before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "updatedAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "updatedAfter", + "smithy.api#documentation": "Filter for resources updated after a certain time (specified as an ISO 8601 timestamp)" + } + }, + "ownerId": { + "target": "com.render.api#ListPostgresRequestOwnerIdList", + "traits": { + "smithy.api#httpQuery": "ownerId", + "smithy.api#documentation": "The ID of the workspaces to return resources for" + } + }, + "environmentId": { + "target": "com.render.api#ListPostgresRequestEnvironmentIdList", + "traits": { + "smithy.api#httpQuery": "environmentId", + "smithy.api#documentation": "Filter for resources that belong to an environment" + } + }, + "includeReplicas": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#httpQuery": "includeReplicas", + "smithy.api#documentation": "Include replicas in the response" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#PostgresWithCursor": { + "type": "structure", + "members": { + "postgres": { + "target": "com.render.api#Postgres", + "traits": { + "smithy.api#required": {} + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Postgres": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "ipAllowList": { + "target": "com.render.api#PostgresIpAllowListList", + "traits": { + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "expiresAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The time at which the database will be expire. Applies to free tier databases only." + } + }, + "databaseName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "databaseUser": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "environmentId": { + "target": "smithy.api#String" + }, + "highAvailabilityEnabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "owner": { + "target": "com.render.api#Owner", + "traits": { + "smithy.api#required": {} + } + }, + "plan": { + "target": "com.render.api#Plan2", + "traits": { + "smithy.api#required": {} + } + }, + "diskSizeGB": { + "target": "smithy.api#Integer" + }, + "primaryPostgresID": { + "target": "smithy.api#String" + }, + "region": { + "target": "com.render.api#Region", + "traits": { + "smithy.api#required": {} + } + }, + "readReplicas": { + "target": "com.render.api#ReadReplicas", + "traits": { + "smithy.api#required": {} + } + }, + "role": { + "target": "com.render.api#DatabaseRole", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#DatabaseStatus", + "traits": { + "smithy.api#required": {} + } + }, + "version": { + "target": "com.render.api#PostgresVersion", + "traits": { + "smithy.api#required": {} + } + }, + "suspended": { + "target": "com.render.api#PostgresSuspended", + "traits": { + "smithy.api#required": {} + } + }, + "suspenders": { + "target": "com.render.api#PostgresSuspendersList", + "traits": { + "smithy.api#required": {} + } + }, + "dashboardUrl": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The URL to view the Postgres instance in the Render Dashboard", + "smithy.api#required": {} + } + }, + "diskAutoscalingEnabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "connectionPool": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "What connection pool to use (if any) out of 'pgbouncer' and 'none'", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#PostgresIpAllowListList": { + "type": "list", + "member": { + "target": "com.render.api#CidrBlockAndDescription" + }, + "traits": {} + }, + "com.render.api#Plan2": { + "type": "enum", + "members": { + "FREE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "free" + } + }, + "STARTER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "starter" + } + }, + "STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "standard" + } + }, + "PRO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro" + } + }, + "PRO_PLUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_plus" + } + }, + "CUSTOM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "custom" + } + }, + "BASIC_256MB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "basic_256mb" + } + }, + "BASIC_1GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "basic_1gb" + } + }, + "BASIC_4GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "basic_4gb" + } + }, + "PRO_4GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_4gb" + } + }, + "PRO_8GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_8gb" + } + }, + "PRO_16GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_16gb" + } + }, + "PRO_32GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_32gb" + } + }, + "PRO_64GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_64gb" + } + }, + "PRO_128GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_128gb" + } + }, + "PRO_192GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_192gb" + } + }, + "PRO_256GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_256gb" + } + }, + "PRO_384GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_384gb" + } + }, + "PRO_512GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_512gb" + } + }, + "ACCELERATED_16GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "accelerated_16gb" + } + }, + "ACCELERATED_32GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "accelerated_32gb" + } + }, + "ACCELERATED_64GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "accelerated_64gb" + } + }, + "ACCELERATED_128GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "accelerated_128gb" + } + }, + "ACCELERATED_256GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "accelerated_256gb" + } + }, + "ACCELERATED_384GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "accelerated_384gb" + } + }, + "ACCELERATED_512GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "accelerated_512gb" + } + }, + "ACCELERATED_768GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "accelerated_768gb" + } + }, + "ACCELERATED_1024GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "accelerated_1024gb" + } + }, + "_0_1C_256MB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "0.1c-256mb" + } + }, + "_0_5C_1G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "0.5c-1g" + } + }, + "_1C_2G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "1c-2g" + } + }, + "_1C_4G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "1c-4g" + } + }, + "_2C_4G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "2c-4g" + } + }, + "_2C_8G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "2c-8g" + } + }, + "_2C_16G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "2c-16g" + } + }, + "_4C_16G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "4c-16g" + } + }, + "_4C_32G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "4c-32g" + } + }, + "_8C_32G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "8c-32g" + } + }, + "_8C_64G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "8c-64g" + } + }, + "_16C_64G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "16c-64g" + } + }, + "_16C_128G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "16c-128g" + } + }, + "_32C_128G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "32c-128g" + } + }, + "_32C_256G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "32c-256g" + } + }, + "_48C_192G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "48c-192g" + } + }, + "_48C_384G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "48c-384g" + } + }, + "_64C_256G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "64c-256g" + } + }, + "_64C_512G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "64c-512g" + } + }, + "_96C_384G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "96c-384g" + } + }, + "_96C_768G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "96c-768g" + } + }, + "_128C_512G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "128c-512g" + } + }, + "_128C_1024G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "128c-1024g" + } + } + }, + "traits": {} + }, + "com.render.api#ReadReplicas": { + "type": "list", + "member": { + "target": "com.render.api#ReadReplica" + }, + "traits": {} + }, + "com.render.api#ReadReplica": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The replica instance identifier.", + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The display name of the replica instance.", + "smithy.api#required": {} + } + }, + "parameterOverrides": { + "target": "com.render.api#PostgresParameterOverrides" + } + }, + "traits": {} + }, + "com.render.api#PostgresParameterOverrides": { + "type": "map", + "key": { + "target": "smithy.api#String" + }, + "value": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#DatabaseRole": { + "type": "enum", + "members": { + "PRIMARY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "primary" + } + }, + "REPLICA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "replica" + } + } + }, + "traits": {} + }, + "com.render.api#PostgresVersion": { + "type": "enum", + "members": { + "_11": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "11" + } + }, + "_12": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "12" + } + }, + "_13": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "13" + } + }, + "_14": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "14" + } + }, + "_15": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "15" + } + }, + "_16": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "16" + } + }, + "_17": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "17" + } + }, + "_18": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "18" + } + } + }, + "traits": { + "smithy.api#documentation": "The PostgreSQL version" + } + }, + "com.render.api#PostgresSuspended": { + "type": "enum", + "members": { + "SUSPENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "suspended" + } + }, + "NOT_SUSPENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "not_suspended" + } + } + }, + "traits": {} + }, + "com.render.api#PostgresSuspendersList": { + "type": "list", + "member": { + "target": "com.render.api#SuspenderType" + }, + "traits": {} + }, + "com.render.api#ListPostgresResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#PostgresWithCursor" + }, + "traits": {} + }, + "com.render.api#ListPostgresResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListPostgresResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListPostgres": { + "type": "operation", + "input": { + "target": "com.render.api#ListPostgresRequest" + }, + "output": { + "target": "com.render.api#ListPostgresResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + }, + { + "target": "com.render.api#Conflict" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/postgres", + "code": 200 + }, + "smithy.api#documentation": "List Postgres instances\n\nList Postgres instances matching the provided filters. If no filters are provided, all Postgres instances are returned." + } + }, + "com.render.api#CreatePostgresRequestPlan": { + "type": "enum", + "members": { + "FREE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "free" + } + }, + "STARTER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "starter" + } + }, + "STANDARD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "standard" + } + }, + "PRO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro" + } + }, + "PRO_PLUS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_plus" + } + }, + "CUSTOM": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "custom" + } + }, + "BASIC_256MB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "basic_256mb" + } + }, + "BASIC_1GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "basic_1gb" + } + }, + "BASIC_4GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "basic_4gb" + } + }, + "PRO_4GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_4gb" + } + }, + "PRO_8GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_8gb" + } + }, + "PRO_16GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_16gb" + } + }, + "PRO_32GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_32gb" + } + }, + "PRO_64GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_64gb" + } + }, + "PRO_128GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_128gb" + } + }, + "PRO_192GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_192gb" + } + }, + "PRO_256GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_256gb" + } + }, + "PRO_384GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_384gb" + } + }, + "PRO_512GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pro_512gb" + } + }, + "ACCELERATED_16GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "accelerated_16gb" + } + }, + "ACCELERATED_32GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "accelerated_32gb" + } + }, + "ACCELERATED_64GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "accelerated_64gb" + } + }, + "ACCELERATED_128GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "accelerated_128gb" + } + }, + "ACCELERATED_256GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "accelerated_256gb" + } + }, + "ACCELERATED_384GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "accelerated_384gb" + } + }, + "ACCELERATED_512GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "accelerated_512gb" + } + }, + "ACCELERATED_768GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "accelerated_768gb" + } + }, + "ACCELERATED_1024GB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "accelerated_1024gb" + } + }, + "_0_1C_256MB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "0.1c-256mb" + } + }, + "_0_5C_1G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "0.5c-1g" + } + }, + "_1C_2G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "1c-2g" + } + }, + "_1C_4G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "1c-4g" + } + }, + "_2C_4G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "2c-4g" + } + }, + "_2C_8G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "2c-8g" + } + }, + "_2C_16G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "2c-16g" + } + }, + "_4C_16G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "4c-16g" + } + }, + "_4C_32G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "4c-32g" + } + }, + "_8C_32G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "8c-32g" + } + }, + "_8C_64G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "8c-64g" + } + }, + "_16C_64G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "16c-64g" + } + }, + "_16C_128G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "16c-128g" + } + }, + "_32C_128G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "32c-128g" + } + }, + "_32C_256G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "32c-256g" + } + }, + "_48C_192G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "48c-192g" + } + }, + "_48C_384G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "48c-384g" + } + }, + "_64C_256G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "64c-256g" + } + }, + "_64C_512G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "64c-512g" + } + }, + "_96C_384G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "96c-384g" + } + }, + "_96C_768G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "96c-768g" + } + }, + "_128C_512G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "128c-512g" + } + }, + "_128C_1024G": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "128c-1024g" + } + } + }, + "traits": {} + }, + "com.render.api#CreatePostgresRequestIpAllowListList": { + "type": "list", + "member": { + "target": "com.render.api#CidrBlockAndDescription" + }, + "traits": {} + }, + "com.render.api#ReadReplicasInput": { + "type": "list", + "member": { + "target": "com.render.api#ReadReplicaInput" + }, + "traits": {} + }, + "com.render.api#ReadReplicaInput": { + "type": "structure", + "members": { + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The display name of the replica instance.", + "smithy.api#required": {} + } + }, + "parameterOverrides": { + "target": "com.render.api#PostgresParameterOverrides" + } + }, + "traits": {} + }, + "com.render.api#CreatePostgresRequest": { + "type": "structure", + "members": { + "databaseName": { + "target": "smithy.api#String" + }, + "databaseUser": { + "target": "smithy.api#String" + }, + "datadogAPIKey": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The Datadog API key for the Datadog agent to monitor the new database." + } + }, + "datadogSite": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Datadog region to use for monitoring the new database. Defaults to 'US1'." + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The name of the database as it will appear in the Render Dashboard", + "smithy.api#required": {} + } + }, + "enableHighAvailability": { + "target": "smithy.api#Boolean" + }, + "environmentId": { + "target": "smithy.api#String" + }, + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the workspace to create the database for", + "smithy.api#required": {} + } + }, + "plan": { + "target": "com.render.api#CreatePostgresRequestPlan", + "traits": { + "smithy.api#required": {} + } + }, + "diskSizeGB": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "The number of gigabytes of disk space to allocate for the database" + } + }, + "enableDiskAutoscaling": { + "target": "smithy.api#Boolean" + }, + "connectionPool": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "What connection pool to use (if any) out of 'pgbouncer' and 'none'" + } + }, + "region": { + "target": "com.render.api#Region" + }, + "ipAllowList": { + "target": "com.render.api#CreatePostgresRequestIpAllowListList" + }, + "parameterOverrides": { + "target": "com.render.api#PostgresParameterOverrides" + }, + "readReplicas": { + "target": "com.render.api#ReadReplicasInput" + }, + "version": { + "target": "com.render.api#PostgresVersion", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#PostgresDetail": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "ipAllowList": { + "target": "com.render.api#PostgresDetailIpAllowListList", + "traits": { + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "expiresAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The time at which the database will be expire. Applies to free tier databases only." + } + }, + "dashboardUrl": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The URL to view the Postgres instance in the Render Dashboard", + "smithy.api#required": {} + } + }, + "databaseName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "databaseUser": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "environmentId": { + "target": "smithy.api#String" + }, + "highAvailabilityEnabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "maintenance": { + "target": "com.render.api#Maintenance" + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "owner": { + "target": "com.render.api#Owner", + "traits": { + "smithy.api#required": {} + } + }, + "plan": { + "target": "com.render.api#Plan2", + "traits": { + "smithy.api#required": {} + } + }, + "diskSizeGB": { + "target": "smithy.api#Integer" + }, + "parameterOverrides": { + "target": "com.render.api#PostgresParameterOverrides" + }, + "primaryPostgresID": { + "target": "smithy.api#String" + }, + "region": { + "target": "com.render.api#Region", + "traits": { + "smithy.api#required": {} + } + }, + "readReplicas": { + "target": "com.render.api#ReadReplicas", + "traits": { + "smithy.api#required": {} + } + }, + "role": { + "target": "com.render.api#DatabaseRole", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#DatabaseStatus", + "traits": { + "smithy.api#required": {} + } + }, + "version": { + "target": "com.render.api#PostgresVersion", + "traits": { + "smithy.api#required": {} + } + }, + "suspended": { + "target": "com.render.api#PostgresDetailSuspended", + "traits": { + "smithy.api#required": {} + } + }, + "suspenders": { + "target": "com.render.api#PostgresDetailSuspendersList", + "traits": { + "smithy.api#required": {} + } + }, + "diskAutoscalingEnabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "connectionPool": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "What connection pool to use (if any) out of 'pgbouncer' and 'none'", + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#PostgresDetailIpAllowListList": { + "type": "list", + "member": { + "target": "com.render.api#CidrBlockAndDescription" + }, + "traits": {} + }, + "com.render.api#PostgresDetailSuspended": { + "type": "enum", + "members": { + "SUSPENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "suspended" + } + }, + "NOT_SUSPENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "not_suspended" + } + } + }, + "traits": {} + }, + "com.render.api#PostgresDetailSuspendersList": { + "type": "list", + "member": { + "target": "com.render.api#SuspenderType" + }, + "traits": {} + }, + "com.render.api#CreatePostgres": { + "type": "operation", + "input": { + "target": "com.render.api#CreatePostgresRequest" + }, + "output": { + "target": "com.render.api#PostgresDetail" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/postgres", + "code": 200 + }, + "smithy.api#documentation": "Create Postgres instance\n\nCreate a new Postgres instance." + } + }, + "com.render.api#RetrievePostgresRequest": { + "type": "structure", + "members": { + "postgresId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrievePostgres": { + "type": "operation", + "input": { + "target": "com.render.api#RetrievePostgresRequest" + }, + "output": { + "target": "com.render.api#PostgresDetail" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/postgres/{postgresId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve Postgres instance\n\nRetrieve a Postgres instance by ID." + } + }, + "com.render.api#UpdatePostgresRequestIpAllowListList": { + "type": "list", + "member": { + "target": "com.render.api#CidrBlockAndDescription" + }, + "traits": {} + }, + "com.render.api#UpdatePostgresRequest": { + "type": "structure", + "members": { + "postgresId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String" + }, + "plan": { + "target": "com.render.api#Plan2" + }, + "diskSizeGB": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "The number of gigabytes of disk space to allocate for the database" + } + }, + "enableDiskAutoscaling": { + "target": "smithy.api#Boolean" + }, + "connectionPool": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "What connection pool to use (if any) out of 'pgbouncer' and 'none'" + } + }, + "enableHighAvailability": { + "target": "smithy.api#Boolean" + }, + "datadogAPIKey": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The Datadog API key for the Datadog agent to monitor the database. Pass empty string to remove. Restarts Postgres on change." + } + }, + "datadogSite": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Datadog region to use for monitoring the new database. Defaults to 'US1'." + } + }, + "ipAllowList": { + "target": "com.render.api#UpdatePostgresRequestIpAllowListList" + }, + "parameterOverrides": { + "target": "com.render.api#PostgresParameterOverrides" + }, + "readReplicas": { + "target": "com.render.api#ReadReplicasInput" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UpdatePostgres": { + "type": "operation", + "input": { + "target": "com.render.api#UpdatePostgresRequest" + }, + "output": { + "target": "com.render.api#PostgresDetail" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + }, + { + "target": "com.render.api#Conflict" + } + ], + "traits": { + "smithy.api#http": { + "method": "PATCH", + "uri": "/postgres/{postgresId}", + "code": 200 + }, + "smithy.api#documentation": "Update Postgres instance\n\nUpdate a Postgres instance by ID." + } + }, + "com.render.api#DeletePostgresRequest": { + "type": "structure", + "members": { + "postgresId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeletePostgres": { + "type": "operation", + "input": { + "target": "com.render.api#DeletePostgresRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/postgres/{postgresId}", + "code": 200 + }, + "smithy.api#documentation": "Delete Postgres instance\n\nDelete a Postgres instance by ID. This operation is irreversible, and\nall data will be lost." + } + }, + "com.render.api#RetrievePostgresConnectionInfoRequest": { + "type": "structure", + "members": { + "postgresId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#PostgresConnectionInfo": { + "type": "structure", + "members": { + "password": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {}, + "smithy.api#sensitive": {} + } + }, + "internalConnectionString": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "externalConnectionString": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "internalConnectionPoolString": { + "target": "smithy.api#String" + }, + "externalConnectionPoolString": { + "target": "smithy.api#String" + }, + "psqlCommand": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#RetrievePostgresConnectionInfo": { + "type": "operation", + "input": { + "target": "com.render.api#RetrievePostgresConnectionInfoRequest" + }, + "output": { + "target": "com.render.api#PostgresConnectionInfo" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/postgres/{postgresId}/connection-info", + "code": 200 + }, + "smithy.api#documentation": "Retrieve Postgres connection info\n\nRetrieve connection info for a Postgres instance by ID. Connection info includes sensitive information." + } + }, + "com.render.api#RetrievePostgresRecoveryInfoRequest": { + "type": "structure", + "members": { + "postgresId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrievePostgresRecoveryInfoResponseRecoveryStatus": { + "type": "enum", + "members": { + "AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AVAILABLE" + } + }, + "BACKUP_NOT_READY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BACKUP_NOT_READY" + } + }, + "NOT_AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_AVAILABLE" + } + } + }, + "traits": { + "smithy.api#documentation": "Availability of point-in-time recovery." + } + }, + "com.render.api#RetrievePostgresRecoveryInfoResponse": { + "type": "structure", + "members": { + "recoveryStatus": { + "target": "com.render.api#RetrievePostgresRecoveryInfoResponseRecoveryStatus", + "traits": { + "smithy.api#documentation": "Availability of point-in-time recovery.", + "smithy.api#required": {} + } + }, + "startsAt": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#RetrievePostgresRecoveryInfo": { + "type": "operation", + "input": { + "target": "com.render.api#RetrievePostgresRecoveryInfoRequest" + }, + "output": { + "target": "com.render.api#RetrievePostgresRecoveryInfoResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/postgres/{postgresId}/recovery", + "code": 200 + }, + "smithy.api#documentation": "Retrieve point-in-time recovery status\n\nRetrieve information on the availability of Postgres point-in-time recovery for a Postgres instance by ID." + } + }, + "com.render.api#RecoverPostgresRequest": { + "type": "structure", + "members": { + "postgresId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "restoreName": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Name of the new database." + } + }, + "restoreTime": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The point in time to restore the database to. See `/recovery-info` for restore availability", + "smithy.api#required": {} + } + }, + "datadogApiKey": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Datadog API key to use for monitoring the new database. Defaults to the API key of the original database. Use an empty string to prevent copying of the API key to the new database." + } + }, + "datadogSite": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Datadog region code to use for monitoring the new database. Defaults to the region code of the original database. Use an empty string to prevent copying of the region code to the new database." + } + }, + "plan": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The plan to use for the new database. Defaults to the same plan as the original database. Cannot be a lower tier plan than the original database." + } + }, + "environmentId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The environment to create the new database in. Defaults to the environment of the original database." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RecoverPostgres": { + "type": "operation", + "input": { + "target": "com.render.api#RecoverPostgresRequest" + }, + "output": { + "target": "com.render.api#PostgresDetail" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/postgres/{postgresId}/recovery", + "code": 200 + }, + "smithy.api#documentation": "Trigger point-in-time recovery\n\nTrigger [point-in-time recovery](https://render.com/docs/postgresql-backups) on the Postgres instance with the provided ID." + } + }, + "com.render.api#SuspendPostgresRequest": { + "type": "structure", + "members": { + "postgresId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#SuspendPostgres": { + "type": "operation", + "input": { + "target": "com.render.api#SuspendPostgresRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/postgres/{postgresId}/suspend", + "code": 200 + }, + "smithy.api#documentation": "Suspend Postgres instance\n\nSuspend a Postgres instance by ID." + } + }, + "com.render.api#ResumePostgresRequest": { + "type": "structure", + "members": { + "postgresId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#ResumePostgres": { + "type": "operation", + "input": { + "target": "com.render.api#ResumePostgresRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/postgres/{postgresId}/resume", + "code": 200 + }, + "smithy.api#documentation": "Resume Postgres instance\n\nResume a Postgres instance by ID." + } + }, + "com.render.api#RestartPostgresRequest": { + "type": "structure", + "members": { + "postgresId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RestartPostgres": { + "type": "operation", + "input": { + "target": "com.render.api#RestartPostgresRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/postgres/{postgresId}/restart", + "code": 200 + }, + "smithy.api#documentation": "Restart Postgres instance\n\nRestart a Postgres instance by ID." + } + }, + "com.render.api#FailoverPostgresRequest": { + "type": "structure", + "members": { + "postgresId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#FailoverPostgres": { + "type": "operation", + "input": { + "target": "com.render.api#FailoverPostgresRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/postgres/{postgresId}/failover", + "code": 200 + }, + "smithy.api#documentation": "Failover Postgres instance\n\nFailover a [highly available Postgres](https://render.com/docs/postgresql-high-availability) instance." + } + }, + "com.render.api#ListPostgresExportRequest": { + "type": "structure", + "members": { + "postgresId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#ListPostgresExportResponseBodyItem": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "url": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "URL to download the Postgres export" + } + } + }, + "traits": {} + }, + "com.render.api#ListPostgresExportResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#ListPostgresExportResponseBodyItem" + }, + "traits": {} + }, + "com.render.api#ListPostgresExportResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListPostgresExportResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListPostgresExport": { + "type": "operation", + "input": { + "target": "com.render.api#ListPostgresExportRequest" + }, + "output": { + "target": "com.render.api#ListPostgresExportResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/postgres/{postgresId}/export", + "code": 200 + }, + "smithy.api#documentation": "List Postgres exports\n\nList [exports](https://render.com/docs/postgresql-backups#logical-backups) for a Postgres instance by ID. Returns a URL to download the export." + } + }, + "com.render.api#CreatePostgresExportRequest": { + "type": "structure", + "members": { + "postgresId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#CreatePostgresExport": { + "type": "operation", + "input": { + "target": "com.render.api#CreatePostgresExportRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/postgres/{postgresId}/export", + "code": 200 + }, + "smithy.api#documentation": "Create Postgres export\n\nCreate an [export](https://render.com/docs/postgresql-backups#logical-backups) of a Postgres instance by ID." + } + }, + "com.render.api#ListPostgresUsersRequest": { + "type": "structure", + "members": { + "postgresId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#ListPostgresUsersResponseBodyItem": { + "type": "structure", + "members": { + "username": { + "target": "smithy.api#String" + }, + "default": { + "target": "smithy.api#Boolean" + }, + "createdAt": { + "target": "smithy.api#String" + }, + "openConnections": { + "target": "smithy.api#Integer" + } + }, + "traits": {} + }, + "com.render.api#ListPostgresUsersResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#ListPostgresUsersResponseBodyItem" + }, + "traits": {} + }, + "com.render.api#ListPostgresUsersResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListPostgresUsersResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListPostgresUsers": { + "type": "operation", + "input": { + "target": "com.render.api#ListPostgresUsersRequest" + }, + "output": { + "target": "com.render.api#ListPostgresUsersResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/postgres/{postgresId}/credentials", + "code": 200 + }, + "smithy.api#documentation": "List PostgreSQL Users\n\nList PostgreSQL users for the Render Postgres instance with the provided ID." + } + }, + "com.render.api#CreatePostgresUserRequest": { + "type": "structure", + "members": { + "postgresId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "username": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Name of the new user.", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#CreatePostgresUser": { + "type": "operation", + "input": { + "target": "com.render.api#CreatePostgresUserRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/postgres/{postgresId}/credentials", + "code": 200 + }, + "smithy.api#documentation": "Create PostgreSQL User\n\nCreate a new PostgreSQL user for the Render Postgres instance with the provided ID. This becomes the database's new \"default\" user." + } + }, + "com.render.api#DeletePostgresUserRequest": { + "type": "structure", + "members": { + "postgresId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "username": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeletePostgresUser": { + "type": "operation", + "input": { + "target": "com.render.api#DeletePostgresUserRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/postgres/{postgresId}/credentials/{username}", + "code": 200 + }, + "smithy.api#documentation": "Delete PostgreSQL User\n\nDelete a PostgreSQL user from the Render Postgres instance with the provided ID." + } + }, + "com.render.api#ListPostgresProcessesRequest": { + "type": "structure", + "members": { + "postgresId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#ListPostgresProcessesResponseProcessesItem": { + "type": "structure", + "members": { + "pid": { + "target": "smithy.api#Integer" + }, + "databaseName": { + "target": "smithy.api#String" + }, + "username": { + "target": "smithy.api#String" + }, + "applicationName": { + "target": "smithy.api#String" + }, + "clientAddr": { + "target": "smithy.api#String" + }, + "backendStart": { + "target": "smithy.api#String" + }, + "queryStart": { + "target": "smithy.api#String" + }, + "state": { + "target": "smithy.api#String" + }, + "waitEvent": { + "target": "smithy.api#String" + }, + "waitEventType": { + "target": "smithy.api#String" + }, + "query": { + "target": "smithy.api#String" + }, + "duration": { + "target": "smithy.api#Double", + "traits": { + "smithy.api#documentation": "Duration of the query, in seconds." + } + }, + "isLeader": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#documentation": "Whether this process is running against the primary instance of a highly available database." + } + } + }, + "traits": { + "smithy.api#documentation": "A single live process from pg_stat_activity." + } + }, + "com.render.api#ListPostgresProcessesResponseProcessesList": { + "type": "list", + "member": { + "target": "com.render.api#ListPostgresProcessesResponseProcessesItem" + }, + "traits": {} + }, + "com.render.api#ListPostgresProcessesResponse": { + "type": "structure", + "members": { + "processes": { + "target": "com.render.api#ListPostgresProcessesResponseProcessesList", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListPostgresProcesses": { + "type": "operation", + "input": { + "target": "com.render.api#ListPostgresProcessesRequest" + }, + "output": { + "target": "com.render.api#ListPostgresProcessesResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/postgres/{postgresId}/query/processes", + "code": 200 + }, + "smithy.api#documentation": "List live queries\n\nList currently running queries (from `pg_stat_activity`) on a Postgres instance by ID." + } + }, + "com.render.api#ListPostgresTopQueriesRequest": { + "type": "structure", + "members": { + "postgresId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#ListPostgresTopQueriesResponseTopQueriesItem": { + "type": "structure", + "members": { + "queryId": { + "target": "smithy.api#String" + }, + "query": { + "target": "smithy.api#String" + }, + "calls": { + "target": "smithy.api#Integer" + }, + "totalTimeMs": { + "target": "smithy.api#Double" + }, + "minTimeMs": { + "target": "smithy.api#Double" + }, + "maxTimeMs": { + "target": "smithy.api#Double" + }, + "meanTimeMs": { + "target": "smithy.api#Double" + }, + "stddevTimeMs": { + "target": "smithy.api#Double" + }, + "rows": { + "target": "smithy.api#Integer" + }, + "sharedBlocksHit": { + "target": "smithy.api#Integer" + }, + "sharedBlocksRead": { + "target": "smithy.api#Integer" + }, + "sharedBlocksDirtied": { + "target": "smithy.api#Integer" + }, + "sharedBlocksWritten": { + "target": "smithy.api#Integer" + }, + "localBlocksHit": { + "target": "smithy.api#Integer" + }, + "localBlocksRead": { + "target": "smithy.api#Integer" + }, + "localBlocksDirtied": { + "target": "smithy.api#Integer" + }, + "localBlocksWritten": { + "target": "smithy.api#Integer" + }, + "tempBlocksRead": { + "target": "smithy.api#Integer" + }, + "tempBlocksWritten": { + "target": "smithy.api#Integer" + } + }, + "traits": { + "smithy.api#documentation": "A single query from pg_stat_statements." + } + }, + "com.render.api#ListPostgresTopQueriesResponseTopQueriesList": { + "type": "list", + "member": { + "target": "com.render.api#ListPostgresTopQueriesResponseTopQueriesItem" + }, + "traits": {} + }, + "com.render.api#ListPostgresTopQueriesResponse": { + "type": "structure", + "members": { + "topQueries": { + "target": "com.render.api#ListPostgresTopQueriesResponseTopQueriesList", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListPostgresTopQueries": { + "type": "operation", + "input": { + "target": "com.render.api#ListPostgresTopQueriesRequest" + }, + "output": { + "target": "com.render.api#ListPostgresTopQueriesResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/postgres/{postgresId}/query/top-queries", + "code": 200 + }, + "smithy.api#documentation": "List top queries\n\nList the top 50 queries by total execution time (from `pg_stat_statements`) on a Postgres instance by ID." + } + }, + "com.render.api#ListPostgresSizesRequest": { + "type": "structure", + "members": { + "postgresId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#ListPostgresSizesResponseSizesItem": { + "type": "structure", + "members": { + "Database": { + "target": "smithy.api#String" + }, + "Schema": { + "target": "smithy.api#String" + }, + "Table": { + "target": "smithy.api#String" + }, + "Index": { + "target": "smithy.api#String" + }, + "Bytes": { + "target": "smithy.api#Integer" + } + }, + "traits": { + "smithy.api#documentation": "The size of an index, table, or database." + } + }, + "com.render.api#ListPostgresSizesResponseSizesList": { + "type": "list", + "member": { + "target": "com.render.api#ListPostgresSizesResponseSizesItem" + }, + "traits": {} + }, + "com.render.api#ListPostgresSizesResponse": { + "type": "structure", + "members": { + "sizes": { + "target": "com.render.api#ListPostgresSizesResponseSizesList", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListPostgresSizes": { + "type": "operation", + "input": { + "target": "com.render.api#ListPostgresSizesRequest" + }, + "output": { + "target": "com.render.api#ListPostgresSizesResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/postgres/{postgresId}/query/sizes", + "code": 200 + }, + "smithy.api#documentation": "List database, table, and index sizes\n\nList the sizes of databases, tables, and indexes on a Postgres instance by ID." + } + }, + "com.render.api#ListPostgresTableScansRequest": { + "type": "structure", + "members": { + "postgresId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#ListPostgresTableScansResponseTableScansItem": { + "type": "structure", + "members": { + "Database": { + "target": "smithy.api#String" + }, + "Schema": { + "target": "smithy.api#String" + }, + "Table": { + "target": "smithy.api#String" + }, + "Scans": { + "target": "smithy.api#Integer" + } + }, + "traits": { + "smithy.api#documentation": "The number of sequential scans performed against a table." + } + }, + "com.render.api#ListPostgresTableScansResponseTableScansList": { + "type": "list", + "member": { + "target": "com.render.api#ListPostgresTableScansResponseTableScansItem" + }, + "traits": {} + }, + "com.render.api#ListPostgresTableScansResponse": { + "type": "structure", + "members": { + "tableScans": { + "target": "com.render.api#ListPostgresTableScansResponseTableScansList", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListPostgresTableScans": { + "type": "operation", + "input": { + "target": "com.render.api#ListPostgresTableScansRequest" + }, + "output": { + "target": "com.render.api#ListPostgresTableScansResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/postgres/{postgresId}/query/table-scans", + "code": 200 + }, + "smithy.api#documentation": "List table scans\n\nList the number of sequential scans performed against each table on a Postgres instance by ID." + } + }, + "com.render.api#ListProjectsRequestNameList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListProjectsRequestOwnerIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListProjectsRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.render.api#ListProjectsRequestNameList", + "traits": { + "smithy.api#httpQuery": "name", + "smithy.api#documentation": "Filter by name" + } + }, + "createdBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "createdBefore", + "smithy.api#documentation": "Filter for resources created before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "createdAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "createdAfter", + "smithy.api#documentation": "Filter for resources created after a certain time (specified as an ISO 8601 timestamp)" + } + }, + "updatedBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "updatedBefore", + "smithy.api#documentation": "Filter for resources updated before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "updatedAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "updatedAfter", + "smithy.api#documentation": "Filter for resources updated after a certain time (specified as an ISO 8601 timestamp)" + } + }, + "ownerId": { + "target": "com.render.api#ListProjectsRequestOwnerIdList", + "traits": { + "smithy.api#httpQuery": "ownerId", + "smithy.api#documentation": "The ID of the workspaces to return resources for" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#ProjectWithCursor": { + "type": "structure", + "members": { + "project": { + "target": "com.render.api#Project", + "traits": { + "smithy.api#required": {} + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Project": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the project", + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The name of the project", + "smithy.api#required": {} + } + }, + "owner": { + "target": "com.render.api#Owner", + "traits": { + "smithy.api#required": {} + } + }, + "environmentIds": { + "target": "com.render.api#ProjectEnvironmentIdsList", + "traits": { + "smithy.api#documentation": "The environments associated with the project", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "A project is a collection of environments" + } + }, + "com.render.api#ProjectEnvironmentIdsList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": { + "smithy.api#documentation": "The environments associated with the project" + } + }, + "com.render.api#ListProjectsResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#ProjectWithCursor" + }, + "traits": {} + }, + "com.render.api#ListProjectsResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListProjectsResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListProjects": { + "type": "operation", + "input": { + "target": "com.render.api#ListProjectsRequest" + }, + "output": { + "target": "com.render.api#ListProjectsResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/projects", + "code": 200 + }, + "smithy.api#documentation": "List projects\n\nList projects matching the provided filters. If no filters are provided, all projects are returned." + } + }, + "com.render.api#ProjectPOSTEnvironmentInput": { + "type": "structure", + "members": { + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "protectedStatus": { + "target": "com.render.api#ProtectedStatus" + }, + "networkIsolationEnabled": { + "target": "smithy.api#Boolean" + }, + "ipAllowList": { + "target": "com.render.api#ProjectPOSTEnvironmentInputIpAllowListList" + } + }, + "traits": {} + }, + "com.render.api#ProtectedStatus": { + "type": "enum", + "members": { + "UNPROTECTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "unprotected" + } + }, + "PROTECTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "protected" + } + } + }, + "traits": { + "smithy.api#documentation": "Indicates whether an environment is `unprotected` or `protected`. Only admin users can perform destructive actions in `protected` environments." + } + }, + "com.render.api#ProjectPOSTEnvironmentInputIpAllowListList": { + "type": "list", + "member": { + "target": "com.render.api#CidrBlockAndDescription" + }, + "traits": {} + }, + "com.render.api#CreateProjectRequestEnvironmentsList": { + "type": "list", + "member": { + "target": "com.render.api#ProjectPOSTEnvironmentInput" + }, + "traits": { + "smithy.api#documentation": "The environments to create when creating the project" + } + }, + "com.render.api#CreateProjectRequest": { + "type": "structure", + "members": { + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The name of the project", + "smithy.api#required": {} + } + }, + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the owner that the project belongs to", + "smithy.api#required": {} + } + }, + "environments": { + "target": "com.render.api#CreateProjectRequestEnvironmentsList", + "traits": { + "smithy.api#documentation": "The environments to create when creating the project", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#CreateProject": { + "type": "operation", + "input": { + "target": "com.render.api#CreateProjectRequest" + }, + "output": { + "target": "com.render.api#Project" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/projects", + "code": 200 + }, + "smithy.api#documentation": "Create project\n\nCreate a new project." + } + }, + "com.render.api#RetrieveProjectRequest": { + "type": "structure", + "members": { + "projectId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrieveProject": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveProjectRequest" + }, + "output": { + "target": "com.render.api#Project" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/projects/{projectId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve Project\n\nRetrieve the project with the provided ID." + } + }, + "com.render.api#UpdateProjectRequest": { + "type": "structure", + "members": { + "projectId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UpdateProject": { + "type": "operation", + "input": { + "target": "com.render.api#UpdateProjectRequest" + }, + "output": { + "target": "com.render.api#Project" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "PATCH", + "uri": "/projects/{projectId}", + "code": 200 + }, + "smithy.api#documentation": "Update project\n\nUpdate the details of a project.\n\nTo update the details of a particular _environment_ in the project, instead use the [Update environment](https://api-docs.render.com/reference/update-environment) endpoint." + } + }, + "com.render.api#DeleteProjectRequest": { + "type": "structure", + "members": { + "projectId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeleteProject": { + "type": "operation", + "input": { + "target": "com.render.api#DeleteProjectRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/projects/{projectId}", + "code": 200 + }, + "smithy.api#documentation": "Delete project\n\nDelete the project with the provided ID.\n\nRequires _all_ of the project's environments to be empty (i.e., they must contain no services or other resources). Otherwise, deletion fails with a `409` response.\n\nTo delete a non-empty project, do one of the following:\n- First move or delete all contained services and other resources.\n- Delete the project in the [Render Dashboard](https://dashboard.render.com)." + } + }, + "com.render.api#ListEnvironmentsRequestNameList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListEnvironmentsRequestProjectIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListEnvironmentsRequestOwnerIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListEnvironmentsRequestEnvironmentIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListEnvironmentsRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.render.api#ListEnvironmentsRequestNameList", + "traits": { + "smithy.api#httpQuery": "name", + "smithy.api#documentation": "Filter by name" + } + }, + "projectId": { + "target": "com.render.api#ListEnvironmentsRequestProjectIdList", + "traits": { + "smithy.api#httpQuery": "projectId", + "smithy.api#required": {}, + "smithy.api#documentation": "Filter for resources that belong to a project" + } + }, + "createdBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "createdBefore", + "smithy.api#documentation": "Filter for resources created before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "createdAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "createdAfter", + "smithy.api#documentation": "Filter for resources created after a certain time (specified as an ISO 8601 timestamp)" + } + }, + "updatedBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "updatedBefore", + "smithy.api#documentation": "Filter for resources updated before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "updatedAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "updatedAfter", + "smithy.api#documentation": "Filter for resources updated after a certain time (specified as an ISO 8601 timestamp)" + } + }, + "ownerId": { + "target": "com.render.api#ListEnvironmentsRequestOwnerIdList", + "traits": { + "smithy.api#httpQuery": "ownerId", + "smithy.api#documentation": "The ID of the workspaces to return resources for" + } + }, + "environmentId": { + "target": "com.render.api#ListEnvironmentsRequestEnvironmentIdList", + "traits": { + "smithy.api#httpQuery": "environmentId", + "smithy.api#documentation": "Filter for resources that belong to an environment" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#EnvironmentWithCursor": { + "type": "structure", + "members": { + "environment": { + "target": "com.render.api#Environment", + "traits": { + "smithy.api#required": {} + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "An environment with a cursor" + } + }, + "com.render.api#Environment": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "projectId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "databasesIds": { + "target": "com.render.api#EnvironmentDatabasesIdsList", + "traits": { + "smithy.api#required": {} + } + }, + "ipAllowList": { + "target": "com.render.api#EnvironmentIpAllowListList" + }, + "redisIds": { + "target": "com.render.api#EnvironmentRedisIdsList", + "traits": { + "smithy.api#required": {} + } + }, + "serviceIds": { + "target": "com.render.api#EnvironmentServiceIdsList", + "traits": { + "smithy.api#required": {} + } + }, + "envGroupIds": { + "target": "com.render.api#EnvironmentEnvGroupIdsList", + "traits": { + "smithy.api#required": {} + } + }, + "protectedStatus": { + "target": "com.render.api#ProtectedStatus", + "traits": { + "smithy.api#required": {} + } + }, + "networkIsolationEnabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#EnvironmentDatabasesIdsList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#EnvironmentIpAllowListList": { + "type": "list", + "member": { + "target": "com.render.api#CidrBlockAndDescription" + }, + "traits": {} + }, + "com.render.api#EnvironmentRedisIdsList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#EnvironmentServiceIdsList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#EnvironmentEnvGroupIdsList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListEnvironmentsResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#EnvironmentWithCursor" + }, + "traits": {} + }, + "com.render.api#ListEnvironmentsResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListEnvironmentsResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListEnvironments": { + "type": "operation", + "input": { + "target": "com.render.api#ListEnvironmentsRequest" + }, + "output": { + "target": "com.render.api#ListEnvironmentsResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/environments", + "code": 200 + }, + "smithy.api#documentation": "List environments\n\nList a particular project's environments matching the provided filters. If no filters are provided, all environments are returned." + } + }, + "com.render.api#CreateEnvironmentRequestIpAllowListList": { + "type": "list", + "member": { + "target": "com.render.api#CidrBlockAndDescription" + }, + "traits": {} + }, + "com.render.api#CreateEnvironmentRequest": { + "type": "structure", + "members": { + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "projectId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "protectedStatus": { + "target": "com.render.api#ProtectedStatus" + }, + "networkIsolationEnabled": { + "target": "smithy.api#Boolean" + }, + "ipAllowList": { + "target": "com.render.api#CreateEnvironmentRequestIpAllowListList" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#CreateEnvironment": { + "type": "operation", + "input": { + "target": "com.render.api#CreateEnvironmentRequest" + }, + "output": { + "target": "com.render.api#Environment" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/environments", + "code": 200 + }, + "smithy.api#documentation": "Create environment\n\nCreate a new environment belonging to the project with the provided ID." + } + }, + "com.render.api#RetrieveEnvironmentRequest": { + "type": "structure", + "members": { + "environmentId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrieveEnvironment": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveEnvironmentRequest" + }, + "output": { + "target": "com.render.api#Environment" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/environments/{environmentId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve environment\n\nRetrieve the environment with the provided ID." + } + }, + "com.render.api#UpdateEnvironmentRequestIpAllowListList": { + "type": "list", + "member": { + "target": "com.render.api#CidrBlockAndDescription" + }, + "traits": {} + }, + "com.render.api#UpdateEnvironmentRequest": { + "type": "structure", + "members": { + "environmentId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String" + }, + "networkIsolationEnabled": { + "target": "smithy.api#Boolean" + }, + "protectedStatus": { + "target": "com.render.api#ProtectedStatus" + }, + "ipAllowList": { + "target": "com.render.api#UpdateEnvironmentRequestIpAllowListList" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UpdateEnvironment": { + "type": "operation", + "input": { + "target": "com.render.api#UpdateEnvironmentRequest" + }, + "output": { + "target": "com.render.api#Environment" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "PATCH", + "uri": "/environments/{environmentId}", + "code": 200 + }, + "smithy.api#documentation": "Update environment\n\nUpdate the details of the environment with the provided ID." + } + }, + "com.render.api#DeleteEnvironmentRequest": { + "type": "structure", + "members": { + "environmentId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeleteEnvironment": { + "type": "operation", + "input": { + "target": "com.render.api#DeleteEnvironmentRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/environments/{environmentId}", + "code": 200 + }, + "smithy.api#documentation": "Delete environment\n\nDelete the environment with the provided ID.\n\nRequires the environment to be empty (i.e., it must contain no services or other resources). Otherwise, deletion fails with a `409` response.\n\nTo delete a non-empty environment, do one of the following:\n- First move or delete all contained services and other resources.\n- Delete the environment in the [Render Dashboard](https://dashboard.render.com)." + } + }, + "com.render.api#AddResourcesToEnvironmentRequestResourceIdsList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#AddResourcesToEnvironmentRequest": { + "type": "structure", + "members": { + "environmentId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "resourceIds": { + "target": "com.render.api#AddResourcesToEnvironmentRequestResourceIdsList", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#AddResourcesToEnvironment": { + "type": "operation", + "input": { + "target": "com.render.api#AddResourcesToEnvironmentRequest" + }, + "output": { + "target": "com.render.api#Environment" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/environments/{environmentId}/resources", + "code": 200 + }, + "smithy.api#documentation": "Add resources to environment\n\nAdd resources to the environment with the provided ID." + } + }, + "com.render.api#RemoveResourcesFromEnvironmentRequestResourceIdsList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#RemoveResourcesFromEnvironmentRequest": { + "type": "structure", + "members": { + "environmentId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "resourceIds": { + "target": "com.render.api#RemoveResourcesFromEnvironmentRequestResourceIdsList", + "traits": { + "smithy.api#httpQuery": "resourceIds", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RemoveResourcesFromEnvironment": { + "type": "operation", + "input": { + "target": "com.render.api#RemoveResourcesFromEnvironmentRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/environments/{environmentId}/resources", + "code": 200 + }, + "smithy.api#documentation": "Remove resources from environment\n\nRemove resources from the environment with the provided ID." + } + }, + "com.render.api#ListEnvGroupsRequestNameList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListEnvGroupsRequestOwnerIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListEnvGroupsRequestEnvironmentIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListEnvGroupsRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.render.api#ListEnvGroupsRequestNameList", + "traits": { + "smithy.api#httpQuery": "name", + "smithy.api#documentation": "Filter by name" + } + }, + "createdBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "createdBefore", + "smithy.api#documentation": "Filter for resources created before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "createdAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "createdAfter", + "smithy.api#documentation": "Filter for resources created after a certain time (specified as an ISO 8601 timestamp)" + } + }, + "updatedBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "updatedBefore", + "smithy.api#documentation": "Filter for resources updated before a certain time (specified as an ISO 8601 timestamp)" + } + }, + "updatedAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "updatedAfter", + "smithy.api#documentation": "Filter for resources updated after a certain time (specified as an ISO 8601 timestamp)" + } + }, + "ownerId": { + "target": "com.render.api#ListEnvGroupsRequestOwnerIdList", + "traits": { + "smithy.api#httpQuery": "ownerId", + "smithy.api#documentation": "The ID of the workspaces to return resources for" + } + }, + "environmentId": { + "target": "com.render.api#ListEnvGroupsRequestEnvironmentIdList", + "traits": { + "smithy.api#httpQuery": "environmentId", + "smithy.api#documentation": "Filter for resources that belong to an environment" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#EnvGroupMeta": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "serviceLinks": { + "target": "com.render.api#EnvGroupMetaServiceLinksList", + "traits": { + "smithy.api#documentation": "List of serviceIds linked to the envGroup", + "smithy.api#required": {} + } + }, + "environmentId": { + "target": "smithy.api#String" + } + }, + "traits": {} + }, + "com.render.api#EnvGroupLink": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "type": { + "target": "com.render.api#ServiceTypeShort", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#ServiceTypeShort": { + "type": "enum", + "members": { + "STATIC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "static" + } + }, + "WEB": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "web" + } + }, + "PSERV": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pserv" + } + }, + "WORKER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "worker" + } + }, + "CRON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cron" + } + } + }, + "traits": {} + }, + "com.render.api#EnvGroupMetaServiceLinksList": { + "type": "list", + "member": { + "target": "com.render.api#EnvGroupLink" + }, + "traits": { + "smithy.api#documentation": "List of serviceIds linked to the envGroup" + } + }, + "com.render.api#ListEnvGroupsResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#EnvGroupMeta" + }, + "traits": {} + }, + "com.render.api#ListEnvGroupsResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListEnvGroupsResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListEnvGroups": { + "type": "operation", + "input": { + "target": "com.render.api#ListEnvGroupsRequest" + }, + "output": { + "target": "com.render.api#ListEnvGroupsResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/env-groups", + "code": 200 + }, + "smithy.api#documentation": "List environment groups\n\nList environment groups matching the provided filters. If no filters are provided, all environment groups are returned." + } + }, + "com.render.api#CreateEnvGroupRequestSecretFilesList": { + "type": "list", + "member": { + "target": "com.render.api#Items" + }, + "traits": {} + }, + "com.render.api#CreateEnvGroupRequestServiceIdsList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#CreateEnvGroupRequest": { + "type": "structure", + "members": { + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "envVars": { + "target": "com.render.api#Schema6", + "traits": { + "smithy.api#required": {} + } + }, + "secretFiles": { + "target": "com.render.api#CreateEnvGroupRequestSecretFilesList" + }, + "serviceIds": { + "target": "com.render.api#CreateEnvGroupRequestServiceIdsList" + }, + "environmentId": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#CreateEnvGroupResponseServiceLinksList": { + "type": "list", + "member": { + "target": "com.render.api#EnvGroupLink" + }, + "traits": { + "smithy.api#documentation": "List of serviceIds linked to the envGroup" + } + }, + "com.render.api#CreateEnvGroupResponseEnvVarsList": { + "type": "list", + "member": { + "target": "com.render.api#EnvVar" + }, + "traits": {} + }, + "com.render.api#CreateEnvGroupResponseSecretFilesList": { + "type": "list", + "member": { + "target": "com.render.api#SecretFile" + }, + "traits": {} + }, + "com.render.api#CreateEnvGroupResponse": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "serviceLinks": { + "target": "com.render.api#CreateEnvGroupResponseServiceLinksList", + "traits": { + "smithy.api#documentation": "List of serviceIds linked to the envGroup", + "smithy.api#required": {} + } + }, + "environmentId": { + "target": "smithy.api#String" + }, + "envVars": { + "target": "com.render.api#CreateEnvGroupResponseEnvVarsList", + "traits": { + "smithy.api#required": {} + } + }, + "secretFiles": { + "target": "com.render.api#CreateEnvGroupResponseSecretFilesList", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#CreateEnvGroup": { + "type": "operation", + "input": { + "target": "com.render.api#CreateEnvGroupRequest" + }, + "output": { + "target": "com.render.api#CreateEnvGroupResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/env-groups", + "code": 200 + }, + "smithy.api#documentation": "Create environment group\n\nCreate a new environment group." + } + }, + "com.render.api#RetrieveEnvGroupRequest": { + "type": "structure", + "members": { + "envGroupId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "Filter for resources that belong to an environment group" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrieveEnvGroupResponseServiceLinksList": { + "type": "list", + "member": { + "target": "com.render.api#EnvGroupLink" + }, + "traits": { + "smithy.api#documentation": "List of serviceIds linked to the envGroup" + } + }, + "com.render.api#RetrieveEnvGroupResponseEnvVarsList": { + "type": "list", + "member": { + "target": "com.render.api#EnvVar" + }, + "traits": {} + }, + "com.render.api#RetrieveEnvGroupResponseSecretFilesList": { + "type": "list", + "member": { + "target": "com.render.api#SecretFile" + }, + "traits": {} + }, + "com.render.api#RetrieveEnvGroupResponse": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "serviceLinks": { + "target": "com.render.api#RetrieveEnvGroupResponseServiceLinksList", + "traits": { + "smithy.api#documentation": "List of serviceIds linked to the envGroup", + "smithy.api#required": {} + } + }, + "environmentId": { + "target": "smithy.api#String" + }, + "envVars": { + "target": "com.render.api#RetrieveEnvGroupResponseEnvVarsList", + "traits": { + "smithy.api#required": {} + } + }, + "secretFiles": { + "target": "com.render.api#RetrieveEnvGroupResponseSecretFilesList", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#RetrieveEnvGroup": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveEnvGroupRequest" + }, + "output": { + "target": "com.render.api#RetrieveEnvGroupResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/env-groups/{envGroupId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve environment group\n\nRetrieve an environment group by ID." + } + }, + "com.render.api#UpdateEnvGroupRequest": { + "type": "structure", + "members": { + "envGroupId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UpdateEnvGroupResponseServiceLinksList": { + "type": "list", + "member": { + "target": "com.render.api#EnvGroupLink" + }, + "traits": { + "smithy.api#documentation": "List of serviceIds linked to the envGroup" + } + }, + "com.render.api#UpdateEnvGroupResponseEnvVarsList": { + "type": "list", + "member": { + "target": "com.render.api#EnvVar" + }, + "traits": {} + }, + "com.render.api#UpdateEnvGroupResponseSecretFilesList": { + "type": "list", + "member": { + "target": "com.render.api#SecretFile" + }, + "traits": {} + }, + "com.render.api#UpdateEnvGroupResponse": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "serviceLinks": { + "target": "com.render.api#UpdateEnvGroupResponseServiceLinksList", + "traits": { + "smithy.api#documentation": "List of serviceIds linked to the envGroup", + "smithy.api#required": {} + } + }, + "environmentId": { + "target": "smithy.api#String" + }, + "envVars": { + "target": "com.render.api#UpdateEnvGroupResponseEnvVarsList", + "traits": { + "smithy.api#required": {} + } + }, + "secretFiles": { + "target": "com.render.api#UpdateEnvGroupResponseSecretFilesList", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#UpdateEnvGroup": { + "type": "operation", + "input": { + "target": "com.render.api#UpdateEnvGroupRequest" + }, + "output": { + "target": "com.render.api#UpdateEnvGroupResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "PATCH", + "uri": "/env-groups/{envGroupId}", + "code": 200 + }, + "smithy.api#documentation": "Update environment group\n\nUpdate the attributes of an environment group." + } + }, + "com.render.api#DeleteEnvGroupRequest": { + "type": "structure", + "members": { + "envGroupId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeleteEnvGroup": { + "type": "operation", + "input": { + "target": "com.render.api#DeleteEnvGroupRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/env-groups/{envGroupId}", + "code": 200 + }, + "smithy.api#documentation": "Delete environment group\n\nDelete the environment group with the provided ID, including all environment variables and secret files it contains." + } + }, + "com.render.api#LinkServiceToEnvGroupRequest": { + "type": "structure", + "members": { + "envGroupId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "Filter for resources that belong to an environment group" + } + }, + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the service" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#LinkServiceToEnvGroupResponseServiceLinksList": { + "type": "list", + "member": { + "target": "com.render.api#EnvGroupLink" + }, + "traits": { + "smithy.api#documentation": "List of serviceIds linked to the envGroup" + } + }, + "com.render.api#LinkServiceToEnvGroupResponseEnvVarsList": { + "type": "list", + "member": { + "target": "com.render.api#EnvVar" + }, + "traits": {} + }, + "com.render.api#LinkServiceToEnvGroupResponseSecretFilesList": { + "type": "list", + "member": { + "target": "com.render.api#SecretFile" + }, + "traits": {} + }, + "com.render.api#LinkServiceToEnvGroupResponse": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "serviceLinks": { + "target": "com.render.api#LinkServiceToEnvGroupResponseServiceLinksList", + "traits": { + "smithy.api#documentation": "List of serviceIds linked to the envGroup", + "smithy.api#required": {} + } + }, + "environmentId": { + "target": "smithy.api#String" + }, + "envVars": { + "target": "com.render.api#LinkServiceToEnvGroupResponseEnvVarsList", + "traits": { + "smithy.api#required": {} + } + }, + "secretFiles": { + "target": "com.render.api#LinkServiceToEnvGroupResponseSecretFilesList", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#LinkServiceToEnvGroup": { + "type": "operation", + "input": { + "target": "com.render.api#LinkServiceToEnvGroupRequest" + }, + "output": { + "target": "com.render.api#LinkServiceToEnvGroupResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/env-groups/{envGroupId}/services/{serviceId}", + "code": 200 + }, + "smithy.api#documentation": "Link service\n\nLink a particular service to a particular environment group.\n\nThe linked service will have access to the environment variables and secret files in the group." + } + }, + "com.render.api#UnlinkServiceFromEnvGroupRequest": { + "type": "structure", + "members": { + "envGroupId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "serviceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UnlinkServiceFromEnvGroup": { + "type": "operation", + "input": { + "target": "com.render.api#UnlinkServiceFromEnvGroupRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/env-groups/{envGroupId}/services/{serviceId}", + "code": 200 + }, + "smithy.api#documentation": "Unlink service\n\nUnlink a particular service from a particular environment group.\n\nThe service will lose access to the environment variables and secret files in the group." + } + }, + "com.render.api#RetrieveEnvGroupEnvVarRequest": { + "type": "structure", + "members": { + "envGroupId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "Filter for resources that belong to an environment group" + } + }, + "envVarKey": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The name of the environment variable" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrieveEnvGroupEnvVar": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveEnvGroupEnvVarRequest" + }, + "output": { + "target": "com.render.api#EnvVar" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/env-groups/{envGroupId}/env-vars/{envVarKey}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve environment variable\n\nRetrieve a particular environment variable in a particular environment group." + } + }, + "com.render.api#UpdateEnvGroupEnvVarRequest": { + "type": "structure", + "members": { + "envGroupId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "Filter for resources that belong to an environment group" + } + }, + "envVarKey": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The name of the environment variable" + } + }, + "body": { + "target": "com.render.api#AddUpdateEnvVarInput", + "traits": { + "smithy.api#httpPayload": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UpdateEnvGroupEnvVarResponseServiceLinksList": { + "type": "list", + "member": { + "target": "com.render.api#EnvGroupLink" + }, + "traits": { + "smithy.api#documentation": "List of serviceIds linked to the envGroup" + } + }, + "com.render.api#UpdateEnvGroupEnvVarResponseEnvVarsList": { + "type": "list", + "member": { + "target": "com.render.api#EnvVar" + }, + "traits": {} + }, + "com.render.api#UpdateEnvGroupEnvVarResponseSecretFilesList": { + "type": "list", + "member": { + "target": "com.render.api#SecretFile" + }, + "traits": {} + }, + "com.render.api#UpdateEnvGroupEnvVarResponse": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "serviceLinks": { + "target": "com.render.api#UpdateEnvGroupEnvVarResponseServiceLinksList", + "traits": { + "smithy.api#documentation": "List of serviceIds linked to the envGroup", + "smithy.api#required": {} + } + }, + "environmentId": { + "target": "smithy.api#String" + }, + "envVars": { + "target": "com.render.api#UpdateEnvGroupEnvVarResponseEnvVarsList", + "traits": { + "smithy.api#required": {} + } + }, + "secretFiles": { + "target": "com.render.api#UpdateEnvGroupEnvVarResponseSecretFilesList", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#UpdateEnvGroupEnvVar": { + "type": "operation", + "input": { + "target": "com.render.api#UpdateEnvGroupEnvVarRequest" + }, + "output": { + "target": "com.render.api#UpdateEnvGroupEnvVarResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "PUT", + "uri": "/env-groups/{envGroupId}/env-vars/{envVarKey}", + "code": 200 + }, + "smithy.api#documentation": "Add or update environment variable\n\nAdd or update a particular environment variable in a particular environment group." + } + }, + "com.render.api#DeleteEnvGroupEnvVarRequest": { + "type": "structure", + "members": { + "envGroupId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "envVarKey": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The name of the environment variable" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeleteEnvGroupEnvVar": { + "type": "operation", + "input": { + "target": "com.render.api#DeleteEnvGroupEnvVarRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/env-groups/{envGroupId}/env-vars/{envVarKey}", + "code": 200 + }, + "smithy.api#documentation": "Remove environment variable\n\nRemove a particular environment variable from a particular environment group." + } + }, + "com.render.api#RetrieveEnvGroupSecretFileRequest": { + "type": "structure", + "members": { + "envGroupId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "Filter for resources that belong to an environment group" + } + }, + "envVarKey": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The name of the secret file" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrieveEnvGroupSecretFile": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveEnvGroupSecretFileRequest" + }, + "output": { + "target": "com.render.api#SecretFile" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/env-groups/{envGroupId}/secret-files/{envVarKey}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve secret file\n\nRetrieve a particular secret file in a particular environment group." + } + }, + "com.render.api#UpdateEnvGroupSecretFileRequest": { + "type": "structure", + "members": { + "envGroupId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "envVarKey": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "content": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UpdateEnvGroupSecretFileResponseServiceLinksList": { + "type": "list", + "member": { + "target": "com.render.api#EnvGroupLink" + }, + "traits": { + "smithy.api#documentation": "List of serviceIds linked to the envGroup" + } + }, + "com.render.api#UpdateEnvGroupSecretFileResponseEnvVarsList": { + "type": "list", + "member": { + "target": "com.render.api#EnvVar" + }, + "traits": {} + }, + "com.render.api#UpdateEnvGroupSecretFileResponseSecretFilesList": { + "type": "list", + "member": { + "target": "com.render.api#SecretFile" + }, + "traits": {} + }, + "com.render.api#UpdateEnvGroupSecretFileResponse": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "serviceLinks": { + "target": "com.render.api#UpdateEnvGroupSecretFileResponseServiceLinksList", + "traits": { + "smithy.api#documentation": "List of serviceIds linked to the envGroup", + "smithy.api#required": {} + } + }, + "environmentId": { + "target": "smithy.api#String" + }, + "envVars": { + "target": "com.render.api#UpdateEnvGroupSecretFileResponseEnvVarsList", + "traits": { + "smithy.api#required": {} + } + }, + "secretFiles": { + "target": "com.render.api#UpdateEnvGroupSecretFileResponseSecretFilesList", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#UpdateEnvGroupSecretFile": { + "type": "operation", + "input": { + "target": "com.render.api#UpdateEnvGroupSecretFileRequest" + }, + "output": { + "target": "com.render.api#UpdateEnvGroupSecretFileResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "PUT", + "uri": "/env-groups/{envGroupId}/secret-files/{envVarKey}", + "code": 200 + }, + "smithy.api#documentation": "Add or update secret file\n\nAdd or update a particular secret file in an particular environment group." + } + }, + "com.render.api#DeleteEnvGroupSecretFileRequest": { + "type": "structure", + "members": { + "envGroupId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "Filter for resources that belong to an environment group" + } + }, + "envVarKey": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The name of the secret file" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeleteEnvGroupSecretFile": { + "type": "operation", + "input": { + "target": "com.render.api#DeleteEnvGroupSecretFileRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/env-groups/{envGroupId}/secret-files/{envVarKey}", + "code": 200 + }, + "smithy.api#documentation": "Remove secret file\n\nRemove a particular secret file from a particular environment group." + } + }, + "com.render.api#ListMaintenanceRequestResourceIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListMaintenanceRequestOwnerIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListMaintenanceRequestStateItem": { + "type": "enum", + "members": { + "SCHEDULED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "scheduled" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "in_progress" + } + }, + "USER_FIX_REQUIRED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "user_fix_required" + } + }, + "CANCELLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cancelled" + } + }, + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "succeeded" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + } + }, + "traits": {} + }, + "com.render.api#ListMaintenanceRequestStateList": { + "type": "list", + "member": { + "target": "com.render.api#ListMaintenanceRequestStateItem" + }, + "traits": {} + }, + "com.render.api#ListMaintenanceRequest": { + "type": "structure", + "members": { + "resourceId": { + "target": "com.render.api#ListMaintenanceRequestResourceIdList", + "traits": { + "smithy.api#httpQuery": "resourceId" + } + }, + "ownerId": { + "target": "com.render.api#ListMaintenanceRequestOwnerIdList", + "traits": { + "smithy.api#httpQuery": "ownerId", + "smithy.api#documentation": "The ID of the workspaces to return resources for" + } + }, + "state": { + "target": "com.render.api#ListMaintenanceRequestStateList", + "traits": { + "smithy.api#httpQuery": "state" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#Schema11": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "type": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "scheduledAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "pendingMaintenanceBy": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "If present, the maintenance run cannot be scheduled for later than this date-time." + } + }, + "state": { + "target": "com.render.api#Items4", + "traits": { + "smithy.api#required": {} + } + }, + "resourceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#ListMaintenanceResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#Schema11" + }, + "traits": {} + }, + "com.render.api#ListMaintenanceResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListMaintenanceResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListMaintenance": { + "type": "operation", + "input": { + "target": "com.render.api#ListMaintenanceRequest" + }, + "output": { + "target": "com.render.api#ListMaintenanceResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/maintenance", + "code": 200 + }, + "smithy.api#documentation": "List maintenance runs\n\nList scheduled and/or recent maintenance runs for specified resources." + } + }, + "com.render.api#RetrieveMaintenanceRequest": { + "type": "structure", + "members": { + "maintenanceRunID": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrieveMaintenanceResponse": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "type": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "scheduledAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "pendingMaintenanceBy": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "If present, the maintenance run cannot be scheduled for later than this date-time." + } + }, + "state": { + "target": "com.render.api#Items4", + "traits": { + "smithy.api#required": {} + } + }, + "resourceId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#RetrieveMaintenance": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveMaintenanceRequest" + }, + "output": { + "target": "com.render.api#RetrieveMaintenanceResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/maintenance/{maintenanceRunID}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve maintenance run\n\nRetrieve the maintenance run with the provided ID." + } + }, + "com.render.api#UpdateMaintenanceRequest": { + "type": "structure", + "members": { + "maintenanceRunID": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "scheduledAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The date-time at which the maintenance is scheduled to start. This must be before the pendingMaintenanceBy date-time." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UpdateMaintenance": { + "type": "operation", + "input": { + "target": "com.render.api#UpdateMaintenanceRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "PATCH", + "uri": "/maintenance/{maintenanceRunID}", + "code": 200 + }, + "smithy.api#documentation": "Update maintenance run\n\nUpdate the maintenance run with the provided ID.\n\nUpdates from this endpoint are asynchronous. To check your update's status, use the [Retrieve maintenance run](https://api-docs.render.com/reference/retrieve-maintenance) endpoint." + } + }, + "com.render.api#TriggerMaintenanceRequest": { + "type": "structure", + "members": { + "maintenanceRunID": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#TriggerMaintenance": { + "type": "operation", + "input": { + "target": "com.render.api#TriggerMaintenanceRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/maintenance/{maintenanceRunID}/trigger", + "code": 200 + }, + "smithy.api#documentation": "Trigger maintenance run\n\nTrigger the scheduled maintenance run with the provided ID.\n\nTriggering maintenance is asynchronous. To check whether maintenance has started, use the [Retrieve maintenance run](https://api-docs.render.com/reference/retrieve-maintenance) endpoint.\n\nAs maintenance progresses, the run's `state` will change from `scheduled` to other values, such as `in_progress` and `succeeded`." + } + }, + "com.render.api#ListWebhooksRequestOwnerIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListWebhooksRequest": { + "type": "structure", + "members": { + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "ownerId": { + "target": "com.render.api#ListWebhooksRequestOwnerIdList", + "traits": { + "smithy.api#httpQuery": "ownerId", + "smithy.api#documentation": "The ID of the workspaces to return resources for" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#WebhookWithCursor": { + "type": "structure", + "members": { + "webhook": { + "target": "com.render.api#Schema12", + "traits": { + "smithy.api#required": {} + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Schema12": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "url": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "secret": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {}, + "smithy.api#sensitive": {} + } + }, + "enabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "eventFilter": { + "target": "com.render.api#EventFilter", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#EventFilter": { + "type": "list", + "member": { + "target": "com.render.api#Type" + }, + "traits": { + "smithy.api#documentation": "The event types that will trigger the webhook. An empty list means all event types will trigger the webhook." + } + }, + "com.render.api#Type": { + "type": "enum", + "members": { + "ARTIFACT_FETCH_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "artifact_fetch_failed" + } + }, + "ARTIFACT_SOURCE_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "artifact_source_changed" + } + }, + "AUTOSCALING_CONFIG_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "autoscaling_config_changed" + } + }, + "AUTOSCALING_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "autoscaling_ended" + } + }, + "AUTOSCALING_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "autoscaling_started" + } + }, + "BRANCH_DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "branch_deleted" + } + }, + "BUILD_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "build_ended" + } + }, + "BUILD_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "build_started" + } + }, + "COMMIT_IGNORED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "commit_ignored" + } + }, + "CRON_JOB_RUN_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cron_job_run_ended" + } + }, + "CRON_JOB_RUN_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "cron_job_run_started" + } + }, + "DEPLOY_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deploy_ended" + } + }, + "DEPLOY_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "deploy_started" + } + }, + "DISK_CREATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disk_created" + } + }, + "DISK_UPDATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disk_updated" + } + }, + "DISK_DELETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "disk_deleted" + } + }, + "IMAGE_PULL_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "image_pull_failed" + } + }, + "INSTANCE_COUNT_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "instance_count_changed" + } + }, + "JOB_RUN_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "job_run_ended" + } + }, + "MAINTENANCE_MODE_ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "maintenance_mode_enabled" + } + }, + "MAINTENANCE_MODE_URI_UPDATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "maintenance_mode_uri_updated" + } + }, + "MAINTENANCE_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "maintenance_ended" + } + }, + "MAINTENANCE_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "maintenance_started" + } + }, + "PIPELINE_MINUTES_EXHAUSTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pipeline_minutes_exhausted" + } + }, + "PLAN_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "plan_changed" + } + }, + "PRE_DEPLOY_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pre_deploy_ended" + } + }, + "PRE_DEPLOY_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pre_deploy_started" + } + }, + "SERVER_AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "server_available" + } + }, + "SERVER_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "server_failed" + } + }, + "SERVER_HARDWARE_FAILURE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "server_hardware_failure" + } + }, + "SERVER_RESTARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "server_restarted" + } + }, + "SERVICE_RESUMED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "service_resumed" + } + }, + "SERVICE_SUSPENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "service_suspended" + } + }, + "ZERO_DOWNTIME_REDEPLOY_ENDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "zero_downtime_redeploy_ended" + } + }, + "ZERO_DOWNTIME_REDEPLOY_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "zero_downtime_redeploy_started" + } + }, + "EDGE_CACHE_ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "edge_cache_enabled" + } + }, + "EDGE_CACHE_DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "edge_cache_disabled" + } + }, + "EDGE_CACHE_PURGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "edge_cache_purged" + } + }, + "AUTO_DEPLOY_DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "auto_deploy_disabled" + } + }, + "AUTO_DEPLOY_ENABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "auto_deploy_enabled" + } + }, + "POSTGRES_AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_available" + } + }, + "POSTGRES_BACKUP_COMPLETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_backup_completed" + } + }, + "POSTGRES_BACKUP_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_backup_failed" + } + }, + "POSTGRES_BACKUP_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_backup_started" + } + }, + "POSTGRES_CLUSTER_LEADER_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_cluster_leader_changed" + } + }, + "POSTGRES_CONNECTION_POOL_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_connection_pool_changed" + } + }, + "POSTGRES_CONNECTION_POOL_ENABLED_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_connection_pool_enabled_changed" + } + }, + "POSTGRES_CREATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_created" + } + }, + "POSTGRES_DISK_SIZE_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_disk_size_changed" + } + }, + "POSTGRES_DISK_AUTOSCALING_ENABLED_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_disk_autoscaling_enabled_changed" + } + }, + "POSTGRES_HA_STATUS_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_ha_status_changed" + } + }, + "POSTGRES_RESTARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_restarted" + } + }, + "POSTGRES_UNAVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_unavailable" + } + }, + "POSTGRES_UPGRADE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_upgrade_failed" + } + }, + "POSTGRES_UPGRADE_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_upgrade_started" + } + }, + "POSTGRES_UPGRADE_SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_upgrade_succeeded" + } + }, + "POSTGRES_RESTORE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_restore_failed" + } + }, + "POSTGRES_RESTORE_SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_restore_succeeded" + } + }, + "POSTGRES_READ_REPLICAS_CHANGED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_read_replicas_changed" + } + }, + "POSTGRES_PITR_CHECKPOINT_STARTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_pitr_checkpoint_started" + } + }, + "POSTGRES_PITR_CHECKPOINT_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_pitr_checkpoint_failed" + } + }, + "POSTGRES_PITR_CHECKPOINT_COMPLETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_pitr_checkpoint_completed" + } + }, + "POSTGRES_READ_REPLICA_STALE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_read_replica_stale" + } + }, + "POSTGRES_WAL_ARCHIVE_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "postgres_wal_archive_failed" + } + }, + "KEY_VALUE_AVAILABLE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "key_value_available" + } + }, + "KEY_VALUE_CONFIG_RESTART": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "key_value_config_restart" + } + }, + "KEY_VALUE_UNHEALTHY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "key_value_unhealthy" + } + } + }, + "traits": {} + }, + "com.render.api#ListWebhooksResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#WebhookWithCursor" + }, + "traits": {} + }, + "com.render.api#ListWebhooksResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListWebhooksResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListWebhooks": { + "type": "operation", + "input": { + "target": "com.render.api#ListWebhooksRequest" + }, + "output": { + "target": "com.render.api#ListWebhooksResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/webhooks", + "code": 200 + }, + "smithy.api#documentation": "List webhooks\n\nList webhooks" + } + }, + "com.render.api#CreateWebhookRequestEventFilterList": { + "type": "list", + "member": { + "target": "com.render.api#Type" + }, + "traits": { + "smithy.api#documentation": "The event types that will trigger the webhook. An empty list means all event types will trigger the webhook." + } + }, + "com.render.api#CreateWebhookRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the owner (team or personal user) whose resources should be returned", + "smithy.api#required": {} + } + }, + "url": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "enabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "eventFilter": { + "target": "com.render.api#CreateWebhookRequestEventFilterList", + "traits": { + "smithy.api#documentation": "The event types that will trigger the webhook. An empty list means all event types will trigger the webhook.", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#CreateWebhookResponse": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "url": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "secret": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {}, + "smithy.api#sensitive": {} + } + }, + "enabled": { + "target": "smithy.api#Boolean", + "traits": { + "smithy.api#required": {} + } + }, + "eventFilter": { + "target": "com.render.api#EventFilter", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#CreateWebhook": { + "type": "operation", + "input": { + "target": "com.render.api#CreateWebhookRequest" + }, + "output": { + "target": "com.render.api#CreateWebhookResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/webhooks", + "code": 200 + }, + "smithy.api#documentation": "Create a webhook\n\nCreate a new webhook." + } + }, + "com.render.api#RetrieveWebhookRequest": { + "type": "structure", + "members": { + "webhookId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "Unique identifier for the webhook" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#RetrieveWebhook": { + "type": "operation", + "input": { + "target": "com.render.api#RetrieveWebhookRequest" + }, + "output": { + "target": "com.render.api#Schema12" + }, + "errors": [ + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/webhooks/{webhookId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve a webhook\n\nRetrieve the webhook with the provided ID" + } + }, + "com.render.api#UpdateWebhookRequest": { + "type": "structure", + "members": { + "webhookId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "Unique identifier for the webhook" + } + }, + "name": { + "target": "smithy.api#String" + }, + "url": { + "target": "smithy.api#String" + }, + "enabled": { + "target": "smithy.api#Boolean" + }, + "eventFilter": { + "target": "com.render.api#EventFilter" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UpdateWebhook": { + "type": "operation", + "input": { + "target": "com.render.api#UpdateWebhookRequest" + }, + "output": { + "target": "com.render.api#Schema12" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "PATCH", + "uri": "/webhooks/{webhookId}", + "code": 200 + }, + "smithy.api#documentation": "Update a webhook\n\nUpdate the webhook with the provided ID." + } + }, + "com.render.api#DeleteWebhookRequest": { + "type": "structure", + "members": { + "webhookId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "Unique identifier for the webhook" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeleteWebhook": { + "type": "operation", + "input": { + "target": "com.render.api#DeleteWebhookRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/webhooks/{webhookId}", + "code": 200 + }, + "smithy.api#documentation": "Delete a webhook\n\nDelete the webhook with the provided ID." + } + }, + "com.render.api#ListWebhookEventsRequest": { + "type": "structure", + "members": { + "webhookId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "Unique identifier for the webhook" + } + }, + "sentBefore": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "sentBefore", + "smithy.api#documentation": "Filter events sent before this time (specified as an ISO 8601 timestamp)" + } + }, + "sentAfter": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "sentAfter", + "smithy.api#documentation": "Filter for resources sent after a certain time (specified as an ISO 8601 timestamp)" + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#WebhookEventWithCursor": { + "type": "structure", + "members": { + "webhookEvent": { + "target": "com.render.api#WebhookEventWithCursorWebhookEvent", + "traits": { + "smithy.api#required": {} + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#WebhookEventWithCursorWebhookEvent": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "the id of the webhook event", + "smithy.api#required": {} + } + }, + "eventId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "the id of the event that triggered the webhook", + "smithy.api#required": {} + } + }, + "eventType": { + "target": "com.render.api#Type", + "traits": { + "smithy.api#required": {} + } + }, + "sentAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "statusCode": { + "target": "smithy.api#Integer" + }, + "responseBody": { + "target": "smithy.api#String" + }, + "error": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "error is populated when an error occurs without a response such as a timeout" + } + } + }, + "traits": {} + }, + "com.render.api#ListWebhookEventsResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#WebhookEventWithCursor" + }, + "traits": {} + }, + "com.render.api#ListWebhookEventsResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListWebhookEventsResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListWebhookEvents": { + "type": "operation", + "input": { + "target": "com.render.api#ListWebhookEventsRequest" + }, + "output": { + "target": "com.render.api#ListWebhookEventsResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/webhooks/{webhookId}/events", + "code": 200 + }, + "smithy.api#documentation": "List webhook events\n\nRetrieve a list of events that have been sent to this webhook, with optional filtering by timestamp." + } + }, + "com.render.api#ListWorkflowsRequestNameList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListWorkflowsRequestOwnerIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListWorkflowsRequestWorkflowIDList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListWorkflowsRequestEnvironmentIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListWorkflowsRequest": { + "type": "structure", + "members": { + "name": { + "target": "com.render.api#ListWorkflowsRequestNameList", + "traits": { + "smithy.api#httpQuery": "name", + "smithy.api#documentation": "Filter by name" + } + }, + "ownerId": { + "target": "com.render.api#ListWorkflowsRequestOwnerIdList", + "traits": { + "smithy.api#httpQuery": "ownerId", + "smithy.api#documentation": "The ID of the workspaces to return resources for" + } + }, + "workflowID": { + "target": "com.render.api#ListWorkflowsRequestWorkflowIDList", + "traits": { + "smithy.api#httpQuery": "workflowID", + "smithy.api#documentation": "The IDs of the workflows to return resources for" + } + }, + "environmentId": { + "target": "com.render.api#ListWorkflowsRequestEnvironmentIdList", + "traits": { + "smithy.api#httpQuery": "environmentId", + "smithy.api#documentation": "Filter for resources that belong to an environment" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#WorkflowWithCursor": { + "type": "structure", + "members": { + "workflow": { + "target": "com.render.api#Schema13", + "traits": { + "smithy.api#required": {} + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Schema13": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "buildConfig": { + "target": "com.render.api#BuildConfig", + "traits": { + "smithy.api#required": {} + } + }, + "runCommand": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Command to run the workflow.", + "smithy.api#required": {} + } + }, + "region": { + "target": "com.render.api#Region2", + "traits": { + "smithy.api#required": {} + } + }, + "environmentId": { + "target": "smithy.api#String" + }, + "slug": { + "target": "smithy.api#String" + }, + "autoDeployTrigger": { + "target": "com.render.api#AutoDeployTrigger" + } + }, + "traits": {} + }, + "com.render.api#BuildConfig": { + "type": "structure", + "members": { + "branch": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The branch to use for the build, if applicable." + } + }, + "buildCommand": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The command to run to build the workflow.", + "smithy.api#required": {} + } + }, + "repo": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The repository URL to use for the build. Cannot be blank.", + "smithy.api#required": {} + } + }, + "rootDir": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The root directory of the repository to use for the build, if applicable." + } + }, + "runtime": { + "target": "com.render.api#Runtime", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Runtime": { + "type": "enum", + "members": { + "ELIXIR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "elixir" + } + }, + "GO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "go" + } + }, + "NODE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "node" + } + }, + "PYTHON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "python" + } + }, + "RUBY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ruby" + } + } + }, + "traits": { + "smithy.api#documentation": "The runtime environment for the workflow (e.g., node, python, etc.)." + } + }, + "com.render.api#Region2": { + "type": "enum", + "members": { + "FRANKFURT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "frankfurt" + } + }, + "OREGON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "oregon" + } + }, + "OHIO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ohio" + } + }, + "SINGAPORE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "singapore" + } + }, + "VIRGINIA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "virginia" + } + } + }, + "traits": { + "smithy.api#documentation": "Defaults to \"oregon\"" + } + }, + "com.render.api#AutoDeployTrigger": { + "type": "enum", + "members": { + "COMMIT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "commit" + } + }, + "OFF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "off" + } + }, + "CHECKSPASS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "checksPass" + } + } + }, + "traits": { + "smithy.api#documentation": "Controls autodeploy behavior. \"commit\" deploys when a commit is pushed to the branch. \"checksPass\" waits for CI checks to pass before deploying. \"off\" disables autodeploy." + } + }, + "com.render.api#ListWorkflowsResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#WorkflowWithCursor" + }, + "traits": {} + }, + "com.render.api#ListWorkflowsResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListWorkflowsResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListWorkflows": { + "type": "operation", + "input": { + "target": "com.render.api#ListWorkflowsRequest" + }, + "output": { + "target": "com.render.api#ListWorkflowsResponse" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/workflows", + "code": 200 + }, + "smithy.api#documentation": "List workflows\n\nList workflows that match the provided filters. If no filters are provided, all workflows accessible by the authenticated user are returned." + } + }, + "com.render.api#CreateWorkflowRequestBuildConfig": { + "type": "structure", + "members": { + "branch": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The branch to use for the build, if applicable." + } + }, + "buildCommand": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The command to run to build the workflow.", + "smithy.api#required": {} + } + }, + "repo": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The repository URL to use for the build. Cannot be blank.", + "smithy.api#required": {} + } + }, + "rootDir": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The root directory of the repository to use for the build, if applicable." + } + }, + "runtime": { + "target": "com.render.api#Runtime", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#CreateWorkflowRequestRegion": { + "type": "enum", + "members": { + "FRANKFURT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "frankfurt" + } + }, + "OREGON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "oregon" + } + }, + "OHIO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ohio" + } + }, + "SINGAPORE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "singapore" + } + }, + "VIRGINIA": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "virginia" + } + } + }, + "traits": { + "smithy.api#documentation": "Defaults to \"oregon\"" + } + }, + "com.render.api#CreateWorkflowRequestAutoDeployTrigger": { + "type": "enum", + "members": { + "COMMIT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "commit" + } + }, + "OFF": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "off" + } + }, + "CHECKSPASS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "checksPass" + } + } + }, + "traits": { + "smithy.api#documentation": "Controls autodeploy behavior. \"commit\" deploys when a commit is pushed to the branch. \"checksPass\" waits for CI checks to pass before deploying. \"off\" disables autodeploy." + } + }, + "com.render.api#CreateWorkflowRequest": { + "type": "structure", + "members": { + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "buildConfig": { + "target": "com.render.api#CreateWorkflowRequestBuildConfig", + "traits": { + "smithy.api#required": {} + } + }, + "runCommand": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The command to run the workflow. Cannot be blank.", + "smithy.api#required": {} + } + }, + "region": { + "target": "com.render.api#CreateWorkflowRequestRegion", + "traits": { + "smithy.api#documentation": "Defaults to \"oregon\"", + "smithy.api#required": {} + } + }, + "autoDeployTrigger": { + "target": "com.render.api#CreateWorkflowRequestAutoDeployTrigger", + "traits": { + "smithy.api#documentation": "Controls autodeploy behavior. \"commit\" deploys when a commit is pushed to the branch. \"checksPass\" waits for CI checks to pass before deploying. \"off\" disables autodeploy." + } + }, + "envVars": { + "target": "com.render.api#Schema6" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#CreateWorkflowResponse": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "ownerId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "updatedAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "buildConfig": { + "target": "com.render.api#BuildConfig", + "traits": { + "smithy.api#required": {} + } + }, + "runCommand": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Command to run the workflow.", + "smithy.api#required": {} + } + }, + "region": { + "target": "com.render.api#Region2", + "traits": { + "smithy.api#required": {} + } + }, + "environmentId": { + "target": "smithy.api#String" + }, + "slug": { + "target": "smithy.api#String" + }, + "autoDeployTrigger": { + "target": "com.render.api#AutoDeployTrigger" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#CreateWorkflow": { + "type": "operation", + "input": { + "target": "com.render.api#CreateWorkflowRequest" + }, + "output": { + "target": "com.render.api#CreateWorkflowResponse" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/workflows", + "code": 200 + }, + "smithy.api#documentation": "Create a workflow\n\nCreate a new workflow service with the specified configuration." + } + }, + "com.render.api#GetWorkflowRequest": { + "type": "structure", + "members": { + "workflowId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the workflow" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#GetWorkflow": { + "type": "operation", + "input": { + "target": "com.render.api#GetWorkflowRequest" + }, + "output": { + "target": "com.render.api#Schema13" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/workflows/{workflowId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve workflow\n\nRetrieve the workflow service with the provided ID." + } + }, + "com.render.api#UpdateWorkflowRequestBuildConfigRuntime": { + "type": "enum", + "members": { + "ELIXIR": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "elixir" + } + }, + "GO": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "go" + } + }, + "NODE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "node" + } + }, + "PYTHON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "python" + } + }, + "RUBY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ruby" + } + } + }, + "traits": { + "smithy.api#documentation": "The runtime environment for the workflow (e.g., node, python, etc.)." + } + }, + "com.render.api#UpdateWorkflowRequestBuildConfig": { + "type": "structure", + "members": { + "branch": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The branch to use for the build, if applicable." + } + }, + "buildCommand": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The command to run to build the workflow." + } + }, + "repo": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The repository URL to use for the build. Cannot be blank." + } + }, + "rootDir": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The root directory of the repository to use for the build, if applicable." + } + }, + "runtime": { + "target": "com.render.api#UpdateWorkflowRequestBuildConfigRuntime", + "traits": { + "smithy.api#documentation": "The runtime environment for the workflow (e.g., node, python, etc.)." + } + } + }, + "traits": { + "smithy.api#documentation": "A partial update to a workflow's build config. Every field is optional; omitted fields are left unchanged." + } + }, + "com.render.api#UpdateWorkflowRequest": { + "type": "structure", + "members": { + "workflowId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the workflow" + } + }, + "name": { + "target": "smithy.api#String" + }, + "buildConfig": { + "target": "com.render.api#UpdateWorkflowRequestBuildConfig", + "traits": { + "smithy.api#documentation": "A partial update to a workflow's build config. Every field is optional; omitted fields are left unchanged." + } + }, + "runCommand": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The command to run the workflow. Cannot be blank." + } + }, + "autoDeployTrigger": { + "target": "com.render.api#AutoDeployTrigger" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#UpdateWorkflow": { + "type": "operation", + "input": { + "target": "com.render.api#UpdateWorkflowRequest" + }, + "output": { + "target": "com.render.api#Schema13" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "PATCH", + "uri": "/workflows/{workflowId}", + "code": 200 + }, + "smithy.api#documentation": "Update workflow\n\nUpdate the workflow service with the provided ID." + } + }, + "com.render.api#DeleteWorkflowRequest": { + "type": "structure", + "members": { + "workflowId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the workflow" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#DeleteWorkflow": { + "type": "operation", + "input": { + "target": "com.render.api#DeleteWorkflowRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/workflows/{workflowId}", + "code": 200 + }, + "smithy.api#documentation": "Delete workflow\n\nDelete the workflow service with the provided ID." + } + }, + "com.render.api#ListWorkflowVersionsRequestOwnerIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListWorkflowVersionsRequestWorkflowIDList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListWorkflowVersionsRequestWorkflowVersionIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListWorkflowVersionsRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "com.render.api#ListWorkflowVersionsRequestOwnerIdList", + "traits": { + "smithy.api#httpQuery": "ownerId", + "smithy.api#documentation": "The ID of the workspaces to return resources for" + } + }, + "workflowID": { + "target": "com.render.api#ListWorkflowVersionsRequestWorkflowIDList", + "traits": { + "smithy.api#httpQuery": "workflowID", + "smithy.api#documentation": "The IDs of the workflows to return resources for" + } + }, + "workflowVersionId": { + "target": "com.render.api#ListWorkflowVersionsRequestWorkflowVersionIdList", + "traits": { + "smithy.api#httpQuery": "workflowVersionId", + "smithy.api#documentation": "The IDs of the workflow versions to return resources for" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#WorkflowVersionWithCursor": { + "type": "structure", + "members": { + "workflowVersion": { + "target": "com.render.api#Schema14", + "traits": { + "smithy.api#required": {} + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Schema14": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "workflowId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#SchemaStatus", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#SchemaStatus": { + "type": "enum", + "members": { + "CREATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "created" + } + }, + "BUILDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "building" + } + }, + "REGISTERING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "registering" + } + }, + "BUILD_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "build_failed" + } + }, + "REGISTRATION_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "registration_failed" + } + }, + "READY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ready" + } + } + }, + "traits": {} + }, + "com.render.api#ListWorkflowVersionsResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#WorkflowVersionWithCursor" + }, + "traits": {} + }, + "com.render.api#ListWorkflowVersionsResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListWorkflowVersionsResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListWorkflowVersions": { + "type": "operation", + "input": { + "target": "com.render.api#ListWorkflowVersionsRequest" + }, + "output": { + "target": "com.render.api#ListWorkflowVersionsResponse" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/workflowversions", + "code": 200 + }, + "smithy.api#documentation": "List workflow versions\n\nList known versions of the workflow service with the provided ID." + } + }, + "com.render.api#CreateWorkflowVersionRequest": { + "type": "structure", + "members": { + "workflowId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "commit": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#CreateWorkflowVersion": { + "type": "operation", + "input": { + "target": "com.render.api#CreateWorkflowVersionRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/workflowversions", + "code": 200 + }, + "smithy.api#documentation": "Deploy a workflow version\n\nCreates and deploys a new version of a workflow." + } + }, + "com.render.api#GetWorkflowVersionRequest": { + "type": "structure", + "members": { + "workflowVersionId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the workflow version" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#GetWorkflowVersionResponseStatus": { + "type": "enum", + "members": { + "CREATED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "created" + } + }, + "BUILDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "building" + } + }, + "REGISTERING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "registering" + } + }, + "BUILD_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "build_failed" + } + }, + "REGISTRATION_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "registration_failed" + } + }, + "READY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ready" + } + } + }, + "traits": {} + }, + "com.render.api#GetWorkflowVersionResponse": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "workflowId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#GetWorkflowVersionResponseStatus", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetWorkflowVersion": { + "type": "operation", + "input": { + "target": "com.render.api#GetWorkflowVersionRequest" + }, + "output": { + "target": "com.render.api#GetWorkflowVersionResponse" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/workflowversions/{workflowVersionId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve workflow version\n\nRetrieve the specific workflow service version with the provided ID." + } + }, + "com.render.api#ListTasksRequestOwnerIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListTasksRequestTaskSlugList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListTasksRequestWorkflowVersionIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListTasksRequestWorkflowIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListTasksRequest": { + "type": "structure", + "members": { + "ownerId": { + "target": "com.render.api#ListTasksRequestOwnerIdList", + "traits": { + "smithy.api#httpQuery": "ownerId", + "smithy.api#documentation": "The ID of the workspaces to return resources for" + } + }, + "taskSlug": { + "target": "com.render.api#ListTasksRequestTaskSlugList", + "traits": { + "smithy.api#httpQuery": "taskSlug", + "smithy.api#documentation": "An array of task slugs in the format workflow-slug/task-name. An optional version can be appended (workflow-slug/task-name:version). If no version is provided, the latest version is used." + } + }, + "workflowVersionId": { + "target": "com.render.api#ListTasksRequestWorkflowVersionIdList", + "traits": { + "smithy.api#httpQuery": "workflowVersionId", + "smithy.api#documentation": "An array of workflow version IDs" + } + }, + "workflowId": { + "target": "com.render.api#ListTasksRequestWorkflowIdList", + "traits": { + "smithy.api#httpQuery": "workflowId", + "smithy.api#documentation": "An array of workflow IDs" + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#TaskWithCursor": { + "type": "structure", + "members": { + "task": { + "target": "com.render.api#Schema15", + "traits": { + "smithy.api#required": {} + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Schema15": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "workflowId": { + "target": "smithy.api#String" + }, + "workflowVersionId": { + "target": "smithy.api#String" + } + }, + "traits": {} + }, + "com.render.api#ListTasksResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#TaskWithCursor" + }, + "traits": {} + }, + "com.render.api#ListTasksResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListTasksResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListTasks": { + "type": "operation", + "input": { + "target": "com.render.api#ListTasksRequest" + }, + "output": { + "target": "com.render.api#ListTasksResponse" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/tasks", + "code": 200 + }, + "smithy.api#documentation": "List tasks\n\nList workflow tasks that match the provided filters. If no filters are provided, all task definitions accessible by the authenticated user are returned." + } + }, + "com.render.api#GetTaskRequest": { + "type": "structure", + "members": { + "taskId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the task" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#GetTaskResponse": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "name": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "createdAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "workflowId": { + "target": "smithy.api#String" + }, + "workflowVersionId": { + "target": "smithy.api#String" + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetTask": { + "type": "operation", + "input": { + "target": "com.render.api#GetTaskRequest" + }, + "output": { + "target": "com.render.api#GetTaskResponse" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/tasks/{taskId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve task\n\nRetrieve the workflow task with the provided ID." + } + }, + "com.render.api#ListTaskRunsRequestTaskSlugList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListTaskRunsRequestRootTaskRunIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListTaskRunsRequestOwnerIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListTaskRunsRequestWorkflowVersionIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListTaskRunsRequestWorkflowIdList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#ListTaskRunsRequest": { + "type": "structure", + "members": { + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpQuery": "cursor", + "smithy.api#documentation": "The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "limit": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#httpQuery": "limit", + "smithy.api#documentation": "The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination)." + } + }, + "taskSlug": { + "target": "com.render.api#ListTaskRunsRequestTaskSlugList", + "traits": { + "smithy.api#httpQuery": "taskSlug", + "smithy.api#documentation": "An array of task slugs in the format workflow-slug/task-name. An optional version can be appended (workflow-slug/task-name:version). If no version is provided, the latest version is used." + } + }, + "rootTaskRunId": { + "target": "com.render.api#ListTaskRunsRequestRootTaskRunIdList", + "traits": { + "smithy.api#httpQuery": "rootTaskRunId", + "smithy.api#documentation": "An array of root task run IDs to filter on" + } + }, + "ownerId": { + "target": "com.render.api#ListTaskRunsRequestOwnerIdList", + "traits": { + "smithy.api#httpQuery": "ownerId", + "smithy.api#documentation": "The ID of the workspaces to return resources for" + } + }, + "workflowVersionId": { + "target": "com.render.api#ListTaskRunsRequestWorkflowVersionIdList", + "traits": { + "smithy.api#httpQuery": "workflowVersionId", + "smithy.api#documentation": "An array of workflow version IDs" + } + }, + "workflowId": { + "target": "com.render.api#ListTaskRunsRequestWorkflowIdList", + "traits": { + "smithy.api#httpQuery": "workflowId", + "smithy.api#documentation": "An array of workflow IDs" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#TaskRunWithCursor": { + "type": "structure", + "members": { + "taskRun": { + "target": "com.render.api#Schema16", + "traits": { + "smithy.api#required": {} + } + }, + "cursor": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Schema16": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "taskId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#Status2", + "traits": { + "smithy.api#required": {} + } + }, + "startedAt": { + "target": "smithy.api#String" + }, + "completedAt": { + "target": "smithy.api#String" + }, + "parentTaskRunId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "parentTaskAttempt": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "The 0-indexed attempt of the parent task run that spawned this task run. Omitted for root task runs and for task runs created before this field was introduced." + } + }, + "rootTaskRunId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "retries": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "attempts": { + "target": "com.render.api#SchemaAttemptsList", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": {} + }, + "com.render.api#Status2": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "RUNNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "running" + } + }, + "COMPLETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "completed" + } + }, + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "succeeded" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "CANCELED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "canceled" + } + }, + "PAUSED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "paused" + } + } + }, + "traits": {} + }, + "com.render.api#SchemaAttemptsItem": { + "type": "structure", + "members": { + "taskRunId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the task run this attempt belongs to." + } + }, + "attempt": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "The 0-indexed attempt number.", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#Status2", + "traits": { + "smithy.api#required": {} + } + }, + "enqueuedAt": { + "target": "smithy.api#String" + }, + "startedAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "completedAt": { + "target": "smithy.api#String" + } + }, + "traits": {} + }, + "com.render.api#SchemaAttemptsList": { + "type": "list", + "member": { + "target": "com.render.api#SchemaAttemptsItem" + }, + "traits": {} + }, + "com.render.api#ListTaskRunsResponseBodyList": { + "type": "list", + "member": { + "target": "com.render.api#TaskRunWithCursor" + }, + "traits": {} + }, + "com.render.api#ListTaskRunsResponse": { + "type": "structure", + "members": { + "body": { + "target": "com.render.api#ListTaskRunsResponseBodyList", + "traits": { + "com.distilled.openapi#rawResponse": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#ListTaskRuns": { + "type": "operation", + "input": { + "target": "com.render.api#ListTaskRunsRequest" + }, + "output": { + "target": "com.render.api#ListTaskRunsResponse" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/task-runs", + "code": 200 + }, + "smithy.api#documentation": "List task runs\n\nList task runs that match the provided filters. If no filters are provided, all task runs accessible by the authenticated user are returned." + } + }, + "com.render.api#CreateTaskRequestInputCase0List": { + "type": "list", + "member": { + "target": "smithy.api#Document" + }, + "traits": { + "smithy.api#documentation": "Positional arguments passed to the task function" + } + }, + "com.render.api#CreateTaskRequestInputCase1Map": { + "type": "map", + "key": { + "target": "smithy.api#String" + }, + "value": { + "target": "smithy.api#Document" + }, + "traits": { + "smithy.api#documentation": "Named parameters passed to the task function as keyword arguments" + } + }, + "com.render.api#CreateTaskRequestInput": { + "type": "union", + "members": { + "Case0": { + "target": "com.render.api#CreateTaskRequestInputCase0List" + }, + "Case1": { + "target": "com.render.api#CreateTaskRequestInputCase1Map" + } + }, + "traits": { + "smithy.api#documentation": "Input data for a task. Can be either an array (for positional arguments) or an object (for named parameters)." + } + }, + "com.render.api#CreateTaskRequest": { + "type": "structure", + "members": { + "task": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "A task slug in the format workflow-slug/task-name. An optional version can be appended (workflow-slug/task-name:version). If no version is provided, the latest version is used. Cannot be blank.", + "smithy.api#required": {} + } + }, + "input": { + "target": "com.render.api#CreateTaskRequestInput", + "traits": { + "smithy.api#documentation": "Input data for a task. Can be either an array (for positional arguments) or an object (for named parameters).", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#CreateTaskResponseAttemptsItem": { + "type": "structure", + "members": { + "taskRunId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the task run this attempt belongs to." + } + }, + "attempt": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "The 0-indexed attempt number.", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#Status2", + "traits": { + "smithy.api#required": {} + } + }, + "enqueuedAt": { + "target": "smithy.api#String" + }, + "startedAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "completedAt": { + "target": "smithy.api#String" + } + }, + "traits": {} + }, + "com.render.api#CreateTaskResponseAttemptsList": { + "type": "list", + "member": { + "target": "com.render.api#CreateTaskResponseAttemptsItem" + }, + "traits": {} + }, + "com.render.api#CreateTaskResponse": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "taskId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#Status2", + "traits": { + "smithy.api#required": {} + } + }, + "startedAt": { + "target": "smithy.api#String" + }, + "completedAt": { + "target": "smithy.api#String" + }, + "parentTaskRunId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "parentTaskAttempt": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "The 0-indexed attempt of the parent task run that spawned this task run. Omitted for root task runs and for task runs created before this field was introduced." + } + }, + "rootTaskRunId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "retries": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "attempts": { + "target": "com.render.api#CreateTaskResponseAttemptsList", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#CreateTask": { + "type": "operation", + "input": { + "target": "com.render.api#CreateTaskRequest" + }, + "output": { + "target": "com.render.api#CreateTaskResponse" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "POST", + "uri": "/task-runs", + "code": 200 + }, + "smithy.api#documentation": "Run task\n\nKicks off a run of the workflow task with the provided ID, passing the provided input data." + } + }, + "com.render.api#StreamTaskRunsEventsRequestTaskRunIdsList": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": {} + }, + "com.render.api#StreamTaskRunsEventsRequest": { + "type": "structure", + "members": { + "taskRunIds": { + "target": "com.render.api#StreamTaskRunsEventsRequestTaskRunIdsList", + "traits": { + "smithy.api#httpQuery": "taskRunIds", + "smithy.api#required": {}, + "smithy.api#documentation": "Filter to a subset of task run IDs." + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#StreamTaskRunsEvents": { + "type": "operation", + "input": { + "target": "com.render.api#StreamTaskRunsEventsRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#BadRequest" + }, + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/task-runs/events", + "code": 200 + }, + "smithy.api#documentation": "Stream realtime events (SSE)\n\nEstablishes a unidirectional event stream. The server sends events as lines\nformatted per the SSE spec. Clients SHOULD set `Accept: text/event-stream`\nand keep the connection open." + } + }, + "com.render.api#GetTaskRunRequest": { + "type": "structure", + "members": { + "taskRunId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the task run" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#GetTaskRunResponseStatus": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "pending" + } + }, + "RUNNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "running" + } + }, + "COMPLETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "completed" + } + }, + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "succeeded" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "failed" + } + }, + "CANCELED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "canceled" + } + }, + "PAUSED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "paused" + } + } + }, + "traits": {} + }, + "com.render.api#GetTaskRunResponseResultsList": { + "type": "list", + "member": { + "target": "smithy.api#Document" + }, + "traits": {} + }, + "com.render.api#Input": { + "type": "union", + "members": { + "Case0": { + "target": "com.render.api#InputCase0List" + }, + "Case1": { + "target": "com.render.api#InputCase1Map" + } + }, + "traits": { + "smithy.api#documentation": "Input data for a task. Can be either an array (for positional arguments) or an object (for named parameters)." + } + }, + "com.render.api#InputCase0List": { + "type": "list", + "member": { + "target": "smithy.api#Document" + }, + "traits": { + "smithy.api#documentation": "Positional arguments passed to the task function" + } + }, + "com.render.api#InputCase1Map": { + "type": "map", + "key": { + "target": "smithy.api#String" + }, + "value": { + "target": "smithy.api#Document" + }, + "traits": { + "smithy.api#documentation": "Named parameters passed to the task function as keyword arguments" + } + }, + "com.render.api#Results": { + "type": "list", + "member": { + "target": "smithy.api#Document" + }, + "traits": {} + }, + "com.render.api#GetTaskRunResponseAttemptsItem": { + "type": "structure", + "members": { + "taskRunId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "The ID of the task run this attempt belongs to." + } + }, + "attempt": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "The 0-indexed attempt number.", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#Status2", + "traits": { + "smithy.api#required": {} + } + }, + "enqueuedAt": { + "target": "smithy.api#String" + }, + "startedAt": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "completedAt": { + "target": "smithy.api#String" + }, + "error": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Error message if the task attempt failed." + } + }, + "results": { + "target": "com.render.api#Results" + } + }, + "traits": {} + }, + "com.render.api#GetTaskRunResponseAttemptsList": { + "type": "list", + "member": { + "target": "com.render.api#GetTaskRunResponseAttemptsItem" + }, + "traits": {} + }, + "com.render.api#GetTaskRunResponse": { + "type": "structure", + "members": { + "id": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "taskId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "status": { + "target": "com.render.api#GetTaskRunResponseStatus", + "traits": { + "smithy.api#required": {} + } + }, + "results": { + "target": "com.render.api#GetTaskRunResponseResultsList", + "traits": { + "smithy.api#required": {} + } + }, + "error": { + "target": "smithy.api#String", + "traits": { + "smithy.api#documentation": "Error message if the task run failed." + } + }, + "startedAt": { + "target": "smithy.api#String" + }, + "completedAt": { + "target": "smithy.api#String" + }, + "input": { + "target": "com.render.api#Input", + "traits": { + "smithy.api#required": {} + } + }, + "parentTaskRunId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "parentTaskAttempt": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#documentation": "The 0-indexed attempt of the parent task run that spawned this task run. Omitted for root task runs and for task runs created before this field was introduced." + } + }, + "rootTaskRunId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#required": {} + } + }, + "retries": { + "target": "smithy.api#Integer", + "traits": { + "smithy.api#required": {} + } + }, + "attempts": { + "target": "com.render.api#GetTaskRunResponseAttemptsList", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.render.api#GetTaskRun": { + "type": "operation", + "input": { + "target": "com.render.api#GetTaskRunRequest" + }, + "output": { + "target": "com.render.api#GetTaskRunResponse" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "GET", + "uri": "/task-runs/{taskRunId}", + "code": 200 + }, + "smithy.api#documentation": "Retrieve task run\n\nRetrieve the workflow task run with the provided ID." + } + }, + "com.render.api#CancelTaskRunRequest": { + "type": "structure", + "members": { + "taskRunId": { + "target": "smithy.api#String", + "traits": { + "smithy.api#httpLabel": {}, + "smithy.api#required": {}, + "smithy.api#documentation": "The ID of the task run" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.render.api#CancelTaskRun": { + "type": "operation", + "input": { + "target": "com.render.api#CancelTaskRunRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.render.api#Forbidden" + }, + { + "target": "com.render.api#NotFound" + } + ], + "traits": { + "smithy.api#http": { + "method": "DELETE", + "uri": "/task-runs/{taskRunId}", + "code": 200 + }, + "smithy.api#documentation": "Cancel task run\n\nCancel a running task run with the provided ID." + } + }, + "com.render.api#Forbidden": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#error": "client", + "smithy.api#httpError": 403, + "com.distilled.openapi#errorMatchers": [ + { + "status": 403 + } + ] + } + }, + "com.render.api#NotFound": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#error": "client", + "smithy.api#httpError": 404, + "com.distilled.openapi#errorMatchers": [ + { + "status": 404 + } + ] + } + }, + "com.render.api#BadRequest": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#error": "client", + "smithy.api#httpError": 400, + "com.distilled.openapi#errorMatchers": [ + { + "status": 400 + } + ] + } + }, + "com.render.api#Conflict": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#error": "client", + "smithy.api#httpError": 409, + "com.distilled.openapi#errorMatchers": [ + { + "status": 409 + } + ] + } + }, + "com.render.api#Render": { + "type": "service", + "version": "1.0.0", + "operations": [ + { + "target": "com.render.api#ListBlueprints" + }, + { + "target": "com.render.api#ValidateBlueprint" + }, + { + "target": "com.render.api#UpdateWorkspaceMember" + }, + { + "target": "com.render.api#RemoveWorkspaceMember" + }, + { + "target": "com.render.api#RetrieveBlueprint" + }, + { + "target": "com.render.api#UpdateBlueprint" + }, + { + "target": "com.render.api#DisconnectBlueprint" + }, + { + "target": "com.render.api#ListBlueprintSyncs" + }, + { + "target": "com.render.api#ListDedicatedIps" + }, + { + "target": "com.render.api#CreateDedicatedIp" + }, + { + "target": "com.render.api#RetrieveDedicatedIp" + }, + { + "target": "com.render.api#UpdateDedicatedIp" + }, + { + "target": "com.render.api#DeleteDedicatedIp" + }, + { + "target": "com.render.api#ListDisks" + }, + { + "target": "com.render.api#AddDisk" + }, + { + "target": "com.render.api#RetrieveDisk" + }, + { + "target": "com.render.api#UpdateDisk" + }, + { + "target": "com.render.api#DeleteDisk" + }, + { + "target": "com.render.api#ListSnapshots" + }, + { + "target": "com.render.api#RestoreSnapshot" + }, + { + "target": "com.render.api#GetUser" + }, + { + "target": "com.render.api#ListOwners" + }, + { + "target": "com.render.api#RetrieveOwner" + }, + { + "target": "com.render.api#RetrieveOwnerMembers" + }, + { + "target": "com.render.api#ListOwnerAuditLogs" + }, + { + "target": "com.render.api#ListOrganizationAuditLogs" + }, + { + "target": "com.render.api#RetrieveOwnerNotificationSettings" + }, + { + "target": "com.render.api#PatchOwnerNotificationSettings" + }, + { + "target": "com.render.api#ListNotificationOverrides" + }, + { + "target": "com.render.api#RetrieveServiceNotificationOverrides" + }, + { + "target": "com.render.api#PatchServiceNotificationOverrides" + }, + { + "target": "com.render.api#ListRegistryCredentials" + }, + { + "target": "com.render.api#CreateRegistryCredential" + }, + { + "target": "com.render.api#RetrieveRegistryCredential" + }, + { + "target": "com.render.api#UpdateRegistryCredential" + }, + { + "target": "com.render.api#DeleteRegistryCredential" + }, + { + "target": "com.render.api#ListServices" + }, + { + "target": "com.render.api#CreateService" + }, + { + "target": "com.render.api#RetrieveService" + }, + { + "target": "com.render.api#UpdateService" + }, + { + "target": "com.render.api#DeleteService" + }, + { + "target": "com.render.api#PurgeCache" + }, + { + "target": "com.render.api#ListDeploys" + }, + { + "target": "com.render.api#CreateDeploy" + }, + { + "target": "com.render.api#RetrieveDeploy" + }, + { + "target": "com.render.api#CancelDeploy" + }, + { + "target": "com.render.api#RollbackDeploy" + }, + { + "target": "com.render.api#GetEnvVarsForService" + }, + { + "target": "com.render.api#UpdateEnvVarsForService" + }, + { + "target": "com.render.api#RetrieveEnvVar" + }, + { + "target": "com.render.api#UpdateEnvVar" + }, + { + "target": "com.render.api#DeleteEnvVar" + }, + { + "target": "com.render.api#ListSecretFilesForService" + }, + { + "target": "com.render.api#UpdateSecretFilesForService" + }, + { + "target": "com.render.api#RetrieveSecretFile" + }, + { + "target": "com.render.api#AddOrUpdateSecretFile" + }, + { + "target": "com.render.api#DeleteSecretFile" + }, + { + "target": "com.render.api#ListEvents" + }, + { + "target": "com.render.api#ListHeaders" + }, + { + "target": "com.render.api#AddHeaders" + }, + { + "target": "com.render.api#UpdateHeaders" + }, + { + "target": "com.render.api#DeleteHeader" + }, + { + "target": "com.render.api#ListRoutes" + }, + { + "target": "com.render.api#AddRoute" + }, + { + "target": "com.render.api#PutRoutes" + }, + { + "target": "com.render.api#PatchRoute" + }, + { + "target": "com.render.api#DeleteRoute" + }, + { + "target": "com.render.api#ListCustomDomains" + }, + { + "target": "com.render.api#CreateCustomDomain" + }, + { + "target": "com.render.api#RetrieveCustomDomain" + }, + { + "target": "com.render.api#DeleteCustomDomain" + }, + { + "target": "com.render.api#RefreshCustomDomain" + }, + { + "target": "com.render.api#SuspendService" + }, + { + "target": "com.render.api#ResumeService" + }, + { + "target": "com.render.api#RestartService" + }, + { + "target": "com.render.api#ScaleService" + }, + { + "target": "com.render.api#AutoscaleService" + }, + { + "target": "com.render.api#DeleteAutoscalingConfig" + }, + { + "target": "com.render.api#PreviewService" + }, + { + "target": "com.render.api#ListJob" + }, + { + "target": "com.render.api#PostJob" + }, + { + "target": "com.render.api#RetrieveJob" + }, + { + "target": "com.render.api#CancelJob" + }, + { + "target": "com.render.api#ListInstances" + }, + { + "target": "com.render.api#RetrieveServiceOutboundIps" + }, + { + "target": "com.render.api#RunCronJob" + }, + { + "target": "com.render.api#CancelCronJobRun" + }, + { + "target": "com.render.api#RetrieveEvent" + }, + { + "target": "com.render.api#ListLogs" + }, + { + "target": "com.render.api#SubscribeLogs" + }, + { + "target": "com.render.api#ListLogsValues" + }, + { + "target": "com.render.api#GetOwnerLogStream" + }, + { + "target": "com.render.api#UpdateOwnerLogStream" + }, + { + "target": "com.render.api#DeleteOwnerLogStream" + }, + { + "target": "com.render.api#ListResourceLogStreams" + }, + { + "target": "com.render.api#GetResourceLogStream" + }, + { + "target": "com.render.api#UpdateResourceLogStream" + }, + { + "target": "com.render.api#DeleteResourceLogStream" + }, + { + "target": "com.render.api#GetOwnerMetricsStream" + }, + { + "target": "com.render.api#UpsertOwnerMetricsStream" + }, + { + "target": "com.render.api#DeleteOwnerMetricsStream" + }, + { + "target": "com.render.api#GetCpu" + }, + { + "target": "com.render.api#GetCpuLimit" + }, + { + "target": "com.render.api#GetCpuTarget" + }, + { + "target": "com.render.api#GetMemory" + }, + { + "target": "com.render.api#GetMemoryLimit" + }, + { + "target": "com.render.api#GetMemoryTarget" + }, + { + "target": "com.render.api#GetHttpRequests" + }, + { + "target": "com.render.api#GetHttpLatency" + }, + { + "target": "com.render.api#GetBandwidth" + }, + { + "target": "com.render.api#GetBandwidthSources" + }, + { + "target": "com.render.api#GetDiskUsage" + }, + { + "target": "com.render.api#GetDiskCapacity" + }, + { + "target": "com.render.api#GetInstanceCount" + }, + { + "target": "com.render.api#GetActiveConnections" + }, + { + "target": "com.render.api#GetReplicationLag" + }, + { + "target": "com.render.api#ListApplicationFilterValues" + }, + { + "target": "com.render.api#ListHttpFilterValues" + }, + { + "target": "com.render.api#ListPathFilterValues" + }, + { + "target": "com.render.api#GetTaskRunsQueued" + }, + { + "target": "com.render.api#GetTaskRunsCompleted" + }, + { + "target": "com.render.api#ListKeyValue" + }, + { + "target": "com.render.api#CreateKeyValue" + }, + { + "target": "com.render.api#RetrieveKeyValue" + }, + { + "target": "com.render.api#UpdateKeyValue" + }, + { + "target": "com.render.api#DeleteKeyValue" + }, + { + "target": "com.render.api#RetrieveKeyValueConnectionInfo" + }, + { + "target": "com.render.api#SuspendKeyValue" + }, + { + "target": "com.render.api#ResumeKeyValue" + }, + { + "target": "com.render.api#ListPostgres" + }, + { + "target": "com.render.api#CreatePostgres" + }, + { + "target": "com.render.api#RetrievePostgres" + }, + { + "target": "com.render.api#UpdatePostgres" + }, + { + "target": "com.render.api#DeletePostgres" + }, + { + "target": "com.render.api#RetrievePostgresConnectionInfo" + }, + { + "target": "com.render.api#RetrievePostgresRecoveryInfo" + }, + { + "target": "com.render.api#RecoverPostgres" + }, + { + "target": "com.render.api#SuspendPostgres" + }, + { + "target": "com.render.api#ResumePostgres" + }, + { + "target": "com.render.api#RestartPostgres" + }, + { + "target": "com.render.api#FailoverPostgres" + }, + { + "target": "com.render.api#ListPostgresExport" + }, + { + "target": "com.render.api#CreatePostgresExport" + }, + { + "target": "com.render.api#ListPostgresUsers" + }, + { + "target": "com.render.api#CreatePostgresUser" + }, + { + "target": "com.render.api#DeletePostgresUser" + }, + { + "target": "com.render.api#ListPostgresProcesses" + }, + { + "target": "com.render.api#ListPostgresTopQueries" + }, + { + "target": "com.render.api#ListPostgresSizes" + }, + { + "target": "com.render.api#ListPostgresTableScans" + }, + { + "target": "com.render.api#ListProjects" + }, + { + "target": "com.render.api#CreateProject" + }, + { + "target": "com.render.api#RetrieveProject" + }, + { + "target": "com.render.api#UpdateProject" + }, + { + "target": "com.render.api#DeleteProject" + }, + { + "target": "com.render.api#ListEnvironments" + }, + { + "target": "com.render.api#CreateEnvironment" + }, + { + "target": "com.render.api#RetrieveEnvironment" + }, + { + "target": "com.render.api#UpdateEnvironment" + }, + { + "target": "com.render.api#DeleteEnvironment" + }, + { + "target": "com.render.api#AddResourcesToEnvironment" + }, + { + "target": "com.render.api#RemoveResourcesFromEnvironment" + }, + { + "target": "com.render.api#ListEnvGroups" + }, + { + "target": "com.render.api#CreateEnvGroup" + }, + { + "target": "com.render.api#RetrieveEnvGroup" + }, + { + "target": "com.render.api#UpdateEnvGroup" + }, + { + "target": "com.render.api#DeleteEnvGroup" + }, + { + "target": "com.render.api#LinkServiceToEnvGroup" + }, + { + "target": "com.render.api#UnlinkServiceFromEnvGroup" + }, + { + "target": "com.render.api#RetrieveEnvGroupEnvVar" + }, + { + "target": "com.render.api#UpdateEnvGroupEnvVar" + }, + { + "target": "com.render.api#DeleteEnvGroupEnvVar" + }, + { + "target": "com.render.api#RetrieveEnvGroupSecretFile" + }, + { + "target": "com.render.api#UpdateEnvGroupSecretFile" + }, + { + "target": "com.render.api#DeleteEnvGroupSecretFile" + }, + { + "target": "com.render.api#ListMaintenance" + }, + { + "target": "com.render.api#RetrieveMaintenance" + }, + { + "target": "com.render.api#UpdateMaintenance" + }, + { + "target": "com.render.api#TriggerMaintenance" + }, + { + "target": "com.render.api#ListWebhooks" + }, + { + "target": "com.render.api#CreateWebhook" + }, + { + "target": "com.render.api#RetrieveWebhook" + }, + { + "target": "com.render.api#UpdateWebhook" + }, + { + "target": "com.render.api#DeleteWebhook" + }, + { + "target": "com.render.api#ListWebhookEvents" + }, + { + "target": "com.render.api#ListWorkflows" + }, + { + "target": "com.render.api#CreateWorkflow" + }, + { + "target": "com.render.api#GetWorkflow" + }, + { + "target": "com.render.api#UpdateWorkflow" + }, + { + "target": "com.render.api#DeleteWorkflow" + }, + { + "target": "com.render.api#ListWorkflowVersions" + }, + { + "target": "com.render.api#CreateWorkflowVersion" + }, + { + "target": "com.render.api#GetWorkflowVersion" + }, + { + "target": "com.render.api#ListTasks" + }, + { + "target": "com.render.api#GetTask" + }, + { + "target": "com.render.api#ListTaskRuns" + }, + { + "target": "com.render.api#CreateTask" + }, + { + "target": "com.render.api#StreamTaskRunsEvents" + }, + { + "target": "com.render.api#GetTaskRun" + }, + { + "target": "com.render.api#CancelTaskRun" + } + ], + "traits": { + "smithy.api#title": "Render Public API", + "smithy.api#documentation": "Manage everything about your Render services" + } + } + } +} diff --git a/packages/render/package.json b/packages/render/package.json new file mode 100644 index 000000000..673c40532 --- /dev/null +++ b/packages/render/package.json @@ -0,0 +1,85 @@ +{ + "name": "@distilled.cloud/render", + "version": "1.0.0-rc.8", + "repository": { + "type": "git", + "url": "https://github.com/alchemy-run/distilled", + "directory": "packages/render" + }, + "license": "Apache-2.0", + "type": "module", + "sideEffects": false, + "files": [ + "lib", + "src" + ], + "exports": { + ".": { + "types": "./lib/index.d.ts", + "bun": "./src/index.ts", + "worker": "./src/index.ts", + "default": "./lib/index.js" + }, + "./Credentials": { + "types": "./lib/credentials.d.ts", + "bun": "./src/credentials.ts", + "worker": "./src/credentials.ts", + "default": "./lib/credentials.js" + }, + "./Errors": { + "types": "./lib/errors.d.ts", + "bun": "./src/errors.ts", + "worker": "./src/errors.ts", + "default": "./lib/errors.js" + }, + "./Traits": { + "types": "./lib/traits.d.ts", + "bun": "./src/traits.ts", + "worker": "./src/traits.ts", + "default": "./lib/traits.js" + }, + "./Pagination": { + "types": "./lib/pagination.d.ts", + "bun": "./src/pagination.ts", + "worker": "./src/pagination.ts", + "default": "./lib/pagination.js" + }, + "./Protocol": { + "types": "./lib/protocol.d.ts", + "bun": "./src/protocol.ts", + "worker": "./src/protocol.ts", + "default": "./lib/protocol.js" + }, + "./Retry": { + "types": "./lib/retry.d.ts", + "bun": "./src/retry.ts", + "worker": "./src/retry.ts", + "default": "./lib/retry.js" + }, + "./*": { + "types": "./lib/services/*.d.ts", + "bun": "./src/services/*.ts", + "worker": "./src/services/*.ts", + "default": "./lib/services/*.js" + } + }, + "scripts": { + "build": "tsc -b", + "convert": "bun scripts/convert.ts", + "generate": "bun scripts/convert.ts && bun scripts/generate.ts", + "typecheck": "tsc -p tsconfig.json", + "specs:fetch": "git submodule update --force --init --depth=1 specs/spec-mirror-render", + "specs:update": "git submodule update --remote --force --depth=1 specs/spec-mirror-render" + }, + "dependencies": { + "@distilled.cloud/core": "workspace:*" + }, + "devDependencies": { + "@types/bun": "catalog:tooling", + "@types/node": "catalog:tooling", + "@effect/platform-bun": "catalog:effect" + }, + "peerDependencies": { + "effect": "catalog:effect" + } +} diff --git a/packages/render/scripts/convert.ts b/packages/render/scripts/convert.ts new file mode 100644 index 000000000..3a88e3088 --- /dev/null +++ b/packages/render/scripts/convert.ts @@ -0,0 +1,35 @@ +#!/usr/bin/env bun +/** + * convert — turn the Render OpenAPI spec into a Smithy 2.0 JSON model. + * + * Input: specs/spec-mirror-render/specs/openapi.json (spec submodule) + * patches/*.patch.json (RFC-6902 patches to the OpenAPI document) + * Output: .generated-specs/render.json + * + * The OpenAPI→Smithy converter lives in + * `@distilled.cloud/core/codegen/openapi`; this script is Render's pipeline + * config. `scripts/generate.ts` compiles the model into src/services. + */ +import * as path from "node:path"; +import { runOpenApiConvert } from "@distilled.cloud/core/codegen/openapi-cli"; + +await runOpenApiConvert({ + root: path.resolve(import.meta.dir, ".."), + specs: [ + { + name: "render", + specPath: "specs/spec-mirror-render/specs/openapi.json", + }, + ], + // OpenAPI-document patches (flat patches/*.patch.json). The smithy-model + // patch chain in generate.ts is disabled (`patchesDir: false`). + patchesDir: "patches", + options: { + namespace: "com.render.api", + serviceName: "Render", + skipDeprecated: true, + // Cache-purge / queued-deploy answers 202; list-snapshots answers 201 + // (already default). Without 202 those ops would have no success schema. + successStatuses: ["200", "201", "202", "204"], + }, +}); diff --git a/packages/render/scripts/generate.ts b/packages/render/scripts/generate.ts new file mode 100644 index 000000000..dfe9dc23a --- /dev/null +++ b/packages/render/scripts/generate.ts @@ -0,0 +1,96 @@ +#!/usr/bin/env bun +/** + * generate — turn the Smithy JSON model in .generated-specs into the Render + * Effect SDK. + * + * Input: .generated-specs/render.json (written by scripts/convert.ts) + * Output: src/services/render.ts + src/services/index.ts + * + * The smithy→SDK compiler and CLI pipeline live in + * `@distilled.cloud/core/codegen`; this script is Render's provider spec. + * Render keeps the wire's camelCase member names on the TS surface, so no + * member renaming or wire dictionaries appear here. + */ +import type { SdkSpec } from "@distilled.cloud/core/codegen/generator"; +import { runGeneratorCli } from "@distilled.cloud/core/codegen/cli"; + +const NULLABLE_TRAIT = "com.distilled.openapi#nullable"; +const ERROR_MATCHERS_TRAIT = "com.distilled.openapi#errorMatchers"; +const RAW_RESPONSE_TRAIT = "com.distilled.openapi#rawResponse"; +const SENSITIVE_TRAIT = "smithy.api#sensitive"; + +/** Render's provider spec for the shared smithy→SDK compiler. */ +const renderSpec: SdkSpec = { + nullableTrait: NULLABLE_TRAIT, + errorMatchersTrait: ERROR_MATCHERS_TRAIT, + + extraBindings: [ + { + // Sole member of a synthesized wrapper for bare array/scalar response + // bodies; as the response's only member, the response IS the payload. + trait: RAW_RESPONSE_TRAIT, + binding: "rawResponse", + pipe: "T.RawResponse()", + rootPipe: "T.RawResponseRoot()", + }, + ], + + // Sensitive strings (tokens, passwords, API keys): the schema member + // carries T.SensitiveValue; the REST protocol delivers Redacted values + // and accepts string | Redacted on input. + memberTraitPipes: { + [SENSITIVE_TRAIT]: "T.SensitiveValue", + }, + memberTsType: (m) => + SENSITIVE_TRAIT in m.traits + ? `string | Redacted.Redacted${m.nullable ? " | null" : ""}` + : undefined, + + // Unions surface as TS type unions over an opaque schema — the REST + // protocol passes union content through verbatim (wire names ARE the TS + // names for Render), so no runtime case discrimination is needed. + union: ({ name, caseTargets, tsRef }) => [ + `export type ${name} = ${caseTargets.map(tsRef).join(" | ") || "unknown"};`, + `export const ${name} = /*@__PURE__*/ S.Unknown as any as S.Schema<${name}>;\n`, + ], + + // Converter-stamped cursor pagination (`cursor` in, `pagination.cursor` + // out). Most Render lists are a bare array of `{ cursor, }` + // and are left unstamped — tagging them would un-collapse the raw-array + // wrapper into `{ body: [...] }`. `paginateRender` walks those arrays + // when a caller uses it by hand. + paginationProfiles: { + cursor: { + strategy: "paginateCursor", + itemsFallback: "items", + }, + }, + + operationDecl: { + contextType: "RenderOpContext", + commonErrorType: "RenderOpError", + commonErrorClasses: ["UnknownRenderError"], + protocol: "RenderProtocol", + retry: "Retry.Retry", + }, + + sourceNote: ".generated-specs (specs/spec-mirror-render)", + + // Sensitive member types reference Redacted; pull the import in when used. + postProcess: (code) => + code.includes("Redacted.Redacted<") + ? code.replace( + `import * as S from "@distilled.cloud/core/schema";\n`, + `import * as S from "@distilled.cloud/core/schema";\nimport * as Redacted from "effect/Redacted";\n`, + ) + : code, +}; + +runGeneratorCli({ + description: "Generate the Render Effect SDK from the Smithy model", + root: `${import.meta.dir}/..`, + // patches/ holds OpenAPI-document patches consumed by scripts/convert.ts; + // there is no smithy-model patch chain. + patchesDir: false, + spec: () => renderSpec, +}); diff --git a/packages/render/src/credentials.ts b/packages/render/src/credentials.ts new file mode 100644 index 000000000..a83730d0e --- /dev/null +++ b/packages/render/src/credentials.ts @@ -0,0 +1,57 @@ +/** + * Render credentials — hand-written. + * + * The `Credentials` service holds an *effect* that resolves the current + * credentials on every request (the protocol layer resolves it per request + * on the calling fiber). Auth is a Render API key sent as + * `Authorization: Bearer `. + */ +import * as Context from "effect/Context"; +import * as Effect from "effect/Effect"; +import * as Layer from "effect/Layer"; +import * as Redacted from "effect/Redacted"; +import { ConfigError } from "@distilled.cloud/core/errors"; + +export const DEFAULT_API_BASE_URL = "https://api.render.com/v1"; + +export interface Config { + readonly apiKey: Redacted.Redacted; + readonly apiBaseUrl: string; +} + +export class Credentials extends Context.Service< + Credentials, + Effect.Effect +>()("RenderCredentials") {} + +/** Layer from a plain API key + optional base URL. */ +export const fromApiKey = (config: { + readonly apiKey: string; + readonly apiBaseUrl?: string; +}): Layer.Layer => + Layer.succeed( + Credentials, + Effect.succeed({ + apiKey: Redacted.make(config.apiKey), + apiBaseUrl: config.apiBaseUrl ?? DEFAULT_API_BASE_URL, + }), + ); + +/** Reads RENDER_API_KEY (required) and RENDER_API_BASE_URL (optional). */ +export const CredentialsFromEnv: Layer.Layer = Layer.succeed( + Credentials, + Effect.gen(function* () { + const apiKey = process.env.RENDER_API_KEY; + + if (!apiKey) { + return yield* new ConfigError({ + message: "RENDER_API_KEY environment variable is required", + }); + } + + return { + apiKey: Redacted.make(apiKey), + apiBaseUrl: process.env.RENDER_API_BASE_URL ?? DEFAULT_API_BASE_URL, + }; + }).pipe(Effect.orDie), +); diff --git a/packages/render/src/errors.ts b/packages/render/src/errors.ts new file mode 100644 index 000000000..65c64d376 --- /dev/null +++ b/packages/render/src/errors.ts @@ -0,0 +1,50 @@ +/** + * Render-specific error types. + * + * Re-exports the common HTTP errors from core and adds the Render fallback + * errors. Note the generated service module additionally defines its own + * per-status matcher classes (BadRequest/NotFound/…) for the statuses each + * operation declares — those share `_tag`s with the core classes here, so + * `catchTag` works against either. + */ +export { + BadGateway, + BadRequest, + Conflict, + ConfigError, + Forbidden, + GatewayTimeout, + InternalServerError, + Locked, + NotFound, + ServiceUnavailable, + TooManyRequests, + Unauthorized, + UnprocessableEntity, + HTTP_STATUS_MAP, + DEFAULT_ERRORS, + API_ERRORS, +} from "@distilled.cloud/core/errors"; +export type { DefaultErrors } from "@distilled.cloud/core/errors"; + +import * as Schema from "effect/Schema"; +import * as Category from "@distilled.cloud/core/category"; + +/** Unknown Render error — returned when nothing else matches the failure. */ +export class UnknownRenderError extends Schema.TaggedError()( + "UnknownRenderError", + { + code: Schema.optional(Schema.String), + message: Schema.optional(Schema.String), + body: Schema.Unknown, + }, +).pipe(Category.withServerError) {} + +/** Schema parse error wrapper. */ +export class RenderParseError extends Schema.TaggedError()( + "RenderParseError", + { + body: Schema.Unknown, + cause: Schema.Unknown, + }, +).pipe(Category.withParseError) {} diff --git a/packages/render/src/index.ts b/packages/render/src/index.ts new file mode 100644 index 000000000..f6432ea11 --- /dev/null +++ b/packages/render/src/index.ts @@ -0,0 +1,36 @@ +/** + * @distilled.cloud/render — Render SDK for Effect. + * + * `./services` is generated by `scripts/generate.ts` from the Smithy model + * in `.generated-specs` (written by `scripts/convert.ts` from the OpenAPI + * spec). Everything else in this folder is hand-written. + * + * @example + * ```ts + * import * as Render from "@distilled.cloud/render"; + * + * const services = yield* Render.Services.render.listServices({}); + * ``` + */ +export * from "./credentials.ts"; +export * from "./errors.ts"; +export * as T from "./traits.ts"; +export { + RenderProtocol, + type RenderOpError, + type RenderOpContext, +} from "./protocol.ts"; +export { paginateCursor, paginateRender } from "./pagination.ts"; +export * as Retry from "./retry.ts"; +export * as Services from "./services/index.ts"; +// Operations (and their request/response types) are importable straight off +// the package root. The service-local typed error classes shadow the +// same-named shared ones from ./errors.ts — the ops actually raise the +// service-local classes. +export * from "./services/render.ts"; +export { + BadRequest, + Conflict, + Forbidden, + NotFound, +} from "./services/render.ts"; diff --git a/packages/render/src/pagination.ts b/packages/render/src/pagination.ts new file mode 100644 index 000000000..3200ec43e --- /dev/null +++ b/packages/render/src/pagination.ts @@ -0,0 +1,66 @@ +/** + * Render pagination — hand-written. + * + * Render's list operations are cursor-mode (`cursor`/`limit` in). Most lists + * return a bare array of `{ cursor, }` objects; the next page is + * requested with the last item's `cursor`. The converter does not stamp + * those lists as paginated (that would un-collapse the raw-array wrapper), + * so {@link paginateRender} is for callers that walk the cursor by hand. + */ +import * as Effect from "effect/Effect"; +import * as Stream from "effect/Stream"; +import * as Pagination from "@distilled.cloud/core/pagination"; + +export { paginateCursor } from "@distilled.cloud/core/pagination"; + +/** + * Walk forward with `cursor` set to the last item's `cursor` until a page + * comes back empty or the cursor does not advance. + */ +export const paginateRender: Pagination.PaginationStrategy = ( + operation, + input, + pagination, +) => { + const inputToken = pagination.inputToken; + if (!inputToken) { + return Stream.die( + new Error("Render cursor pagination requires inputToken"), + ); + } + const itemsPath = pagination.items ?? "body"; + + type State = { cursor: string | undefined; done: boolean }; + const startCursor = + typeof input[inputToken] === "string" + ? (input[inputToken] as string) + : undefined; + + return Stream.unfold({ cursor: startCursor, done: false } as State, (state) => + Effect.gen(function* () { + if (state.done) return undefined; + + const requestPayload = { + ...input, + ...(state.cursor ? { [inputToken]: state.cursor } : {}), + } as typeof input; + const response = yield* operation(requestPayload); + const items = Array.isArray(response) + ? response + : Pagination.getItems(response, itemsPath); + const last = items.at(-1) as { cursor?: unknown } | undefined; + const nextCursor = + typeof last?.cursor === "string" ? last.cursor : undefined; + const stuckCursor = + state.cursor !== undefined && nextCursor === state.cursor; + + return [ + response, + { + cursor: nextCursor, + done: items.length === 0 || nextCursor === undefined || stuckCursor, + }, + ] as const; + }), + ); +}; diff --git a/packages/render/src/protocol.ts b/packages/render/src/protocol.ts new file mode 100644 index 000000000..e36b65b3b --- /dev/null +++ b/packages/render/src/protocol.ts @@ -0,0 +1,69 @@ +/** + * RenderProtocol — hand-written. + * + * Render speaks plain bearer-authenticated JSON REST (no response envelope), + * so the whole protocol is one `makeRestProtocol` call from + * `core/protocol-rest`: + * + * request: credentials → `Authorization: Bearer ` + base URL + * (default https://api.render.com/v1), resolved from the + * calling fiber on every request + * + * response: 2xx JSON is the payload (sensitive members delivered as + * `Redacted`); non-2xx `{ message }` bodies map to the + * operation's typed error classes by status, then the shared + * HTTP-status classes, then {@link UnknownRenderError}. + */ +import * as Effect from "effect/Effect"; +import type * as Layer from "effect/Layer"; +import * as Redacted from "effect/Redacted"; +import type * as HttpClient from "effect/unstable/http/HttpClient"; +import type * as HttpClientError from "effect/unstable/http/HttpClientError"; +import type * as API from "@distilled.cloud/core/api"; +import { makeRestProtocol } from "@distilled.cloud/core/protocol-rest"; +import type { API_ERRORS, ConfigError } from "@distilled.cloud/core/errors"; +import { Credentials, type Config } from "./credentials.ts"; +import { UnknownRenderError } from "./errors.ts"; + +/** + * Error channel shared by every generated Render operation. Generated + * service files annotate operations with `API.OperationMethod` explicitly so the compiler never infers + * these back out of the schema generics. + */ +export type RenderOpError = + | InstanceType<(typeof API_ERRORS)[number]> + | UnknownRenderError + | ConfigError + | HttpClientError.HttpClientError; + +/** Context (requirements) shared by every generated Render operation. */ +export type RenderOpContext = Credentials | HttpClient.HttpClient; + +export const RenderProtocol: Layer.Layer = + makeRestProtocol({ + // The Credentials service holds an effect — resolving it here (per + // request, on the calling fiber) picks up context-provided credentials. + credentials: Effect.gen(function* () { + const resolve = yield* Credentials; + return yield* resolve; + }), + baseUrl: (creds) => creds.apiBaseUrl, + headers: (creds) => ({ + Authorization: `Bearer ${Redacted.value(creds.apiKey)}`, + Accept: "application/json", + }), + // Render's error body is `{ message: string }` — the factory's default + // lenient envelope covers it. + unknownError: ({ code, message, body }) => + new UnknownRenderError({ + code: + typeof code === "string" + ? code + : code !== undefined + ? String(code) + : undefined, + message, + body, + }), + }); diff --git a/packages/render/src/retry.ts b/packages/render/src/retry.ts new file mode 100644 index 000000000..d87d2dbb5 --- /dev/null +++ b/packages/render/src/retry.ts @@ -0,0 +1,54 @@ +/** + * Render retry configuration. + * + * Defines the per-SDK `Retry` Context.Service tag that generated operations + * wire into `API.make`. Callers can install a blanket retry policy at the + * layer level and have every Render API call below it pick it up: + * + * @example + * ```ts + * import * as Render from "@distilled.cloud/render"; + * + * myEffect.pipe(Render.Retry.transient); + * Effect.provide(myEffect, Layer.succeed(Render.Retry.Retry, customPolicy)); + * ``` + */ +import * as Context from "effect/Context"; +import * as Effect from "effect/Effect"; +import * as Layer from "effect/Layer"; +import { + type Policy, + throttlingFactory, + transientFactory, +} from "@distilled.cloud/core/retry"; + +export { + type Options, + type Factory, + type Policy, + makeDefault, + jittered, + capped, + throttlingOptions, + transientOptions, + throttlingFactory, + transientFactory, +} from "@distilled.cloud/core/retry"; + +/** Context tag for configuring retry behavior of Render API calls. */ +export class Retry extends Context.Service()("RenderRetry") {} + +/** Provides a custom retry policy to every Render API call below it. */ +export const policy = (optionsOrFactory: Policy) => + Effect.provide(Layer.succeed(Retry, optionsOrFactory)); + +/** Disables all automatic retries. */ +export const none = Effect.provide( + Layer.succeed(Retry, { while: () => false }), +); + +/** Apply the throttling retry policy (retries throttling errors indefinitely). */ +export const throttling = policy(throttlingFactory); + +/** Apply the transient retry policy (retries all transient errors indefinitely). */ +export const transient = policy(transientFactory); diff --git a/packages/render/src/services/index.ts b/packages/render/src/services/index.ts new file mode 100644 index 000000000..d66d084a0 --- /dev/null +++ b/packages/render/src/services/index.ts @@ -0,0 +1,2 @@ +// AUTO-GENERATED by scripts/generate.ts. Do not edit. +export * as render from "./render.ts"; diff --git a/packages/render/src/services/render.ts b/packages/render/src/services/render.ts new file mode 100644 index 000000000..8b266e23b --- /dev/null +++ b/packages/render/src/services/render.ts @@ -0,0 +1,16386 @@ +// AUTO-GENERATED by scripts/generate.ts from .generated-specs (specs/spec-mirror-render). Do not edit. +import * as S from "@distilled.cloud/core/schema"; +import * as Redacted from "effect/Redacted"; +import * as API from "@distilled.cloud/core/api"; +import * as C from "@distilled.cloud/core/category"; +import * as T from "../traits.ts"; +import { + RenderProtocol, + type RenderOpError, + type RenderOpContext, +} from "../protocol.ts"; +import { UnknownRenderError } from "../errors.ts"; +import * as Retry from "../retry.ts"; + +export type { RenderOpError, RenderOpContext }; + +export class BadRequest + extends /*@__PURE__*/ T.applyErrorMatchers( + /*@__PURE__*/ S.TaggedError()("BadRequest", { + code: S.Number, + message: S.String, + }).pipe(C.withBadRequestError), + [{ status: 400 }], + ) {} + +export class Conflict + extends /*@__PURE__*/ T.applyErrorMatchers( + /*@__PURE__*/ S.TaggedError()("Conflict", { + code: S.Number, + message: S.String, + }).pipe(C.withConflictError), + [{ status: 409 }], + ) {} + +export class Forbidden + extends /*@__PURE__*/ T.applyErrorMatchers( + /*@__PURE__*/ S.TaggedError()("Forbidden", { + code: S.Number, + message: S.String, + }).pipe(C.withAuthError), + [{ status: 403 }], + ) {} + +export class NotFound + extends /*@__PURE__*/ T.applyErrorMatchers( + /*@__PURE__*/ S.TaggedError()("NotFound", { + code: S.Number, + message: S.String, + }).pipe(C.withBadRequestError), + [{ status: 404 }], + ) {} + +export interface AddDiskRequest { + name: string; + sizeGB: number; + mountPath: string; + serviceId: string; +} +export const AddDiskRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + name: S.String, + sizeGB: S.Number, + mountPath: S.String, + serviceId: S.String, + }).pipe(T.Http({ method: "POST", uri: "/disks", code: 200 })), +).annotate({ identifier: "AddDiskRequest" }) as any as S.Schema; + +export interface AddDiskResponse { + id: string; + name: string; + sizeGB: number; + mountPath: string; + serviceId?: string; + createdAt: string; + updatedAt: string; +} +export const AddDiskResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + sizeGB: S.Number, + mountPath: S.String, + serviceId: S.optional(S.String), + createdAt: S.String, + updatedAt: S.String, + }), +).annotate({ + identifier: "AddDiskResponse", +}) as any as S.Schema; + +export interface AddHeadersRequest { + /** The ID of the service */ + serviceId: string; + /** The request path to add the header to. Wildcards will cause headers to be applied to all matching paths. */ + path: string; + /** Header name */ + name: string; + /** Header value */ + value: string; +} +export const AddHeadersRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + path: S.String, + name: S.String, + value: S.String, + }).pipe( + T.Http({ method: "POST", uri: "/services/{serviceId}/headers", code: 200 }), + ), +).annotate({ + identifier: "AddHeadersRequest", +}) as any as S.Schema; + +export interface Header { + id: string; + path: string; + name: string; + value: string; +} +export const Header = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + path: S.String, + name: S.String, + value: S.String, + }), +).annotate({ identifier: "Header" }) as any as S.Schema
; + +export interface AddHeadersResponse { + headers?: Header; +} +export const AddHeadersResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + headers: S.optional(Header), + }), +).annotate({ + identifier: "AddHeadersResponse", +}) as any as S.Schema; + +export interface AddOrUpdateSecretFileRequest { + /** The ID of the service */ + serviceId: string; + /** The file name of the secret file */ + envVarKey: string; + content?: string; +} +export const AddOrUpdateSecretFileRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + envVarKey: S.String.pipe(T.Label()), + content: S.optional(S.String), + }).pipe( + T.Http({ + method: "PUT", + uri: "/services/{serviceId}/secret-files/{envVarKey}", + code: 200, + }), + ), +).annotate({ + identifier: "AddOrUpdateSecretFileRequest", +}) as any as S.Schema; + +export interface SecretFile { + name: string; + content: string; +} +export const SecretFile = /*@__PURE__*/ S.suspend(() => + S.Struct({ + name: S.String, + content: S.String, + }), +).annotate({ identifier: "SecretFile" }) as any as S.Schema; + +export type AddResourcesToEnvironmentRequestResourceIdsList = Array; +export const AddResourcesToEnvironmentRequestResourceIdsList = + /*@__PURE__*/ S.Array( + S.String, + ) as any as S.Schema; + +export interface AddResourcesToEnvironmentRequest { + environmentId: string; + resourceIds: AddResourcesToEnvironmentRequestResourceIdsList; +} +export const AddResourcesToEnvironmentRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + environmentId: S.String.pipe(T.Label()), + resourceIds: AddResourcesToEnvironmentRequestResourceIdsList, + }).pipe( + T.Http({ + method: "POST", + uri: "/environments/{environmentId}/resources", + code: 200, + }), + ), +).annotate({ + identifier: "AddResourcesToEnvironmentRequest", +}) as any as S.Schema; + +export type EnvironmentDatabasesIdsList = Array; +export const EnvironmentDatabasesIdsList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface CidrBlockAndDescription { + cidrBlock: string; + /** User-provided description of the CIDR block */ + description: string; +} +export const CidrBlockAndDescription = /*@__PURE__*/ S.suspend(() => + S.Struct({ + cidrBlock: S.String, + description: S.String, + }), +).annotate({ + identifier: "CidrBlockAndDescription", +}) as any as S.Schema; + +export type EnvironmentIpAllowListList = Array; +export const EnvironmentIpAllowListList = /*@__PURE__*/ S.Array( + CidrBlockAndDescription, +) as any as S.Schema; + +export type EnvironmentRedisIdsList = Array; +export const EnvironmentRedisIdsList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type EnvironmentServiceIdsList = Array; +export const EnvironmentServiceIdsList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type EnvironmentEnvGroupIdsList = Array; +export const EnvironmentEnvGroupIdsList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +/** Indicates whether an environment is `unprotected` or `protected`. Only admin users can perform destructive actions in `protected` environments. */ +export type ProtectedStatus = "unprotected" | "protected"; +export const ProtectedStatus = /*@__PURE__*/ S.String; + +export interface Environment { + id: string; + name: string; + projectId: string; + databasesIds: EnvironmentDatabasesIdsList; + ipAllowList?: EnvironmentIpAllowListList; + redisIds: EnvironmentRedisIdsList; + serviceIds: EnvironmentServiceIdsList; + envGroupIds: EnvironmentEnvGroupIdsList; + protectedStatus: ProtectedStatus; + networkIsolationEnabled: boolean; +} +export const Environment = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + projectId: S.String, + databasesIds: EnvironmentDatabasesIdsList, + ipAllowList: S.optional(EnvironmentIpAllowListList), + redisIds: EnvironmentRedisIdsList, + serviceIds: EnvironmentServiceIdsList, + envGroupIds: EnvironmentEnvGroupIdsList, + protectedStatus: ProtectedStatus, + networkIsolationEnabled: S.Boolean, + }), +).annotate({ identifier: "Environment" }) as any as S.Schema; + +export type RouteType = "redirect" | "rewrite"; +export const RouteType = /*@__PURE__*/ S.String; + +export interface AddRouteRequest { + /** The ID of the service */ + serviceId: string; + type: RouteType | (string & {}); + source: string; + destination: string; + /** Redirect and Rewrite Rules are applied in priority order starting at 0. Defaults to last in the priority list. */ + priority?: number; +} +export const AddRouteRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + type: RouteType, + source: S.String, + destination: S.String, + priority: S.optional(S.Number), + }).pipe( + T.Http({ method: "POST", uri: "/services/{serviceId}/routes", code: 200 }), + ), +).annotate({ + identifier: "AddRouteRequest", +}) as any as S.Schema; + +export interface Route { + id: string; + type: RouteType; + source: string; + destination: string; + /** Redirect and Rewrite Rules are applied in priority order starting at 0 */ + priority: number; +} +export const Route = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + type: RouteType, + source: S.String, + destination: S.String, + priority: S.Number, + }), +).annotate({ identifier: "Route" }) as any as S.Schema; + +export interface AutoscaleServiceRequestCriteriaCpu { + enabled: boolean; + /** Determines when your service will be scaled. If the average resource utilization is significantly above/below the target, we will increase/decrease the number of instances. */ + percentage: number; +} +export const AutoscaleServiceRequestCriteriaCpu = /*@__PURE__*/ S.suspend(() => + S.Struct({ + enabled: S.Boolean, + percentage: S.Number, + }), +).annotate({ + identifier: "AutoscaleServiceRequestCriteriaCpu", +}) as any as S.Schema; + +export type Cpu = AutoscaleServiceRequestCriteriaCpu; +export const Cpu = AutoscaleServiceRequestCriteriaCpu; + +export interface AutoscaleServiceRequestCriteria { + cpu: AutoscaleServiceRequestCriteriaCpu; + memory: AutoscaleServiceRequestCriteriaCpu; +} +export const AutoscaleServiceRequestCriteria = /*@__PURE__*/ S.suspend(() => + S.Struct({ + cpu: AutoscaleServiceRequestCriteriaCpu, + memory: AutoscaleServiceRequestCriteriaCpu, + }), +).annotate({ + identifier: "AutoscaleServiceRequestCriteria", +}) as any as S.Schema; + +export interface AutoscaleServiceRequest { + /** The ID of the service */ + serviceId: string; + enabled: boolean; + /** The minimum number of instances for the service */ + min: number; + /** The maximum number of instances for the service */ + max: number; + criteria: AutoscaleServiceRequestCriteria; +} +export const AutoscaleServiceRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + enabled: S.Boolean, + min: S.Number, + max: S.Number, + criteria: AutoscaleServiceRequestCriteria, + }).pipe( + T.Http({ + method: "PUT", + uri: "/services/{serviceId}/autoscaling", + code: 200, + }), + ), +).annotate({ + identifier: "AutoscaleServiceRequest", +}) as any as S.Schema; + +export type SchemaCriteriaCpu = AutoscaleServiceRequestCriteriaCpu; +export const SchemaCriteriaCpu = AutoscaleServiceRequestCriteriaCpu; + +export type SchemaCriteria = AutoscaleServiceRequestCriteria; +export const SchemaCriteria = AutoscaleServiceRequestCriteria; + +export interface Schema5 { + enabled: boolean; + /** The minimum number of instances for the service */ + min: number; + /** The maximum number of instances for the service */ + max: number; + criteria: AutoscaleServiceRequestCriteria; +} +export const Schema5 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + enabled: S.Boolean, + min: S.Number, + max: S.Number, + criteria: AutoscaleServiceRequestCriteria, + }), +).annotate({ identifier: "Schema5" }) as any as S.Schema; + +export interface CancelCronJobRunRequest { + /** The ID of the cron job */ + cronJobId: string; +} +export const CancelCronJobRunRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + cronJobId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "DELETE", uri: "/cron-jobs/{cronJobId}/runs", code: 200 }), + ), +).annotate({ + identifier: "CancelCronJobRunRequest", +}) as any as S.Schema; + +export interface CancelCronJobRunResponse {} +export const CancelCronJobRunResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "CancelCronJobRunResponse", +}) as any as S.Schema; + +export interface CancelDeployRequest { + /** The ID of the service */ + serviceId: string; + /** The ID of the deploy */ + deployId: string; +} +export const CancelDeployRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + deployId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "POST", + uri: "/services/{serviceId}/deploys/{deployId}/cancel", + code: 200, + }), + ), +).annotate({ + identifier: "CancelDeployRequest", +}) as any as S.Schema; + +export interface DeployCommit { + id?: string; + message?: string; + createdAt?: string; +} +export const DeployCommit = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.optional(S.String), + message: S.optional(S.String), + createdAt: S.optional(S.String), + }), +).annotate({ identifier: "DeployCommit" }) as any as S.Schema; + +/** Image information used when creating the deploy. Not present for Git-backed deploys */ +export interface DeployImage { + /** Image reference used when creating the deploy */ + ref?: string; + /** SHA that the image reference was resolved to when creating the deploy */ + sha?: string; + /** Name of credential used to pull the image, if provided */ + registryCredential?: string; +} +export const DeployImage = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ref: S.optional(S.String), + sha: S.optional(S.String), + registryCredential: S.optional(S.String), + }), +).annotate({ identifier: "DeployImage" }) as any as S.Schema; + +export type DeployStatus = + | "created" + | "queued" + | "build_in_progress" + | "update_in_progress" + | "live" + | "deactivated" + | "build_failed" + | "update_failed" + | "canceled" + | "pre_deploy_in_progress" + | "pre_deploy_failed"; +export const DeployStatus = /*@__PURE__*/ S.String; + +export type DeployTrigger = + | "api" + | "blueprint_sync" + | "deploy_hook" + | "deployed_by_render" + | "manual" + | "other" + | "new_commit" + | "rollback" + | "service_resumed" + | "service_updated"; +export const DeployTrigger = /*@__PURE__*/ S.String; + +export interface Deploy { + id: string; + commit?: DeployCommit; + /** Image information used when creating the deploy. Not present for Git-backed deploys */ + image?: DeployImage; + status?: DeployStatus; + trigger?: DeployTrigger; + startedAt?: string; + finishedAt?: string; + createdAt?: string; + updatedAt?: string; +} +export const Deploy = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + commit: S.optional(DeployCommit), + image: S.optional(DeployImage), + status: S.optional(DeployStatus), + trigger: S.optional(DeployTrigger), + startedAt: S.optional(S.String), + finishedAt: S.optional(S.String), + createdAt: S.optional(S.String), + updatedAt: S.optional(S.String), + }), +).annotate({ identifier: "Deploy" }) as any as S.Schema; + +export interface CancelJobRequest { + /** The ID of the service */ + serviceId: string; + /** The ID of the job */ + jobId: string; +} +export const CancelJobRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + jobId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "POST", + uri: "/services/{serviceId}/jobs/{jobId}/cancel", + code: 200, + }), + ), +).annotate({ + identifier: "CancelJobRequest", +}) as any as S.Schema; + +export type Items2 = + | "pending" + | "running" + | "succeeded" + | "failed" + | "canceled"; +export const Items2 = /*@__PURE__*/ S.String; + +export interface Schema7 { + id: string; + serviceId: string; + startCommand: string; + planId: string; + status?: Items2; + createdAt: string; + startedAt?: string; + finishedAt?: string; +} +export const Schema7 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + serviceId: S.String, + startCommand: S.String, + planId: S.String, + status: S.optional(Items2), + createdAt: S.String, + startedAt: S.optional(S.String), + finishedAt: S.optional(S.String), + }), +).annotate({ identifier: "Schema7" }) as any as S.Schema; + +export interface CancelTaskRunRequest { + /** The ID of the task run */ + taskRunId: string; +} +export const CancelTaskRunRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + taskRunId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "DELETE", uri: "/task-runs/{taskRunId}", code: 200 }), + ), +).annotate({ + identifier: "CancelTaskRunRequest", +}) as any as S.Schema; + +export interface CancelTaskRunResponse {} +export const CancelTaskRunResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "CancelTaskRunResponse", +}) as any as S.Schema; + +export interface CreateCustomDomainRequest { + /** The ID of the service */ + serviceId: string; + name: string; +} +export const CreateCustomDomainRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + name: S.String, + }).pipe( + T.Http({ + method: "POST", + uri: "/services/{serviceId}/custom-domains", + code: 200, + }), + ), +).annotate({ + identifier: "CreateCustomDomainRequest", +}) as any as S.Schema; + +export type CustomDomainDomainType = "apex" | "subdomain"; +export const CustomDomainDomainType = /*@__PURE__*/ S.String; + +export type CustomDomainVerificationStatus = "verified" | "unverified"; +export const CustomDomainVerificationStatus = /*@__PURE__*/ S.String; + +export interface CustomDomainServer { + id?: string; + name?: string; +} +export const CustomDomainServer = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.optional(S.String), + name: S.optional(S.String), + }), +).annotate({ + identifier: "CustomDomainServer", +}) as any as S.Schema; + +export interface CustomDomain { + id: string; + name: string; + domainType: CustomDomainDomainType; + publicSuffix: string; + redirectForName: string; + verificationStatus: CustomDomainVerificationStatus; + createdAt: string; + server?: CustomDomainServer; +} +export const CustomDomain = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + domainType: CustomDomainDomainType, + publicSuffix: S.String, + redirectForName: S.String, + verificationStatus: CustomDomainVerificationStatus, + createdAt: S.String, + server: S.optional(CustomDomainServer), + }), +).annotate({ identifier: "CustomDomain" }) as any as S.Schema; + +export type CreateCustomDomainResponseBodyList = Array; +export const CreateCustomDomainResponseBodyList = /*@__PURE__*/ S.Array( + CustomDomain, +) as any as S.Schema; + +export type CreateCustomDomainResponse = CreateCustomDomainResponseBodyList; +export const CreateCustomDomainResponse = /*@__PURE__*/ S.suspend(() => + CreateCustomDomainResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "CreateCustomDomainResponse", +}) as any as S.Schema; + +/** Defaults to "oregon" */ +export type Region = "frankfurt" | "oregon" | "ohio" | "singapore" | "virginia"; +export const Region = /*@__PURE__*/ S.String; + +/** Environments to scope the dedicated IP set to. If omitted or empty, it applies to all services in the workspace within its region. */ +export type CreateDedicatedIpRequestEnvironmentIdsList = Array; +export const CreateDedicatedIpRequestEnvironmentIdsList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface CreateDedicatedIpRequest { + /** Name for the dedicated IP set. */ + name: string; + /** Free-form description for the dedicated IP set. */ + description?: string; + /** The ID of the workspace that will own this dedicated IP set. */ + ownerId: string; + region: Region | (string & {}); + /** Environments to scope the dedicated IP set to. If omitted or empty, it applies to all services in the workspace within its region. */ + environmentIds?: CreateDedicatedIpRequestEnvironmentIdsList; +} +export const CreateDedicatedIpRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + name: S.String, + description: S.optional(S.String), + ownerId: S.String, + region: Region, + environmentIds: S.optional(CreateDedicatedIpRequestEnvironmentIdsList), + }).pipe(T.Http({ method: "POST", uri: "/dedicated-ips", code: 200 })), +).annotate({ + identifier: "CreateDedicatedIpRequest", +}) as any as S.Schema; + +/** Environments this dedicated IP set applies to. If empty, it applies to all services in the workspace within its region. */ +export type DedicatedIPEnvironmentIdsList = Array; +export const DedicatedIPEnvironmentIdsList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +/** The IPv4 addresses assigned to this dedicated IP set. */ +export type DedicatedIPIpsList = Array; +export const DedicatedIPIpsList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +/** Current status of a dedicated IP set. */ +export type DedicatedIPStatus = + | "UNKNOWN" + | "CREATING" + | "PENDING" + | "RUNNING" + | "FAILED" + | "DELETING" + | "DELETED"; +export const DedicatedIPStatus = /*@__PURE__*/ S.String; + +export interface DedicatedIP { + /** Unique identifier for this dedicated IP set. */ + id: string; + /** Descriptive name for this dedicated IP set. */ + name: string; + /** Free-form description for this dedicated IP set. */ + description: string; + /** The ID of the workspace that owns this dedicated IP set. */ + ownerId: string; + region: Region; + /** Environments this dedicated IP set applies to. If empty, it applies to all services in the workspace within its region. */ + environmentIds: DedicatedIPEnvironmentIdsList; + /** The IPv4 addresses assigned to this dedicated IP set. */ + ips: DedicatedIPIpsList; + status: DedicatedIPStatus; + /** Time the dedicated IP set was created. */ + createdAt: string; + /** Time the dedicated IP set was last updated. */ + updatedAt?: string; +} +export const DedicatedIP = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + description: S.String, + ownerId: S.String, + region: Region, + environmentIds: DedicatedIPEnvironmentIdsList, + ips: DedicatedIPIpsList, + status: DedicatedIPStatus, + createdAt: S.String, + updatedAt: S.optional(S.String), + }), +).annotate({ identifier: "DedicatedIP" }) as any as S.Schema; + +/** If `clear`, Render clears the service's build cache before deploying. This can be useful if you're experiencing issues with your build. */ +export type CreateDeployRequestClearCache = "clear" | "do_not_clear"; +export const CreateDeployRequestClearCache = /*@__PURE__*/ S.String; + +/** Controls deployment behavior when triggering a deploy. - `deploy_only`: Deploy the last successful build without rebuilding (minimizes downtime) - `build_and_deploy`: Build new code and deploy it (default behavior when not specified) **Note:** `deploy_only` cannot be combined with `commitId`, `imageUrl` or `clearCache` parameters, as those are build related fields. */ +export type DeployMode = "deploy_only" | "build_and_deploy"; +export const DeployMode = /*@__PURE__*/ S.String; + +export interface CreateDeployRequest { + /** The ID of the service */ + serviceId: string; + /** If `clear`, Render clears the service's build cache before deploying. This can be useful if you're experiencing issues with your build. */ + clearCache?: CreateDeployRequestClearCache | (string & {}); + /** The SHA of a specific Git commit to deploy for a service. Defaults to the latest commit on the service's connected branch. Note that deploying a specific commit with this endpoint does not disable autodeploys for the service. You can toggle autodeploys for your service with the [Update service](https://api-docs.render.com/reference/update-service) endpoint or in the Render Dashboard. Not supported for cron jobs. */ + commitId?: string; + /** The URL of the image to deploy for an image-backed service. The host, repository, and image name all must match the currently configured image for the service. */ + imageUrl?: string; + /** Deployment mode controlling build and deploy behavior. Defaults to `build_and_deploy` when not specified. **Validation:** `deploy_mode` cannot be combined with `commitId` or `imageUrl` or `clearCache`. */ + deployMode?: DeployMode | (string & {}); +} +export const CreateDeployRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + clearCache: S.optional(CreateDeployRequestClearCache), + commitId: S.optional(S.String), + imageUrl: S.optional(S.String), + deployMode: S.optional(DeployMode), + }).pipe( + T.Http({ method: "POST", uri: "/services/{serviceId}/deploys", code: 200 }), + ), +).annotate({ + identifier: "CreateDeployRequest", +}) as any as S.Schema; + +export interface SchemaItemCase0 { + key: string; + value: string; +} +export const SchemaItemCase0 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + key: S.String, + value: S.String, + }), +).annotate({ + identifier: "SchemaItemCase0", +}) as any as S.Schema; + +export interface SchemaItemCase1 { + key: string; + /** If true, Render generates a strong random value for this environment variable on creation. Cannot be combined with `value`. */ + generateValue: boolean; +} +export const SchemaItemCase1 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + key: S.String, + generateValue: S.Boolean, + }), +).annotate({ + identifier: "SchemaItemCase1", +}) as any as S.Schema; + +export type SchemaItem = SchemaItemCase0 | SchemaItemCase1; +export const SchemaItem = + /*@__PURE__*/ S.Unknown as any as S.Schema; + +export type Schema6 = Array; +export const Schema6 = /*@__PURE__*/ S.Array( + SchemaItem, +) as any as S.Schema; + +export interface Items { + name: string; + content: string; +} +export const Items = /*@__PURE__*/ S.suspend(() => + S.Struct({ + name: S.String, + content: S.String, + }), +).annotate({ identifier: "Items" }) as any as S.Schema; + +export type CreateEnvGroupRequestSecretFilesList = Array; +export const CreateEnvGroupRequestSecretFilesList = /*@__PURE__*/ S.Array( + Items, +) as any as S.Schema; + +export type CreateEnvGroupRequestServiceIdsList = Array; +export const CreateEnvGroupRequestServiceIdsList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface CreateEnvGroupRequest { + name: string; + ownerId: string; + envVars: Schema6; + secretFiles?: CreateEnvGroupRequestSecretFilesList; + serviceIds?: CreateEnvGroupRequestServiceIdsList; + environmentId?: string; +} +export const CreateEnvGroupRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + name: S.String, + ownerId: S.String, + envVars: Schema6, + secretFiles: S.optional(CreateEnvGroupRequestSecretFilesList), + serviceIds: S.optional(CreateEnvGroupRequestServiceIdsList), + environmentId: S.optional(S.String), + }).pipe(T.Http({ method: "POST", uri: "/env-groups", code: 200 })), +).annotate({ + identifier: "CreateEnvGroupRequest", +}) as any as S.Schema; + +export type ServiceTypeShort = "static" | "web" | "pserv" | "worker" | "cron"; +export const ServiceTypeShort = /*@__PURE__*/ S.String; + +export interface EnvGroupLink { + id: string; + name: string; + type: ServiceTypeShort; +} +export const EnvGroupLink = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + type: ServiceTypeShort, + }), +).annotate({ identifier: "EnvGroupLink" }) as any as S.Schema; + +/** List of serviceIds linked to the envGroup */ +export type CreateEnvGroupResponseServiceLinksList = Array; +export const CreateEnvGroupResponseServiceLinksList = /*@__PURE__*/ S.Array( + EnvGroupLink, +) as any as S.Schema; + +export interface EnvVar { + key: string; + value: string; +} +export const EnvVar = /*@__PURE__*/ S.suspend(() => + S.Struct({ + key: S.String, + value: S.String, + }), +).annotate({ identifier: "EnvVar" }) as any as S.Schema; + +export type CreateEnvGroupResponseEnvVarsList = Array; +export const CreateEnvGroupResponseEnvVarsList = /*@__PURE__*/ S.Array( + EnvVar, +) as any as S.Schema; + +export type CreateEnvGroupResponseSecretFilesList = Array; +export const CreateEnvGroupResponseSecretFilesList = /*@__PURE__*/ S.Array( + SecretFile, +) as any as S.Schema; + +export interface CreateEnvGroupResponse { + id: string; + name: string; + ownerId: string; + createdAt: string; + updatedAt: string; + /** List of serviceIds linked to the envGroup */ + serviceLinks: CreateEnvGroupResponseServiceLinksList; + environmentId?: string; + envVars: CreateEnvGroupResponseEnvVarsList; + secretFiles: CreateEnvGroupResponseSecretFilesList; +} +export const CreateEnvGroupResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + ownerId: S.String, + createdAt: S.String, + updatedAt: S.String, + serviceLinks: CreateEnvGroupResponseServiceLinksList, + environmentId: S.optional(S.String), + envVars: CreateEnvGroupResponseEnvVarsList, + secretFiles: CreateEnvGroupResponseSecretFilesList, + }), +).annotate({ + identifier: "CreateEnvGroupResponse", +}) as any as S.Schema; + +export type CreateEnvironmentRequestIpAllowListList = + Array; +export const CreateEnvironmentRequestIpAllowListList = /*@__PURE__*/ S.Array( + CidrBlockAndDescription, +) as any as S.Schema; + +export interface CreateEnvironmentRequest { + name: string; + projectId: string; + protectedStatus?: ProtectedStatus | (string & {}); + networkIsolationEnabled?: boolean; + ipAllowList?: CreateEnvironmentRequestIpAllowListList; +} +export const CreateEnvironmentRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + name: S.String, + projectId: S.String, + protectedStatus: S.optional(ProtectedStatus), + networkIsolationEnabled: S.optional(S.Boolean), + ipAllowList: S.optional(CreateEnvironmentRequestIpAllowListList), + }).pipe(T.Http({ method: "POST", uri: "/environments", code: 200 })), +).annotate({ + identifier: "CreateEnvironmentRequest", +}) as any as S.Schema; + +export type KeyValuePlan = + | "free" + | "starter" + | "standard" + | "pro" + | "pro_plus" + | "custom" + | "256mb" + | "1g" + | "5g" + | "10g" + | "20g" + | "40g"; +export const KeyValuePlan = /*@__PURE__*/ S.String; + +/** The eviction policy for the Key Value instance */ +export type MaxmemoryPolicy = + | "noeviction" + | "allkeys_lfu" + | "allkeys_lru" + | "allkeys_random" + | "volatile_lfu" + | "volatile_lru" + | "volatile_random" + | "volatile_ttl"; +export const MaxmemoryPolicy = /*@__PURE__*/ S.String; + +/** The persistence mode for the Key Value instance. The default for paid instances is journal_snapshot (both journaling and snapshots). Only turn off persistence if you're using this Key Value instance as a cache and are okay with losing data. Free instances do not have persistence. */ +export type PersistenceMode = "journal_snapshot" | "snapshot" | "off"; +export const PersistenceMode = /*@__PURE__*/ S.String; + +export type CreateKeyValueRequestIpAllowListList = + Array; +export const CreateKeyValueRequestIpAllowListList = /*@__PURE__*/ S.Array( + CidrBlockAndDescription, +) as any as S.Schema; + +export interface CreateKeyValueRequest { + /** The name of the Key Value instance */ + name: string; + /** The ID of the owner of the Key Value instance */ + ownerId: string; + plan: KeyValuePlan | (string & {}); + region?: Region | (string & {}); + environmentId?: string; + maxmemoryPolicy?: MaxmemoryPolicy | (string & {}); + persistenceMode?: PersistenceMode | (string & {}); + ipAllowList?: CreateKeyValueRequestIpAllowListList; +} +export const CreateKeyValueRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + name: S.String, + ownerId: S.String, + plan: KeyValuePlan, + region: S.optional(Region), + environmentId: S.optional(S.String), + maxmemoryPolicy: S.optional(MaxmemoryPolicy), + persistenceMode: S.optional(PersistenceMode), + ipAllowList: S.optional(CreateKeyValueRequestIpAllowListList), + }).pipe(T.Http({ method: "POST", uri: "/key-value", code: 200 })), +).annotate({ + identifier: "CreateKeyValueRequest", +}) as any as S.Schema; + +export type DatabaseStatus = + | "creating" + | "available" + | "unavailable" + | "config_restart" + | "suspended" + | "maintenance_scheduled" + | "maintenance_in_progress" + | "recovery_failed" + | "recovery_in_progress" + | "unknown" + | "updating_instance"; +export const DatabaseStatus = /*@__PURE__*/ S.String; + +export type OwnerIpAllowListList = Array; +export const OwnerIpAllowListList = /*@__PURE__*/ S.Array( + CidrBlockAndDescription, +) as any as S.Schema; + +export type OwnerType = "user" | "team"; +export const OwnerType = /*@__PURE__*/ S.String; + +export interface Owner { + id: string; + name: string; + email: string; + ipAllowList?: OwnerIpAllowListList; + /** Whether two-factor authentication is enabled for the owner. Only present if `type` is `user`. */ + twoFactorAuthEnabled?: boolean; + type: OwnerType; +} +export const Owner = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + email: S.String, + ipAllowList: S.optional(OwnerIpAllowListList), + twoFactorAuthEnabled: S.optional(S.Boolean), + type: OwnerType, + }), +).annotate({ identifier: "Owner" }) as any as S.Schema; + +/** Options for a Key Value instance */ +export interface KeyValueOptions { + maxmemoryPolicy?: string; + persistenceMode?: PersistenceMode; +} +export const KeyValueOptions = /*@__PURE__*/ S.suspend(() => + S.Struct({ + maxmemoryPolicy: S.optional(S.String), + persistenceMode: S.optional(PersistenceMode), + }), +).annotate({ + identifier: "KeyValueOptions", +}) as any as S.Schema; + +/** The IP allow list for the Key Value instance */ +export type KeyValueDetailIpAllowListList = Array; +export const KeyValueDetailIpAllowListList = /*@__PURE__*/ S.Array( + CidrBlockAndDescription, +) as any as S.Schema; + +export type Items4 = + | "scheduled" + | "in_progress" + | "user_fix_required" + | "cancelled" + | "succeeded" + | "failed"; +export const Items4 = /*@__PURE__*/ S.String; + +export interface Maintenance { + id: string; + type: string; + scheduledAt: string; + /** If present, the maintenance run cannot be scheduled for later than this date-time. */ + pendingMaintenanceBy?: string; + state: Items4; +} +export const Maintenance = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + type: S.String, + scheduledAt: S.String, + pendingMaintenanceBy: S.optional(S.String), + state: Items4, + }), +).annotate({ identifier: "Maintenance" }) as any as S.Schema; + +/** A Key Value instance */ +export interface KeyValueDetail { + /** The ID of the Key Value instance */ + id: string; + /** The creation time of the Key Value instance */ + createdAt: string; + /** The last updated time of the Key Value instance */ + updatedAt: string; + status: DatabaseStatus; + region: Region; + plan: KeyValuePlan; + /** The name of the Key Value instance */ + name: string; + owner: Owner; + options: KeyValueOptions; + /** The IP allow list for the Key Value instance */ + ipAllowList: KeyValueDetailIpAllowListList; + /** The ID of the environment the Key Value instance is associated with */ + environmentId?: string; + /** The version of Key Value */ + version: string; + maintenance?: Maintenance; +} +export const KeyValueDetail = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + createdAt: S.String, + updatedAt: S.String, + status: DatabaseStatus, + region: Region, + plan: KeyValuePlan, + name: S.String, + owner: Owner, + options: KeyValueOptions, + ipAllowList: KeyValueDetailIpAllowListList, + environmentId: S.optional(S.String), + version: S.String, + maintenance: S.optional(Maintenance), + }), +).annotate({ identifier: "KeyValueDetail" }) as any as S.Schema; + +export type CreatePostgresRequestPlan = + | "free" + | "starter" + | "standard" + | "pro" + | "pro_plus" + | "custom" + | "basic_256mb" + | "basic_1gb" + | "basic_4gb" + | "pro_4gb" + | "pro_8gb" + | "pro_16gb" + | "pro_32gb" + | "pro_64gb" + | "pro_128gb" + | "pro_192gb" + | "pro_256gb" + | "pro_384gb" + | "pro_512gb" + | "accelerated_16gb" + | "accelerated_32gb" + | "accelerated_64gb" + | "accelerated_128gb" + | "accelerated_256gb" + | "accelerated_384gb" + | "accelerated_512gb" + | "accelerated_768gb" + | "accelerated_1024gb" + | "0.1c-256mb" + | "0.5c-1g" + | "1c-2g" + | "1c-4g" + | "2c-4g" + | "2c-8g" + | "2c-16g" + | "4c-16g" + | "4c-32g" + | "8c-32g" + | "8c-64g" + | "16c-64g" + | "16c-128g" + | "32c-128g" + | "32c-256g" + | "48c-192g" + | "48c-384g" + | "64c-256g" + | "64c-512g" + | "96c-384g" + | "96c-768g" + | "128c-512g" + | "128c-1024g"; +export const CreatePostgresRequestPlan = /*@__PURE__*/ S.String; + +export type CreatePostgresRequestIpAllowListList = + Array; +export const CreatePostgresRequestIpAllowListList = /*@__PURE__*/ S.Array( + CidrBlockAndDescription, +) as any as S.Schema; + +export type PostgresParameterOverrides = { [key: string]: string | undefined }; +export const PostgresParameterOverrides = /*@__PURE__*/ S.Record( + S.String, + S.String, +) as any as S.Schema; + +export interface ReadReplicaInput { + /** The display name of the replica instance. */ + name: string; + parameterOverrides?: PostgresParameterOverrides; +} +export const ReadReplicaInput = /*@__PURE__*/ S.suspend(() => + S.Struct({ + name: S.String, + parameterOverrides: S.optional(PostgresParameterOverrides), + }), +).annotate({ + identifier: "ReadReplicaInput", +}) as any as S.Schema; + +export type ReadReplicasInput = Array; +export const ReadReplicasInput = /*@__PURE__*/ S.Array( + ReadReplicaInput, +) as any as S.Schema; + +/** The PostgreSQL version */ +export type PostgresVersion = + | "11" + | "12" + | "13" + | "14" + | "15" + | "16" + | "17" + | "18"; +export const PostgresVersion = /*@__PURE__*/ S.String; + +export interface CreatePostgresRequest { + databaseName?: string; + databaseUser?: string; + /** The Datadog API key for the Datadog agent to monitor the new database. */ + datadogAPIKey?: string; + /** Datadog region to use for monitoring the new database. Defaults to 'US1'. */ + datadogSite?: string; + /** The name of the database as it will appear in the Render Dashboard */ + name: string; + enableHighAvailability?: boolean; + environmentId?: string; + /** The ID of the workspace to create the database for */ + ownerId: string; + plan: CreatePostgresRequestPlan | (string & {}); + /** The number of gigabytes of disk space to allocate for the database */ + diskSizeGB?: number; + enableDiskAutoscaling?: boolean; + /** What connection pool to use (if any) out of 'pgbouncer' and 'none' */ + connectionPool?: string; + region?: Region | (string & {}); + ipAllowList?: CreatePostgresRequestIpAllowListList; + parameterOverrides?: PostgresParameterOverrides; + readReplicas?: ReadReplicasInput; + version: PostgresVersion | (string & {}); +} +export const CreatePostgresRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + databaseName: S.optional(S.String), + databaseUser: S.optional(S.String), + datadogAPIKey: S.optional(S.String), + datadogSite: S.optional(S.String), + name: S.String, + enableHighAvailability: S.optional(S.Boolean), + environmentId: S.optional(S.String), + ownerId: S.String, + plan: CreatePostgresRequestPlan, + diskSizeGB: S.optional(S.Number), + enableDiskAutoscaling: S.optional(S.Boolean), + connectionPool: S.optional(S.String), + region: S.optional(Region), + ipAllowList: S.optional(CreatePostgresRequestIpAllowListList), + parameterOverrides: S.optional(PostgresParameterOverrides), + readReplicas: S.optional(ReadReplicasInput), + version: PostgresVersion, + }).pipe(T.Http({ method: "POST", uri: "/postgres", code: 200 })), +).annotate({ + identifier: "CreatePostgresRequest", +}) as any as S.Schema; + +export type PostgresDetailIpAllowListList = Array; +export const PostgresDetailIpAllowListList = /*@__PURE__*/ S.Array( + CidrBlockAndDescription, +) as any as S.Schema; + +export type Plan2 = + | "free" + | "starter" + | "standard" + | "pro" + | "pro_plus" + | "custom" + | "basic_256mb" + | "basic_1gb" + | "basic_4gb" + | "pro_4gb" + | "pro_8gb" + | "pro_16gb" + | "pro_32gb" + | "pro_64gb" + | "pro_128gb" + | "pro_192gb" + | "pro_256gb" + | "pro_384gb" + | "pro_512gb" + | "accelerated_16gb" + | "accelerated_32gb" + | "accelerated_64gb" + | "accelerated_128gb" + | "accelerated_256gb" + | "accelerated_384gb" + | "accelerated_512gb" + | "accelerated_768gb" + | "accelerated_1024gb" + | "0.1c-256mb" + | "0.5c-1g" + | "1c-2g" + | "1c-4g" + | "2c-4g" + | "2c-8g" + | "2c-16g" + | "4c-16g" + | "4c-32g" + | "8c-32g" + | "8c-64g" + | "16c-64g" + | "16c-128g" + | "32c-128g" + | "32c-256g" + | "48c-192g" + | "48c-384g" + | "64c-256g" + | "64c-512g" + | "96c-384g" + | "96c-768g" + | "128c-512g" + | "128c-1024g"; +export const Plan2 = /*@__PURE__*/ S.String; + +export interface ReadReplica { + /** The replica instance identifier. */ + id: string; + /** The display name of the replica instance. */ + name: string; + parameterOverrides?: PostgresParameterOverrides; +} +export const ReadReplica = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + parameterOverrides: S.optional(PostgresParameterOverrides), + }), +).annotate({ identifier: "ReadReplica" }) as any as S.Schema; + +export type ReadReplicas = Array; +export const ReadReplicas = /*@__PURE__*/ S.Array( + ReadReplica, +) as any as S.Schema; + +export type DatabaseRole = "primary" | "replica"; +export const DatabaseRole = /*@__PURE__*/ S.String; + +export type PostgresDetailSuspended = "suspended" | "not_suspended"; +export const PostgresDetailSuspended = /*@__PURE__*/ S.String; + +export type SuspenderType = + | "admin" + | "billing" + | "user" + | "parent_service" + | "stuck_crashlooping" + | "hipaa_enablement" + | "unknown"; +export const SuspenderType = /*@__PURE__*/ S.String; + +export type PostgresDetailSuspendersList = Array; +export const PostgresDetailSuspendersList = /*@__PURE__*/ S.Array( + SuspenderType, +) as any as S.Schema; + +export interface PostgresDetail { + id: string; + ipAllowList: PostgresDetailIpAllowListList; + createdAt: string; + updatedAt: string; + /** The time at which the database will be expire. Applies to free tier databases only. */ + expiresAt?: string; + /** The URL to view the Postgres instance in the Render Dashboard */ + dashboardUrl: string; + databaseName: string; + databaseUser: string; + environmentId?: string; + highAvailabilityEnabled: boolean; + maintenance?: Maintenance; + name: string; + owner: Owner; + plan: Plan2; + diskSizeGB?: number; + parameterOverrides?: PostgresParameterOverrides; + primaryPostgresID?: string; + region: Region; + readReplicas: ReadReplicas; + role: DatabaseRole; + status: DatabaseStatus; + version: PostgresVersion; + suspended: PostgresDetailSuspended; + suspenders: PostgresDetailSuspendersList; + diskAutoscalingEnabled: boolean; + /** What connection pool to use (if any) out of 'pgbouncer' and 'none' */ + connectionPool: string; +} +export const PostgresDetail = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + ipAllowList: PostgresDetailIpAllowListList, + createdAt: S.String, + updatedAt: S.String, + expiresAt: S.optional(S.String), + dashboardUrl: S.String, + databaseName: S.String, + databaseUser: S.String, + environmentId: S.optional(S.String), + highAvailabilityEnabled: S.Boolean, + maintenance: S.optional(Maintenance), + name: S.String, + owner: Owner, + plan: Plan2, + diskSizeGB: S.optional(S.Number), + parameterOverrides: S.optional(PostgresParameterOverrides), + primaryPostgresID: S.optional(S.String), + region: Region, + readReplicas: ReadReplicas, + role: DatabaseRole, + status: DatabaseStatus, + version: PostgresVersion, + suspended: PostgresDetailSuspended, + suspenders: PostgresDetailSuspendersList, + diskAutoscalingEnabled: S.Boolean, + connectionPool: S.String, + }), +).annotate({ identifier: "PostgresDetail" }) as any as S.Schema; + +export interface CreatePostgresExportRequest { + postgresId: string; +} +export const CreatePostgresExportRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + postgresId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "POST", uri: "/postgres/{postgresId}/export", code: 200 }), + ), +).annotate({ + identifier: "CreatePostgresExportRequest", +}) as any as S.Schema; + +export interface CreatePostgresExportResponse {} +export const CreatePostgresExportResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "CreatePostgresExportResponse", +}) as any as S.Schema; + +export interface CreatePostgresUserRequest { + postgresId: string; + /** Name of the new user. */ + username: string; +} +export const CreatePostgresUserRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + postgresId: S.String.pipe(T.Label()), + username: S.String, + }).pipe( + T.Http({ + method: "POST", + uri: "/postgres/{postgresId}/credentials", + code: 200, + }), + ), +).annotate({ + identifier: "CreatePostgresUserRequest", +}) as any as S.Schema; + +export interface CreatePostgresUserResponse {} +export const CreatePostgresUserResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "CreatePostgresUserResponse", +}) as any as S.Schema; + +export type ProjectPOSTEnvironmentInputIpAllowListList = + Array; +export const ProjectPOSTEnvironmentInputIpAllowListList = /*@__PURE__*/ S.Array( + CidrBlockAndDescription, +) as any as S.Schema; + +export interface ProjectPOSTEnvironmentInput { + name: string; + protectedStatus?: ProtectedStatus | (string & {}); + networkIsolationEnabled?: boolean; + ipAllowList?: ProjectPOSTEnvironmentInputIpAllowListList; +} +export const ProjectPOSTEnvironmentInput = /*@__PURE__*/ S.suspend(() => + S.Struct({ + name: S.String, + protectedStatus: S.optional(ProtectedStatus), + networkIsolationEnabled: S.optional(S.Boolean), + ipAllowList: S.optional(ProjectPOSTEnvironmentInputIpAllowListList), + }), +).annotate({ + identifier: "ProjectPOSTEnvironmentInput", +}) as any as S.Schema; + +/** The environments to create when creating the project */ +export type CreateProjectRequestEnvironmentsList = + Array; +export const CreateProjectRequestEnvironmentsList = /*@__PURE__*/ S.Array( + ProjectPOSTEnvironmentInput, +) as any as S.Schema; + +export interface CreateProjectRequest { + /** The name of the project */ + name: string; + /** The ID of the owner that the project belongs to */ + ownerId: string; + /** The environments to create when creating the project */ + environments: CreateProjectRequestEnvironmentsList; +} +export const CreateProjectRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + name: S.String, + ownerId: S.String, + environments: CreateProjectRequestEnvironmentsList, + }).pipe(T.Http({ method: "POST", uri: "/projects", code: 200 })), +).annotate({ + identifier: "CreateProjectRequest", +}) as any as S.Schema; + +/** The environments associated with the project */ +export type ProjectEnvironmentIdsList = Array; +export const ProjectEnvironmentIdsList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +/** A project is a collection of environments */ +export interface Project { + /** The ID of the project */ + id: string; + createdAt: string; + updatedAt: string; + /** The name of the project */ + name: string; + owner: Owner; + /** The environments associated with the project */ + environmentIds: ProjectEnvironmentIdsList; +} +export const Project = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + createdAt: S.String, + updatedAt: S.String, + name: S.String, + owner: Owner, + environmentIds: ProjectEnvironmentIdsList, + }), +).annotate({ identifier: "Project" }) as any as S.Schema; + +/** The registry to use this credential with */ +export type RegistryCredentialRegistry = + | "GITHUB" + | "GITLAB" + | "DOCKER" + | "GOOGLE_ARTIFACT" + | "AWS_ECR"; +export const RegistryCredentialRegistry = /*@__PURE__*/ S.String; + +export interface CreateRegistryCredentialRequest { + registry: RegistryCredentialRegistry | (string & {}); + name: string; + username: string; + authToken: string; + ownerId: string; +} +export const CreateRegistryCredentialRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + registry: RegistryCredentialRegistry, + name: S.String, + username: S.String, + authToken: S.String, + ownerId: S.String, + }).pipe(T.Http({ method: "POST", uri: "/registrycredentials", code: 200 })), +).annotate({ + identifier: "CreateRegistryCredentialRequest", +}) as any as S.Schema; + +export interface RegistryCredential { + /** Unique identifier for this credential */ + id: string; + /** Descriptive name for this credential */ + name: string; + registry: RegistryCredentialRegistry | (string & {}); + /** The username associated with the credential */ + username: string; + /** Last updated time for the credential */ + updatedAt: string; +} +export const RegistryCredential = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + registry: RegistryCredentialRegistry, + username: S.String, + updatedAt: S.String, + }), +).annotate({ + identifier: "RegistryCredential", +}) as any as S.Schema; + +export type ServiceType = + | "static_site" + | "web_service" + | "private_service" + | "background_worker" + | "cron_job"; +export const ServiceType = /*@__PURE__*/ S.String; + +export type AutoDeploy = "yes" | "no"; +export const AutoDeploy = /*@__PURE__*/ S.String; + +export interface Image { + /** The ID of the owner for this image. This should match the owner of the service as well as the owner of any specified registry credential. */ + ownerId: string; + /** Optional reference to the registry credential passed to the image repository to retrieve this image. */ + registryCredentialId?: string; + /** Path to the image used for this server (e.g docker.io/library/nginx:latest). */ + imagePath: string; +} +export const Image = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.String, + registryCredentialId: S.optional(S.String), + imagePath: S.String, + }), +).annotate({ identifier: "Image" }) as any as S.Schema; + +export type BuildFilterPathsList = Array; +export const BuildFilterPathsList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type BuildFilterIgnoredPathsList = Array; +export const BuildFilterIgnoredPathsList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface BuildFilter { + paths: BuildFilterPathsList; + ignoredPaths: BuildFilterIgnoredPathsList; +} +export const BuildFilter = /*@__PURE__*/ S.suspend(() => + S.Struct({ + paths: BuildFilterPathsList, + ignoredPaths: BuildFilterIgnoredPathsList, + }), +).annotate({ identifier: "BuildFilter" }) as any as S.Schema; + +export type CreateServiceRequestSecretFilesList = Array; +export const CreateServiceRequestSecretFilesList = /*@__PURE__*/ S.Array( + Items, +) as any as S.Schema; + +export interface HeaderInput { + /** The request path to add the header to. Wildcards will cause headers to be applied to all matching paths. */ + path: string; + /** Header name */ + name: string; + /** Header value */ + value: string; +} +export const HeaderInput = /*@__PURE__*/ S.suspend(() => + S.Struct({ + path: S.String, + name: S.String, + value: S.String, + }), +).annotate({ identifier: "HeaderInput" }) as any as S.Schema; + +export type StaticSiteDetailsPOSTHeadersList = Array; +export const StaticSiteDetailsPOSTHeadersList = /*@__PURE__*/ S.Array( + HeaderInput, +) as any as S.Schema; + +/** This field has been deprecated. previews.generation should be used in its place. */ +export type PullRequestPreviewsEnabled = "yes" | "no"; +export const PullRequestPreviewsEnabled = /*@__PURE__*/ S.String; + +/** Defaults to "off" */ +export type PreviewsGeneration = "off" | "manual" | "automatic"; +export const PreviewsGeneration = /*@__PURE__*/ S.String; + +export interface Previews { + /** Defaults to "off" */ + generation?: PreviewsGeneration | (string & {}); +} +export const Previews = /*@__PURE__*/ S.suspend(() => + S.Struct({ + generation: S.optional(PreviewsGeneration), + }), +).annotate({ identifier: "Previews" }) as any as S.Schema; + +export interface RoutePost { + type: RouteType | (string & {}); + source: string; + destination: string; + /** Redirect and Rewrite Rules are applied in priority order starting at 0. Defaults to last in the priority list. */ + priority?: number; +} +export const RoutePost = /*@__PURE__*/ S.suspend(() => + S.Struct({ + type: RouteType, + source: S.String, + destination: S.String, + priority: S.optional(S.Number), + }), +).annotate({ identifier: "RoutePost" }) as any as S.Schema; + +export type StaticSiteDetailsPOSTRoutesList = Array; +export const StaticSiteDetailsPOSTRoutesList = /*@__PURE__*/ S.Array( + RoutePost, +) as any as S.Schema; + +/** Controls whether render.com subdomains are available for the service */ +export type RenderSubdomainPolicy = "enabled" | "disabled"; +export const RenderSubdomainPolicy = /*@__PURE__*/ S.String; + +export type StaticSiteDetailsPOSTIpAllowListList = + Array; +export const StaticSiteDetailsPOSTIpAllowListList = /*@__PURE__*/ S.Array( + CidrBlockAndDescription, +) as any as S.Schema; + +export interface StaticSiteDetailsPOST { + buildCommand?: string; + headers?: StaticSiteDetailsPOSTHeadersList; + /** Defaults to "public" */ + publishPath?: string; + pullRequestPreviewsEnabled?: PullRequestPreviewsEnabled | (string & {}); + previews?: Previews; + routes?: StaticSiteDetailsPOSTRoutesList; + renderSubdomainPolicy?: RenderSubdomainPolicy | (string & {}); + ipAllowList?: StaticSiteDetailsPOSTIpAllowListList; +} +export const StaticSiteDetailsPOST = /*@__PURE__*/ S.suspend(() => + S.Struct({ + buildCommand: S.optional(S.String), + headers: S.optional(StaticSiteDetailsPOSTHeadersList), + publishPath: S.optional(S.String), + pullRequestPreviewsEnabled: S.optional(PullRequestPreviewsEnabled), + previews: S.optional(Previews), + routes: S.optional(StaticSiteDetailsPOSTRoutesList), + renderSubdomainPolicy: S.optional(RenderSubdomainPolicy), + ipAllowList: S.optional(StaticSiteDetailsPOSTIpAllowListList), + }), +).annotate({ + identifier: "StaticSiteDetailsPOST", +}) as any as S.Schema; + +export interface ServiceDisk { + name: string; + mountPath: string; + /** Defaults to 1 */ + sizeGB?: number; +} +export const ServiceDisk = /*@__PURE__*/ S.suspend(() => + S.Struct({ + name: S.String, + mountPath: S.String, + sizeGB: S.optional(S.Number), + }), +).annotate({ identifier: "ServiceDisk" }) as any as S.Schema; + +/** This field has been deprecated, runtime should be used in its place. */ +export type ServiceEnv = + | "docker" + | "elixir" + | "go" + | "node" + | "python" + | "ruby" + | "rust" + | "image"; +export const ServiceEnv = /*@__PURE__*/ S.String; + +/** Runtime */ +export type ServiceRuntime = + | "docker" + | "elixir" + | "go" + | "node" + | "python" + | "ruby" + | "rust" + | "image"; +export const ServiceRuntime = /*@__PURE__*/ S.String; + +export interface DockerDetailsPOST { + dockerCommand?: string; + dockerContext?: string; + /** Defaults to "./Dockerfile" */ + dockerfilePath?: string; + registryCredentialId?: string; +} +export const DockerDetailsPOST = /*@__PURE__*/ S.suspend(() => + S.Struct({ + dockerCommand: S.optional(S.String), + dockerContext: S.optional(S.String), + dockerfilePath: S.optional(S.String), + registryCredentialId: S.optional(S.String), + }), +).annotate({ + identifier: "DockerDetailsPOST", +}) as any as S.Schema; + +/** Fields for native environment (runtime) services */ +export interface NativeEnvironmentDetailsPOST { + buildCommand: string; + startCommand: string; +} +export const NativeEnvironmentDetailsPOST = /*@__PURE__*/ S.suspend(() => + S.Struct({ + buildCommand: S.String, + startCommand: S.String, + }), +).annotate({ + identifier: "NativeEnvironmentDetailsPOST", +}) as any as S.Schema; + +export type EnvSpecificDetailsPOST = + | DockerDetailsPOST + | NativeEnvironmentDetailsPOST; +export const EnvSpecificDetailsPOST = + /*@__PURE__*/ S.Unknown as any as S.Schema; + +export interface MaintenanceMode { + enabled: boolean; + /** The page to be served when [maintenance mode](https://render.com/docs/maintenance-mode) is enabled. When empty, the default maintenance mode page is served. */ + uri: string; +} +export const MaintenanceMode = /*@__PURE__*/ S.suspend(() => + S.Struct({ + enabled: S.Boolean, + uri: S.String, + }), +).annotate({ + identifier: "MaintenanceMode", +}) as any as S.Schema; + +/** The compute plan to use. Legacy variants (`*_legacy`) identify grandfathered plans no longer offered for new services. Note that base services on any paid compute plan can't create preview instances with the `free` plan. */ +export type Plan = + | "starter" + | "starter_plus" + | "standard" + | "standard_plus" + | "pro" + | "pro_plus" + | "pro_max" + | "pro_ultra" + | "free" + | "custom" + | "starter_legacy" + | "standard_legacy" + | "standard_plus_legacy" + | "pro_legacy" + | "pro_plus_legacy" + | "0.5c-512mb" + | "1c-2g" + | "2c-4g" + | "2c-8g" + | "2c-16g" + | "4c-8g" + | "4c-16g" + | "4c-32g" + | "8c-16g" + | "8c-32g" + | "8c-64g" + | "12c-24g" + | "12c-48g" + | "12c-96g"; +export const Plan = /*@__PURE__*/ S.String; + +export type WebServiceDetailsPOSTIpAllowListList = + Array; +export const WebServiceDetailsPOSTIpAllowListList = /*@__PURE__*/ S.Array( + CidrBlockAndDescription, +) as any as S.Schema; + +export interface WebServiceDetailsPOST { + autoscaling?: Schema5; + disk?: ServiceDisk; + env?: ServiceEnv | (string & {}); + runtime: ServiceRuntime | (string & {}); + envSpecificDetails?: EnvSpecificDetailsPOST; + healthCheckPath?: string; + maintenanceMode?: MaintenanceMode; + /** Defaults to 1 */ + numInstances?: number; + /** The compute plan to use. If omitted, defaults to `0.5c-512mb` when creating a new service. */ + plan?: Plan | (string & {}); + preDeployCommand?: string; + pullRequestPreviewsEnabled?: PullRequestPreviewsEnabled | (string & {}); + previews?: Previews; + region?: Region | (string & {}); + maxShutdownDelaySeconds?: number; + renderSubdomainPolicy?: RenderSubdomainPolicy | (string & {}); + ipAllowList?: WebServiceDetailsPOSTIpAllowListList; +} +export const WebServiceDetailsPOST = /*@__PURE__*/ S.suspend(() => + S.Struct({ + autoscaling: S.optional(Schema5), + disk: S.optional(ServiceDisk), + env: S.optional(ServiceEnv), + runtime: ServiceRuntime, + envSpecificDetails: S.optional(EnvSpecificDetailsPOST), + healthCheckPath: S.optional(S.String), + maintenanceMode: S.optional(MaintenanceMode), + numInstances: S.optional(S.Number), + plan: S.optional(Plan), + preDeployCommand: S.optional(S.String), + pullRequestPreviewsEnabled: S.optional(PullRequestPreviewsEnabled), + previews: S.optional(Previews), + region: S.optional(Region), + maxShutdownDelaySeconds: S.optional(S.Number), + renderSubdomainPolicy: S.optional(RenderSubdomainPolicy), + ipAllowList: S.optional(WebServiceDetailsPOSTIpAllowListList), + }), +).annotate({ + identifier: "WebServiceDetailsPOST", +}) as any as S.Schema; + +/** Defaults to `0.5c-512mb` when creating a new service. */ +export type PaidPlan = + | "starter" + | "standard" + | "pro" + | "pro_plus" + | "pro_max" + | "pro_ultra" + | "0.5c-512mb" + | "1c-2g" + | "2c-4g" + | "2c-8g" + | "2c-16g" + | "4c-8g" + | "4c-16g" + | "4c-32g" + | "8c-16g" + | "8c-32g" + | "8c-64g" + | "12c-24g" + | "12c-48g" + | "12c-96g"; +export const PaidPlan = /*@__PURE__*/ S.String; + +export interface PrivateServiceDetailsPOST { + autoscaling?: Schema5; + disk?: ServiceDisk; + env?: ServiceEnv | (string & {}); + runtime: ServiceRuntime | (string & {}); + envSpecificDetails?: EnvSpecificDetailsPOST; + /** Defaults to 1 */ + numInstances?: number; + plan?: PaidPlan | (string & {}); + preDeployCommand?: string; + pullRequestPreviewsEnabled?: PullRequestPreviewsEnabled | (string & {}); + previews?: Previews; + region?: Region | (string & {}); + maxShutdownDelaySeconds?: number; +} +export const PrivateServiceDetailsPOST = /*@__PURE__*/ S.suspend(() => + S.Struct({ + autoscaling: S.optional(Schema5), + disk: S.optional(ServiceDisk), + env: S.optional(ServiceEnv), + runtime: ServiceRuntime, + envSpecificDetails: S.optional(EnvSpecificDetailsPOST), + numInstances: S.optional(S.Number), + plan: S.optional(PaidPlan), + preDeployCommand: S.optional(S.String), + pullRequestPreviewsEnabled: S.optional(PullRequestPreviewsEnabled), + previews: S.optional(Previews), + region: S.optional(Region), + maxShutdownDelaySeconds: S.optional(S.Number), + }), +).annotate({ + identifier: "PrivateServiceDetailsPOST", +}) as any as S.Schema; + +export type BackgroundWorkerDetailsPOST = PrivateServiceDetailsPOST; +export const BackgroundWorkerDetailsPOST = PrivateServiceDetailsPOST; + +export interface DockerDetails { + dockerCommand: string; + dockerContext: string; + dockerfilePath: string; + preDeployCommand?: string; + registryCredential?: RegistryCredential; +} +export const DockerDetails = /*@__PURE__*/ S.suspend(() => + S.Struct({ + dockerCommand: S.String, + dockerContext: S.String, + dockerfilePath: S.String, + preDeployCommand: S.optional(S.String), + registryCredential: S.optional(RegistryCredential), + }), +).annotate({ identifier: "DockerDetails" }) as any as S.Schema; + +export interface NativeEnvironmentDetails { + buildCommand: string; + startCommand: string; + preDeployCommand?: string; +} +export const NativeEnvironmentDetails = /*@__PURE__*/ S.suspend(() => + S.Struct({ + buildCommand: S.String, + startCommand: S.String, + preDeployCommand: S.optional(S.String), + }), +).annotate({ + identifier: "NativeEnvironmentDetails", +}) as any as S.Schema; + +export type EnvSpecificDetails = DockerDetails | NativeEnvironmentDetails; +export const EnvSpecificDetails = + /*@__PURE__*/ S.Unknown as any as S.Schema; + +export interface CronJobDetailsPOST { + env?: ServiceEnv | (string & {}); + runtime: ServiceRuntime | (string & {}); + envSpecificDetails?: EnvSpecificDetails; + plan?: PaidPlan | (string & {}); + region?: Region | (string & {}); + schedule: string; +} +export const CronJobDetailsPOST = /*@__PURE__*/ S.suspend(() => + S.Struct({ + env: S.optional(ServiceEnv), + runtime: ServiceRuntime, + envSpecificDetails: S.optional(EnvSpecificDetails), + plan: S.optional(PaidPlan), + region: S.optional(Region), + schedule: S.String, + }), +).annotate({ + identifier: "CronJobDetailsPOST", +}) as any as S.Schema; + +export type CreateServiceRequestServiceDetails = + | StaticSiteDetailsPOST + | WebServiceDetailsPOST + | PrivateServiceDetailsPOST + | PrivateServiceDetailsPOST + | CronJobDetailsPOST; +export const CreateServiceRequestServiceDetails = + /*@__PURE__*/ S.Unknown as any as S.Schema; + +export interface CreateServiceRequest { + type: ServiceType | (string & {}); + /** The service's name. Must be unique within the workspace. */ + name: string; + /** The ID of the workspace the service belongs to. Obtain your workspace's ID from its Settings page in the Render Dashboard. */ + ownerId: string; + /** The service's repository URL. Do not specify a branch in this string (use the `branch` parameter instead). */ + repo?: string; + autoDeploy?: AutoDeploy | (string & {}); + /** The repo branch to pull, build, and deploy. If omitted, uses the repository's default branch. */ + branch?: string; + image?: Image; + buildFilter?: BuildFilter; + rootDir?: string; + envVars?: Schema6; + secretFiles?: CreateServiceRequestSecretFilesList; + /** The ID of the environment the service belongs to, if any. Obtain an environment's ID from its Settings page in the Render Dashboard. */ + environmentId?: string; + serviceDetails?: CreateServiceRequestServiceDetails; +} +export const CreateServiceRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + type: ServiceType, + name: S.String, + ownerId: S.String, + repo: S.optional(S.String), + autoDeploy: S.optional(AutoDeploy), + branch: S.optional(S.String), + image: S.optional(Image), + buildFilter: S.optional(BuildFilter), + rootDir: S.optional(S.String), + envVars: S.optional(Schema6), + secretFiles: S.optional(CreateServiceRequestSecretFilesList), + environmentId: S.optional(S.String), + serviceDetails: S.optional(CreateServiceRequestServiceDetails), + }).pipe(T.Http({ method: "POST", uri: "/services", code: 200 })), +).annotate({ + identifier: "CreateServiceRequest", +}) as any as S.Schema; + +export type NotifySetting = "default" | "notify" | "ignore"; +export const NotifySetting = /*@__PURE__*/ S.String; + +export interface RegistryCredentialSummary { + id: string; + name: string; +} +export const RegistryCredentialSummary = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + }), +).annotate({ + identifier: "RegistryCredentialSummary", +}) as any as S.Schema; + +export type ServiceSuspended = "suspended" | "not_suspended"; +export const ServiceSuspended = /*@__PURE__*/ S.String; + +export type ServiceSuspendersList = Array; +export const ServiceSuspendersList = /*@__PURE__*/ S.Array( + SuspenderType, +) as any as S.Schema; + +export type StaticSiteDetailsIpAllowListList = Array; +export const StaticSiteDetailsIpAllowListList = /*@__PURE__*/ S.Array( + CidrBlockAndDescription, +) as any as S.Schema; + +export type Resource = RegistryCredentialSummary; +export const Resource = RegistryCredentialSummary; + +export type BuildPlan = "starter" | "performance"; +export const BuildPlan = /*@__PURE__*/ S.String; + +export interface StaticSiteDetails { + buildCommand: string; + ipAllowList?: StaticSiteDetailsIpAllowListList; + parentServer?: RegistryCredentialSummary; + publishPath: string; + pullRequestPreviewsEnabled?: PullRequestPreviewsEnabled; + previews?: Previews; + url: string; + buildPlan: BuildPlan; + renderSubdomainPolicy?: RenderSubdomainPolicy; +} +export const StaticSiteDetails = /*@__PURE__*/ S.suspend(() => + S.Struct({ + buildCommand: S.String, + ipAllowList: S.optional(StaticSiteDetailsIpAllowListList), + parentServer: S.optional(RegistryCredentialSummary), + publishPath: S.String, + pullRequestPreviewsEnabled: S.optional(PullRequestPreviewsEnabled), + previews: S.optional(Previews), + url: S.String, + buildPlan: BuildPlan, + renderSubdomainPolicy: S.optional(RenderSubdomainPolicy), + }), +).annotate({ + identifier: "StaticSiteDetails", +}) as any as S.Schema; + +export type CacheProfile = + | "no-cache" + | "origin-controlled" + | "origin-controlled-all"; +export const CacheProfile = /*@__PURE__*/ S.String; + +export interface Cache { + profile: CacheProfile | (string & {}); +} +export const Cache = /*@__PURE__*/ S.suspend(() => + S.Struct({ + profile: CacheProfile, + }), +).annotate({ identifier: "Cache" }) as any as S.Schema; + +export interface WebServiceDetailsDisk { + id: string; + name: string; + sizeGB: number; + mountPath: string; +} +export const WebServiceDetailsDisk = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + sizeGB: S.Number, + mountPath: S.String, + }), +).annotate({ + identifier: "WebServiceDetailsDisk", +}) as any as S.Schema; + +export type WebServiceDetailsIpAllowListList = Array; +export const WebServiceDetailsIpAllowListList = /*@__PURE__*/ S.Array( + CidrBlockAndDescription, +) as any as S.Schema; + +export type ServerPortProtocol = "TCP" | "UDP"; +export const ServerPortProtocol = /*@__PURE__*/ S.String; + +export interface ServerPort { + port: number; + protocol: ServerPortProtocol; +} +export const ServerPort = /*@__PURE__*/ S.suspend(() => + S.Struct({ + port: S.Number, + protocol: ServerPortProtocol, + }), +).annotate({ identifier: "ServerPort" }) as any as S.Schema; + +export type WebServiceDetailsOpenPortsList = Array; +export const WebServiceDetailsOpenPortsList = /*@__PURE__*/ S.Array( + ServerPort, +) as any as S.Schema; + +export interface WebServiceDetails { + autoscaling?: Schema5; + cache?: Cache; + disk?: WebServiceDetailsDisk; + env: ServiceEnv; + envSpecificDetails: EnvSpecificDetails; + healthCheckPath: string; + ipAllowList?: WebServiceDetailsIpAllowListList; + maintenanceMode?: MaintenanceMode; + /** For a *manually* scaled service, this is the number of instances the service is scaled to. DOES NOT indicate the number of running instances for an *autoscaled* service. */ + numInstances: number; + openPorts: WebServiceDetailsOpenPortsList; + parentServer?: RegistryCredentialSummary; + plan: Plan; + pullRequestPreviewsEnabled?: PullRequestPreviewsEnabled; + previews?: Previews; + region: Region; + runtime: ServiceRuntime; + sshAddress?: string; + url: string; + buildPlan: BuildPlan; + maxShutdownDelaySeconds?: number; + renderSubdomainPolicy?: RenderSubdomainPolicy; +} +export const WebServiceDetails = /*@__PURE__*/ S.suspend(() => + S.Struct({ + autoscaling: S.optional(Schema5), + cache: S.optional(Cache), + disk: S.optional(WebServiceDetailsDisk), + env: ServiceEnv, + envSpecificDetails: EnvSpecificDetails, + healthCheckPath: S.String, + ipAllowList: S.optional(WebServiceDetailsIpAllowListList), + maintenanceMode: S.optional(MaintenanceMode), + numInstances: S.Number, + openPorts: WebServiceDetailsOpenPortsList, + parentServer: S.optional(RegistryCredentialSummary), + plan: Plan, + pullRequestPreviewsEnabled: S.optional(PullRequestPreviewsEnabled), + previews: S.optional(Previews), + region: Region, + runtime: ServiceRuntime, + sshAddress: S.optional(S.String), + url: S.String, + buildPlan: BuildPlan, + maxShutdownDelaySeconds: S.optional(S.Number), + renderSubdomainPolicy: S.optional(RenderSubdomainPolicy), + }), +).annotate({ + identifier: "WebServiceDetails", +}) as any as S.Schema; + +export type Disk = WebServiceDetailsDisk; +export const Disk = WebServiceDetailsDisk; + +export type PrivateServiceDetailsOpenPortsList = Array; +export const PrivateServiceDetailsOpenPortsList = /*@__PURE__*/ S.Array( + ServerPort, +) as any as S.Schema; + +export interface PrivateServiceDetails { + autoscaling?: Schema5; + disk?: WebServiceDetailsDisk; + env: ServiceEnv; + envSpecificDetails: EnvSpecificDetails; + /** For a *manually* scaled service, this is the number of instances the service is scaled to. DOES NOT indicate the number of running instances for an *autoscaled* service. */ + numInstances: number; + openPorts: PrivateServiceDetailsOpenPortsList; + parentServer?: RegistryCredentialSummary; + plan: Plan; + pullRequestPreviewsEnabled?: PullRequestPreviewsEnabled; + previews?: Previews; + region: Region; + runtime: ServiceRuntime; + sshAddress?: string; + url: string; + buildPlan: BuildPlan; + maxShutdownDelaySeconds?: number; +} +export const PrivateServiceDetails = /*@__PURE__*/ S.suspend(() => + S.Struct({ + autoscaling: S.optional(Schema5), + disk: S.optional(WebServiceDetailsDisk), + env: ServiceEnv, + envSpecificDetails: EnvSpecificDetails, + numInstances: S.Number, + openPorts: PrivateServiceDetailsOpenPortsList, + parentServer: S.optional(RegistryCredentialSummary), + plan: Plan, + pullRequestPreviewsEnabled: S.optional(PullRequestPreviewsEnabled), + previews: S.optional(Previews), + region: Region, + runtime: ServiceRuntime, + sshAddress: S.optional(S.String), + url: S.String, + buildPlan: BuildPlan, + maxShutdownDelaySeconds: S.optional(S.Number), + }), +).annotate({ + identifier: "PrivateServiceDetails", +}) as any as S.Schema; + +export interface BackgroundWorkerDetails { + autoscaling?: Schema5; + disk?: WebServiceDetailsDisk; + env: ServiceEnv; + envSpecificDetails: EnvSpecificDetails; + /** For a *manually* scaled service, this is the number of instances the service is scaled to. DOES NOT indicate the number of running instances for an *autoscaled* service. */ + numInstances: number; + parentServer?: RegistryCredentialSummary; + plan: Plan; + pullRequestPreviewsEnabled?: PullRequestPreviewsEnabled; + previews?: Previews; + region: Region; + runtime: ServiceRuntime; + sshAddress?: string; + buildPlan: BuildPlan; + maxShutdownDelaySeconds?: number; +} +export const BackgroundWorkerDetails = /*@__PURE__*/ S.suspend(() => + S.Struct({ + autoscaling: S.optional(Schema5), + disk: S.optional(WebServiceDetailsDisk), + env: ServiceEnv, + envSpecificDetails: EnvSpecificDetails, + numInstances: S.Number, + parentServer: S.optional(RegistryCredentialSummary), + plan: Plan, + pullRequestPreviewsEnabled: S.optional(PullRequestPreviewsEnabled), + previews: S.optional(Previews), + region: Region, + runtime: ServiceRuntime, + sshAddress: S.optional(S.String), + buildPlan: BuildPlan, + maxShutdownDelaySeconds: S.optional(S.Number), + }), +).annotate({ + identifier: "BackgroundWorkerDetails", +}) as any as S.Schema; + +export interface CronJobDetails { + env: ServiceEnv; + envSpecificDetails: EnvSpecificDetails; + lastSuccessfulRunAt?: string; + plan: Plan; + region: Region; + runtime: ServiceRuntime; + schedule: string; + buildPlan: BuildPlan; +} +export const CronJobDetails = /*@__PURE__*/ S.suspend(() => + S.Struct({ + env: ServiceEnv, + envSpecificDetails: EnvSpecificDetails, + lastSuccessfulRunAt: S.optional(S.String), + plan: Plan, + region: Region, + runtime: ServiceRuntime, + schedule: S.String, + buildPlan: BuildPlan, + }), +).annotate({ identifier: "CronJobDetails" }) as any as S.Schema; + +export type ServiceServiceDetails = + | StaticSiteDetails + | WebServiceDetails + | PrivateServiceDetails + | BackgroundWorkerDetails + | CronJobDetails; +export const ServiceServiceDetails = + /*@__PURE__*/ S.Unknown as any as S.Schema; + +export interface Service { + id: string; + autoDeploy: AutoDeploy; + branch?: string; + buildFilter?: BuildFilter; + createdAt: string; + /** The URL to view the service in the Render Dashboard */ + dashboardUrl: string; + environmentId?: string; + imagePath?: string; + name: string; + notifyOnFail: NotifySetting; + ownerId: string; + registryCredential?: RegistryCredentialSummary; + repo?: string; + rootDir: string; + slug: string; + suspended: ServiceSuspended; + suspenders: ServiceSuspendersList; + type: ServiceType; + updatedAt: string; + serviceDetails: ServiceServiceDetails; +} +export const Service = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + autoDeploy: AutoDeploy, + branch: S.optional(S.String), + buildFilter: S.optional(BuildFilter), + createdAt: S.String, + dashboardUrl: S.String, + environmentId: S.optional(S.String), + imagePath: S.optional(S.String), + name: S.String, + notifyOnFail: NotifySetting, + ownerId: S.String, + registryCredential: S.optional(RegistryCredentialSummary), + repo: S.optional(S.String), + rootDir: S.String, + slug: S.String, + suspended: ServiceSuspended, + suspenders: ServiceSuspendersList, + type: ServiceType, + updatedAt: S.String, + serviceDetails: ServiceServiceDetails, + }), +).annotate({ identifier: "Service" }) as any as S.Schema; + +export interface ServiceAndDeploy { + service?: Service; + deployId?: string; +} +export const ServiceAndDeploy = /*@__PURE__*/ S.suspend(() => + S.Struct({ + service: S.optional(Service), + deployId: S.optional(S.String), + }), +).annotate({ + identifier: "ServiceAndDeploy", +}) as any as S.Schema; + +/** Positional arguments passed to the task function */ +export type CreateTaskRequestInputCase0List = Array; +export const CreateTaskRequestInputCase0List = /*@__PURE__*/ S.Array( + S.Unknown, +) as any as S.Schema; + +/** Named parameters passed to the task function as keyword arguments */ +export type CreateTaskRequestInputCase1Map = { + [key: string]: unknown | undefined; +}; +export const CreateTaskRequestInputCase1Map = /*@__PURE__*/ S.Record( + S.String, + S.Unknown, +) as any as S.Schema; + +/** Input data for a task. Can be either an array (for positional arguments) or an object (for named parameters). */ +export type CreateTaskRequestInput = + | CreateTaskRequestInputCase0List + | CreateTaskRequestInputCase1Map; +export const CreateTaskRequestInput = + /*@__PURE__*/ S.Unknown as any as S.Schema; + +export interface CreateTaskRequest { + /** A task slug in the format workflow-slug/task-name. An optional version can be appended (workflow-slug/task-name:version). If no version is provided, the latest version is used. Cannot be blank. */ + task: string; + /** Input data for a task. Can be either an array (for positional arguments) or an object (for named parameters). */ + input: CreateTaskRequestInput; +} +export const CreateTaskRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + task: S.String, + input: CreateTaskRequestInput, + }).pipe(T.Http({ method: "POST", uri: "/task-runs", code: 200 })), +).annotate({ + identifier: "CreateTaskRequest", +}) as any as S.Schema; + +export type Status2 = + | "pending" + | "running" + | "completed" + | "succeeded" + | "failed" + | "canceled" + | "paused"; +export const Status2 = /*@__PURE__*/ S.String; + +export interface CreateTaskResponseAttemptsItem { + /** The ID of the task run this attempt belongs to. */ + taskRunId?: string; + /** The 0-indexed attempt number. */ + attempt: number; + status: Status2; + enqueuedAt?: string; + startedAt: string; + completedAt?: string; +} +export const CreateTaskResponseAttemptsItem = /*@__PURE__*/ S.suspend(() => + S.Struct({ + taskRunId: S.optional(S.String), + attempt: S.Number, + status: Status2, + enqueuedAt: S.optional(S.String), + startedAt: S.String, + completedAt: S.optional(S.String), + }), +).annotate({ + identifier: "CreateTaskResponseAttemptsItem", +}) as any as S.Schema; + +export type CreateTaskResponseAttemptsList = + Array; +export const CreateTaskResponseAttemptsList = /*@__PURE__*/ S.Array( + CreateTaskResponseAttemptsItem, +) as any as S.Schema; + +export interface CreateTaskResponse { + id: string; + taskId: string; + status: Status2; + startedAt?: string; + completedAt?: string; + parentTaskRunId: string; + /** The 0-indexed attempt of the parent task run that spawned this task run. Omitted for root task runs and for task runs created before this field was introduced. */ + parentTaskAttempt?: number; + rootTaskRunId: string; + retries: number; + attempts: CreateTaskResponseAttemptsList; +} +export const CreateTaskResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + taskId: S.String, + status: Status2, + startedAt: S.optional(S.String), + completedAt: S.optional(S.String), + parentTaskRunId: S.String, + parentTaskAttempt: S.optional(S.Number), + rootTaskRunId: S.String, + retries: S.Number, + attempts: CreateTaskResponseAttemptsList, + }), +).annotate({ + identifier: "CreateTaskResponse", +}) as any as S.Schema; + +export type Type = + | "artifact_fetch_failed" + | "artifact_source_changed" + | "autoscaling_config_changed" + | "autoscaling_ended" + | "autoscaling_started" + | "branch_deleted" + | "build_ended" + | "build_started" + | "commit_ignored" + | "cron_job_run_ended" + | "cron_job_run_started" + | "deploy_ended" + | "deploy_started" + | "disk_created" + | "disk_updated" + | "disk_deleted" + | "image_pull_failed" + | "instance_count_changed" + | "job_run_ended" + | "maintenance_mode_enabled" + | "maintenance_mode_uri_updated" + | "maintenance_ended" + | "maintenance_started" + | "pipeline_minutes_exhausted" + | "plan_changed" + | "pre_deploy_ended" + | "pre_deploy_started" + | "server_available" + | "server_failed" + | "server_hardware_failure" + | "server_restarted" + | "service_resumed" + | "service_suspended" + | "zero_downtime_redeploy_ended" + | "zero_downtime_redeploy_started" + | "edge_cache_enabled" + | "edge_cache_disabled" + | "edge_cache_purged" + | "auto_deploy_disabled" + | "auto_deploy_enabled" + | "postgres_available" + | "postgres_backup_completed" + | "postgres_backup_failed" + | "postgres_backup_started" + | "postgres_cluster_leader_changed" + | "postgres_connection_pool_changed" + | "postgres_connection_pool_enabled_changed" + | "postgres_created" + | "postgres_disk_size_changed" + | "postgres_disk_autoscaling_enabled_changed" + | "postgres_ha_status_changed" + | "postgres_restarted" + | "postgres_unavailable" + | "postgres_upgrade_failed" + | "postgres_upgrade_started" + | "postgres_upgrade_succeeded" + | "postgres_restore_failed" + | "postgres_restore_succeeded" + | "postgres_read_replicas_changed" + | "postgres_pitr_checkpoint_started" + | "postgres_pitr_checkpoint_failed" + | "postgres_pitr_checkpoint_completed" + | "postgres_read_replica_stale" + | "postgres_wal_archive_failed" + | "key_value_available" + | "key_value_config_restart" + | "key_value_unhealthy"; +export const Type = /*@__PURE__*/ S.String; + +/** The event types that will trigger the webhook. An empty list means all event types will trigger the webhook. */ +export type CreateWebhookRequestEventFilterList = Array; +export const CreateWebhookRequestEventFilterList = /*@__PURE__*/ S.Array( + Type, +) as any as S.Schema; + +export interface CreateWebhookRequest { + /** The ID of the owner (team or personal user) whose resources should be returned */ + ownerId: string; + url: string; + name: string; + enabled: boolean; + /** The event types that will trigger the webhook. An empty list means all event types will trigger the webhook. */ + eventFilter: CreateWebhookRequestEventFilterList; +} +export const CreateWebhookRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.String, + url: S.String, + name: S.String, + enabled: S.Boolean, + eventFilter: CreateWebhookRequestEventFilterList, + }).pipe(T.Http({ method: "POST", uri: "/webhooks", code: 200 })), +).annotate({ + identifier: "CreateWebhookRequest", +}) as any as S.Schema; + +/** The event types that will trigger the webhook. An empty list means all event types will trigger the webhook. */ +export type EventFilter = Array; +export const EventFilter = /*@__PURE__*/ S.Array( + Type, +) as any as S.Schema; + +export interface CreateWebhookResponse { + id: string; + url: string; + name: string; + secret: string | Redacted.Redacted; + enabled: boolean; + eventFilter: EventFilter; +} +export const CreateWebhookResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + url: S.String, + name: S.String, + secret: S.String.pipe(T.SensitiveValue({})), + enabled: S.Boolean, + eventFilter: EventFilter, + }), +).annotate({ + identifier: "CreateWebhookResponse", +}) as any as S.Schema; + +/** The runtime environment for the workflow (e.g., node, python, etc.). */ +export type Runtime = "elixir" | "go" | "node" | "python" | "ruby"; +export const Runtime = /*@__PURE__*/ S.String; + +export interface CreateWorkflowRequestBuildConfig { + /** The branch to use for the build, if applicable. */ + branch?: string; + /** The command to run to build the workflow. */ + buildCommand: string; + /** The repository URL to use for the build. Cannot be blank. */ + repo: string; + /** The root directory of the repository to use for the build, if applicable. */ + rootDir?: string; + runtime: Runtime | (string & {}); +} +export const CreateWorkflowRequestBuildConfig = /*@__PURE__*/ S.suspend(() => + S.Struct({ + branch: S.optional(S.String), + buildCommand: S.String, + repo: S.String, + rootDir: S.optional(S.String), + runtime: Runtime, + }), +).annotate({ + identifier: "CreateWorkflowRequestBuildConfig", +}) as any as S.Schema; + +/** Defaults to "oregon" */ +export type CreateWorkflowRequestRegion = + | "frankfurt" + | "oregon" + | "ohio" + | "singapore" + | "virginia"; +export const CreateWorkflowRequestRegion = /*@__PURE__*/ S.String; + +/** Controls autodeploy behavior. "commit" deploys when a commit is pushed to the branch. "checksPass" waits for CI checks to pass before deploying. "off" disables autodeploy. */ +export type CreateWorkflowRequestAutoDeployTrigger = + | "commit" + | "off" + | "checksPass"; +export const CreateWorkflowRequestAutoDeployTrigger = /*@__PURE__*/ S.String; + +export interface CreateWorkflowRequest { + name: string; + ownerId: string; + buildConfig: CreateWorkflowRequestBuildConfig; + /** The command to run the workflow. Cannot be blank. */ + runCommand: string; + /** Defaults to "oregon" */ + region: CreateWorkflowRequestRegion | (string & {}); + /** Controls autodeploy behavior. "commit" deploys when a commit is pushed to the branch. "checksPass" waits for CI checks to pass before deploying. "off" disables autodeploy. */ + autoDeployTrigger?: CreateWorkflowRequestAutoDeployTrigger | (string & {}); + envVars?: Schema6; +} +export const CreateWorkflowRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + name: S.String, + ownerId: S.String, + buildConfig: CreateWorkflowRequestBuildConfig, + runCommand: S.String, + region: CreateWorkflowRequestRegion, + autoDeployTrigger: S.optional(CreateWorkflowRequestAutoDeployTrigger), + envVars: S.optional(Schema6), + }).pipe(T.Http({ method: "POST", uri: "/workflows", code: 200 })), +).annotate({ + identifier: "CreateWorkflowRequest", +}) as any as S.Schema; + +export interface BuildConfig { + /** The branch to use for the build, if applicable. */ + branch?: string; + /** The command to run to build the workflow. */ + buildCommand: string; + /** The repository URL to use for the build. Cannot be blank. */ + repo: string; + /** The root directory of the repository to use for the build, if applicable. */ + rootDir?: string; + runtime: Runtime; +} +export const BuildConfig = /*@__PURE__*/ S.suspend(() => + S.Struct({ + branch: S.optional(S.String), + buildCommand: S.String, + repo: S.String, + rootDir: S.optional(S.String), + runtime: Runtime, + }), +).annotate({ identifier: "BuildConfig" }) as any as S.Schema; + +/** Defaults to "oregon" */ +export type Region2 = + | "frankfurt" + | "oregon" + | "ohio" + | "singapore" + | "virginia"; +export const Region2 = /*@__PURE__*/ S.String; + +/** Controls autodeploy behavior. "commit" deploys when a commit is pushed to the branch. "checksPass" waits for CI checks to pass before deploying. "off" disables autodeploy. */ +export type AutoDeployTrigger = "commit" | "off" | "checksPass"; +export const AutoDeployTrigger = /*@__PURE__*/ S.String; + +export interface CreateWorkflowResponse { + id: string; + name: string; + ownerId: string; + createdAt: string; + updatedAt: string; + buildConfig: BuildConfig; + /** Command to run the workflow. */ + runCommand: string; + region: Region2; + environmentId?: string; + slug?: string; + autoDeployTrigger?: AutoDeployTrigger; +} +export const CreateWorkflowResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + ownerId: S.String, + createdAt: S.String, + updatedAt: S.String, + buildConfig: BuildConfig, + runCommand: S.String, + region: Region2, + environmentId: S.optional(S.String), + slug: S.optional(S.String), + autoDeployTrigger: S.optional(AutoDeployTrigger), + }), +).annotate({ + identifier: "CreateWorkflowResponse", +}) as any as S.Schema; + +export interface CreateWorkflowVersionRequest { + workflowId: string; + commit?: string; +} +export const CreateWorkflowVersionRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + workflowId: S.String, + commit: S.optional(S.String), + }).pipe(T.Http({ method: "POST", uri: "/workflowversions", code: 200 })), +).annotate({ + identifier: "CreateWorkflowVersionRequest", +}) as any as S.Schema; + +export interface CreateWorkflowVersionResponse {} +export const CreateWorkflowVersionResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "CreateWorkflowVersionResponse", +}) as any as S.Schema; + +export interface DeleteAutoscalingConfigRequest { + /** The ID of the service */ + serviceId: string; +} +export const DeleteAutoscalingConfigRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "DELETE", + uri: "/services/{serviceId}/autoscaling", + code: 200, + }), + ), +).annotate({ + identifier: "DeleteAutoscalingConfigRequest", +}) as any as S.Schema; + +export interface DeleteAutoscalingConfigResponse {} +export const DeleteAutoscalingConfigResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeleteAutoscalingConfigResponse", +}) as any as S.Schema; + +export interface DeleteCustomDomainRequest { + /** The ID of the service */ + serviceId: string; + /** The ID or name of the custom domain */ + customDomainNameOrID: string; +} +export const DeleteCustomDomainRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + customDomainNameOrID: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "DELETE", + uri: "/services/{serviceId}/custom-domains/{customDomainNameOrID}", + code: 200, + }), + ), +).annotate({ + identifier: "DeleteCustomDomainRequest", +}) as any as S.Schema; + +export interface DeleteCustomDomainResponse {} +export const DeleteCustomDomainResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeleteCustomDomainResponse", +}) as any as S.Schema; + +export interface DeleteDedicatedIpRequest { + /** The ID of the dedicated IP set */ + dedicatedIpId: string; +} +export const DeleteDedicatedIpRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + dedicatedIpId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "DELETE", + uri: "/dedicated-ips/{dedicatedIpId}", + code: 200, + }), + ), +).annotate({ + identifier: "DeleteDedicatedIpRequest", +}) as any as S.Schema; + +export interface DeleteDedicatedIpResponse {} +export const DeleteDedicatedIpResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeleteDedicatedIpResponse", +}) as any as S.Schema; + +export interface DeleteDiskRequest { + /** The ID of the disk */ + diskId: string; +} +export const DeleteDiskRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + diskId: S.String.pipe(T.Label()), + }).pipe(T.Http({ method: "DELETE", uri: "/disks/{diskId}", code: 200 })), +).annotate({ + identifier: "DeleteDiskRequest", +}) as any as S.Schema; + +export interface DeleteDiskResponse {} +export const DeleteDiskResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeleteDiskResponse", +}) as any as S.Schema; + +export interface DeleteEnvGroupRequest { + envGroupId: string; +} +export const DeleteEnvGroupRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + envGroupId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "DELETE", uri: "/env-groups/{envGroupId}", code: 200 }), + ), +).annotate({ + identifier: "DeleteEnvGroupRequest", +}) as any as S.Schema; + +export interface DeleteEnvGroupResponse {} +export const DeleteEnvGroupResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeleteEnvGroupResponse", +}) as any as S.Schema; + +export interface DeleteEnvGroupEnvVarRequest { + envGroupId: string; + /** The name of the environment variable */ + envVarKey: string; +} +export const DeleteEnvGroupEnvVarRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + envGroupId: S.String.pipe(T.Label()), + envVarKey: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "DELETE", + uri: "/env-groups/{envGroupId}/env-vars/{envVarKey}", + code: 200, + }), + ), +).annotate({ + identifier: "DeleteEnvGroupEnvVarRequest", +}) as any as S.Schema; + +export interface DeleteEnvGroupEnvVarResponse {} +export const DeleteEnvGroupEnvVarResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeleteEnvGroupEnvVarResponse", +}) as any as S.Schema; + +export interface DeleteEnvGroupSecretFileRequest { + /** Filter for resources that belong to an environment group */ + envGroupId: string; + /** The name of the secret file */ + envVarKey: string; +} +export const DeleteEnvGroupSecretFileRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + envGroupId: S.String.pipe(T.Label()), + envVarKey: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "DELETE", + uri: "/env-groups/{envGroupId}/secret-files/{envVarKey}", + code: 200, + }), + ), +).annotate({ + identifier: "DeleteEnvGroupSecretFileRequest", +}) as any as S.Schema; + +export interface DeleteEnvGroupSecretFileResponse {} +export const DeleteEnvGroupSecretFileResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeleteEnvGroupSecretFileResponse", +}) as any as S.Schema; + +export interface DeleteEnvironmentRequest { + environmentId: string; +} +export const DeleteEnvironmentRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + environmentId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "DELETE", + uri: "/environments/{environmentId}", + code: 200, + }), + ), +).annotate({ + identifier: "DeleteEnvironmentRequest", +}) as any as S.Schema; + +export interface DeleteEnvironmentResponse {} +export const DeleteEnvironmentResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeleteEnvironmentResponse", +}) as any as S.Schema; + +export interface DeleteEnvVarRequest { + /** The ID of the service */ + serviceId: string; + /** The name of the environment variable */ + envVarKey: string; +} +export const DeleteEnvVarRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + envVarKey: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "DELETE", + uri: "/services/{serviceId}/env-vars/{envVarKey}", + code: 200, + }), + ), +).annotate({ + identifier: "DeleteEnvVarRequest", +}) as any as S.Schema; + +export interface DeleteEnvVarResponse {} +export const DeleteEnvVarResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeleteEnvVarResponse", +}) as any as S.Schema; + +export interface DeleteHeaderRequest { + /** The ID of the service */ + serviceId: string; + /** The id of the header */ + headerId: string; +} +export const DeleteHeaderRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + headerId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "DELETE", + uri: "/services/{serviceId}/headers/{headerId}", + code: 200, + }), + ), +).annotate({ + identifier: "DeleteHeaderRequest", +}) as any as S.Schema; + +export interface DeleteHeaderResponse {} +export const DeleteHeaderResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeleteHeaderResponse", +}) as any as S.Schema; + +export interface DeleteKeyValueRequest { + redisId: string; +} +export const DeleteKeyValueRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + redisId: S.String.pipe(T.Label()), + }).pipe(T.Http({ method: "DELETE", uri: "/key-value/{redisId}", code: 200 })), +).annotate({ + identifier: "DeleteKeyValueRequest", +}) as any as S.Schema; + +export interface DeleteKeyValueResponse {} +export const DeleteKeyValueResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeleteKeyValueResponse", +}) as any as S.Schema; + +export interface DeleteOwnerLogStreamRequest { + /** The ID of the workspace to delete the log stream for */ + ownerId: string; +} +export const DeleteOwnerLogStreamRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "DELETE", + uri: "/logs/streams/owner/{ownerId}", + code: 200, + }), + ), +).annotate({ + identifier: "DeleteOwnerLogStreamRequest", +}) as any as S.Schema; + +export interface DeleteOwnerLogStreamResponse {} +export const DeleteOwnerLogStreamResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeleteOwnerLogStreamResponse", +}) as any as S.Schema; + +export interface DeleteOwnerMetricsStreamRequest { + /** The ID of the workspace to return metrics stream information for */ + ownerId: string; +} +export const DeleteOwnerMetricsStreamRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "DELETE", uri: "/metrics-stream/{ownerId}", code: 200 }), + ), +).annotate({ + identifier: "DeleteOwnerMetricsStreamRequest", +}) as any as S.Schema; + +export interface DeleteOwnerMetricsStreamResponse {} +export const DeleteOwnerMetricsStreamResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeleteOwnerMetricsStreamResponse", +}) as any as S.Schema; + +export interface DeletePostgresRequest { + postgresId: string; +} +export const DeletePostgresRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + postgresId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "DELETE", uri: "/postgres/{postgresId}", code: 200 }), + ), +).annotate({ + identifier: "DeletePostgresRequest", +}) as any as S.Schema; + +export interface DeletePostgresResponse {} +export const DeletePostgresResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeletePostgresResponse", +}) as any as S.Schema; + +export interface DeletePostgresUserRequest { + postgresId: string; + username: string; +} +export const DeletePostgresUserRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + postgresId: S.String.pipe(T.Label()), + username: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "DELETE", + uri: "/postgres/{postgresId}/credentials/{username}", + code: 200, + }), + ), +).annotate({ + identifier: "DeletePostgresUserRequest", +}) as any as S.Schema; + +export interface DeletePostgresUserResponse {} +export const DeletePostgresUserResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeletePostgresUserResponse", +}) as any as S.Schema; + +export interface DeleteProjectRequest { + projectId: string; +} +export const DeleteProjectRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + projectId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "DELETE", uri: "/projects/{projectId}", code: 200 }), + ), +).annotate({ + identifier: "DeleteProjectRequest", +}) as any as S.Schema; + +export interface DeleteProjectResponse {} +export const DeleteProjectResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeleteProjectResponse", +}) as any as S.Schema; + +export interface DeleteRegistryCredentialRequest { + /** The ID of the registry credential */ + registryCredentialId: string; +} +export const DeleteRegistryCredentialRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + registryCredentialId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "DELETE", + uri: "/registrycredentials/{registryCredentialId}", + code: 200, + }), + ), +).annotate({ + identifier: "DeleteRegistryCredentialRequest", +}) as any as S.Schema; + +export interface DeleteRegistryCredentialResponse {} +export const DeleteRegistryCredentialResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeleteRegistryCredentialResponse", +}) as any as S.Schema; + +export interface DeleteResourceLogStreamRequest { + /** The ID of the resource (server, cron job, postgres, or redis) whose log streams should be returned */ + resourceId: string; +} +export const DeleteResourceLogStreamRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + resourceId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "DELETE", + uri: "/logs/streams/resource/{resourceId}", + code: 200, + }), + ), +).annotate({ + identifier: "DeleteResourceLogStreamRequest", +}) as any as S.Schema; + +export interface DeleteResourceLogStreamResponse {} +export const DeleteResourceLogStreamResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeleteResourceLogStreamResponse", +}) as any as S.Schema; + +export interface DeleteRouteRequest { + /** The ID of the service */ + serviceId: string; + /** The id of the route */ + routeId: string; +} +export const DeleteRouteRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + routeId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "DELETE", + uri: "/services/{serviceId}/routes/{routeId}", + code: 200, + }), + ), +).annotate({ + identifier: "DeleteRouteRequest", +}) as any as S.Schema; + +export interface DeleteRouteResponse {} +export const DeleteRouteResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeleteRouteResponse", +}) as any as S.Schema; + +export interface DeleteSecretFileRequest { + /** The ID of the service */ + serviceId: string; + /** The file name of the secret file */ + envVarKey: string; +} +export const DeleteSecretFileRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + envVarKey: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "DELETE", + uri: "/services/{serviceId}/secret-files/{envVarKey}", + code: 200, + }), + ), +).annotate({ + identifier: "DeleteSecretFileRequest", +}) as any as S.Schema; + +export interface DeleteSecretFileResponse {} +export const DeleteSecretFileResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeleteSecretFileResponse", +}) as any as S.Schema; + +export interface DeleteServiceRequest { + /** The ID of the service */ + serviceId: string; +} +export const DeleteServiceRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "DELETE", uri: "/services/{serviceId}", code: 200 }), + ), +).annotate({ + identifier: "DeleteServiceRequest", +}) as any as S.Schema; + +export interface DeleteServiceResponse {} +export const DeleteServiceResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeleteServiceResponse", +}) as any as S.Schema; + +export interface DeleteWebhookRequest { + /** Unique identifier for the webhook */ + webhookId: string; +} +export const DeleteWebhookRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + webhookId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "DELETE", uri: "/webhooks/{webhookId}", code: 200 }), + ), +).annotate({ + identifier: "DeleteWebhookRequest", +}) as any as S.Schema; + +export interface DeleteWebhookResponse {} +export const DeleteWebhookResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeleteWebhookResponse", +}) as any as S.Schema; + +export interface DeleteWorkflowRequest { + /** The ID of the workflow */ + workflowId: string; +} +export const DeleteWorkflowRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + workflowId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "DELETE", uri: "/workflows/{workflowId}", code: 200 }), + ), +).annotate({ + identifier: "DeleteWorkflowRequest", +}) as any as S.Schema; + +export interface DeleteWorkflowResponse {} +export const DeleteWorkflowResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DeleteWorkflowResponse", +}) as any as S.Schema; + +export interface DisconnectBlueprintRequest { + /** The ID of the Blueprint */ + blueprintId: string; +} +export const DisconnectBlueprintRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + blueprintId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "DELETE", uri: "/blueprints/{blueprintId}", code: 200 }), + ), +).annotate({ + identifier: "DisconnectBlueprintRequest", +}) as any as S.Schema; + +export interface DisconnectBlueprintResponse {} +export const DisconnectBlueprintResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "DisconnectBlueprintResponse", +}) as any as S.Schema; + +export interface FailoverPostgresRequest { + postgresId: string; +} +export const FailoverPostgresRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + postgresId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "POST", + uri: "/postgres/{postgresId}/failover", + code: 200, + }), + ), +).annotate({ + identifier: "FailoverPostgresRequest", +}) as any as S.Schema; + +export interface FailoverPostgresResponse {} +export const FailoverPostgresResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "FailoverPostgresResponse", +}) as any as S.Schema; + +export interface GetActiveConnectionsRequest { + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** The resolution of the returned data */ + resolutionSeconds?: number; + /** Resource ID to query. When multiple resource query params are provided, they are ORed together. Resources Postgres ids or Redis ids */ + resource?: string; +} +export const GetActiveConnectionsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + resolutionSeconds: S.optional(S.Number.pipe(T.Query())), + resource: S.optional(S.String.pipe(T.Query())), + }).pipe( + T.Http({ method: "GET", uri: "/metrics/active-connections", code: 200 }), + ), +).annotate({ + identifier: "GetActiveConnectionsRequest", +}) as any as S.Schema; + +/** A time series datapoint label */ +export interface GetActiveConnectionsResponseBodyItemLabelsItem { + field: string; + value: string; +} +export const GetActiveConnectionsResponseBodyItemLabelsItem = + /*@__PURE__*/ S.suspend(() => + S.Struct({ + field: S.String, + value: S.String, + }), + ).annotate({ + identifier: "GetActiveConnectionsResponseBodyItemLabelsItem", + }) as any as S.Schema; + +/** List of labels describing the time series */ +export type GetActiveConnectionsResponseBodyItemLabelsList = + Array; +export const GetActiveConnectionsResponseBodyItemLabelsList = + /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemLabelsItem, + ) as any as S.Schema; + +/** A time series datapoint value */ +export interface GetActiveConnectionsResponseBodyItemValuesItem { + timestamp: string; + value: number; +} +export const GetActiveConnectionsResponseBodyItemValuesItem = + /*@__PURE__*/ S.suspend(() => + S.Struct({ + timestamp: S.String, + value: S.Number, + }), + ).annotate({ + identifier: "GetActiveConnectionsResponseBodyItemValuesItem", + }) as any as S.Schema; + +/** The values of the time series */ +export type GetActiveConnectionsResponseBodyItemValuesList = + Array; +export const GetActiveConnectionsResponseBodyItemValuesList = + /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemValuesItem, + ) as any as S.Schema; + +/** A time series data point */ +export interface GetActiveConnectionsResponseBodyItem { + /** List of labels describing the time series */ + labels: GetActiveConnectionsResponseBodyItemLabelsList; + /** The values of the time series */ + values: GetActiveConnectionsResponseBodyItemValuesList; + unit: string; +} +export const GetActiveConnectionsResponseBodyItem = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + labels: GetActiveConnectionsResponseBodyItemLabelsList, + values: GetActiveConnectionsResponseBodyItemValuesList, + unit: S.String, + }), +).annotate({ + identifier: "GetActiveConnectionsResponseBodyItem", +}) as any as S.Schema; + +/** A collection of time series */ +export type GetActiveConnectionsResponseBodyList = + Array; +export const GetActiveConnectionsResponseBodyList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItem, +) as any as S.Schema; + +export type GetActiveConnectionsResponse = GetActiveConnectionsResponseBodyList; +export const GetActiveConnectionsResponse = /*@__PURE__*/ S.suspend(() => + GetActiveConnectionsResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "GetActiveConnectionsResponse", +}) as any as S.Schema; + +export interface GetBandwidthRequest { + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** Service ID to query. When multiple service ids are provided, they are ORed together */ + resource?: string; + /** This parameter is deprecated. Please use `resource` instead */ + service?: string; +} +export const GetBandwidthRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + resource: S.optional(S.String.pipe(T.Query())), + service: S.optional(S.String.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/metrics/bandwidth", code: 200 })), +).annotate({ + identifier: "GetBandwidthRequest", +}) as any as S.Schema; + +/** A time series datapoint label */ +export type GetBandwidthResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; +export const GetBandwidthResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; + +/** List of labels describing the time series */ +export type GetBandwidthResponseBodyItemLabelsList = + Array; +export const GetBandwidthResponseBodyItemLabelsList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemLabelsItem, +) as any as S.Schema; + +/** A time series datapoint value */ +export type GetBandwidthResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; +export const GetBandwidthResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; + +/** The values of the time series */ +export type GetBandwidthResponseBodyItemValuesList = + Array; +export const GetBandwidthResponseBodyItemValuesList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemValuesItem, +) as any as S.Schema; + +/** A time series data point */ +export interface GetBandwidthResponseBodyItem { + /** List of labels describing the time series */ + labels: GetBandwidthResponseBodyItemLabelsList; + /** The values of the time series */ + values: GetBandwidthResponseBodyItemValuesList; + unit: string; +} +export const GetBandwidthResponseBodyItem = /*@__PURE__*/ S.suspend(() => + S.Struct({ + labels: GetBandwidthResponseBodyItemLabelsList, + values: GetBandwidthResponseBodyItemValuesList, + unit: S.String, + }), +).annotate({ + identifier: "GetBandwidthResponseBodyItem", +}) as any as S.Schema; + +/** A collection of time series */ +export type GetBandwidthResponseBodyList = Array; +export const GetBandwidthResponseBodyList = /*@__PURE__*/ S.Array( + GetBandwidthResponseBodyItem, +) as any as S.Schema; + +export type GetBandwidthResponse = GetBandwidthResponseBodyList; +export const GetBandwidthResponse = /*@__PURE__*/ S.suspend(() => + GetBandwidthResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "GetBandwidthResponse", +}) as any as S.Schema; + +export interface GetBandwidthSourcesRequest { + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** Service ID to query. When multiple service ids are provided, they are ORed together */ + resource?: string; + /** This parameter is deprecated. Please use `resource` instead */ + service?: string; +} +export const GetBandwidthSourcesRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + resource: S.optional(S.String.pipe(T.Query())), + service: S.optional(S.String.pipe(T.Query())), + }).pipe( + T.Http({ method: "GET", uri: "/metrics/bandwidth-sources", code: 200 }), + ), +).annotate({ + identifier: "GetBandwidthSourcesRequest", +}) as any as S.Schema; + +export type GetBandwidthSourcesResponseDataItemLabelsTrafficSource = + | "total" + | "http" + | "websocket" + | "nat" + | "privatelink"; +export const GetBandwidthSourcesResponseDataItemLabelsTrafficSource = + /*@__PURE__*/ S.String; + +export interface GetBandwidthSourcesResponseDataItemLabels { + resource?: string; + trafficSource?: GetBandwidthSourcesResponseDataItemLabelsTrafficSource; +} +export const GetBandwidthSourcesResponseDataItemLabels = + /*@__PURE__*/ S.suspend(() => + S.Struct({ + resource: S.optional(S.String), + trafficSource: S.optional( + GetBandwidthSourcesResponseDataItemLabelsTrafficSource, + ), + }), + ).annotate({ + identifier: "GetBandwidthSourcesResponseDataItemLabels", + }) as any as S.Schema; + +export interface GetBandwidthSourcesResponseDataItemValuesItem { + timestamp?: number; + value?: number; +} +export const GetBandwidthSourcesResponseDataItemValuesItem = + /*@__PURE__*/ S.suspend(() => + S.Struct({ + timestamp: S.optional(S.Number), + value: S.optional(S.Number), + }), + ).annotate({ + identifier: "GetBandwidthSourcesResponseDataItemValuesItem", + }) as any as S.Schema; + +export type GetBandwidthSourcesResponseDataItemValuesList = + Array; +export const GetBandwidthSourcesResponseDataItemValuesList = + /*@__PURE__*/ S.Array( + GetBandwidthSourcesResponseDataItemValuesItem, + ) as any as S.Schema; + +export interface GetBandwidthSourcesResponseDataItem { + labels?: GetBandwidthSourcesResponseDataItemLabels; + values?: GetBandwidthSourcesResponseDataItemValuesList; +} +export const GetBandwidthSourcesResponseDataItem = /*@__PURE__*/ S.suspend(() => + S.Struct({ + labels: S.optional(GetBandwidthSourcesResponseDataItemLabels), + values: S.optional(GetBandwidthSourcesResponseDataItemValuesList), + }), +).annotate({ + identifier: "GetBandwidthSourcesResponseDataItem", +}) as any as S.Schema; + +export type GetBandwidthSourcesResponseDataList = + Array; +export const GetBandwidthSourcesResponseDataList = /*@__PURE__*/ S.Array( + GetBandwidthSourcesResponseDataItem, +) as any as S.Schema; + +export interface GetBandwidthSourcesResponse { + data?: GetBandwidthSourcesResponseDataList; +} +export const GetBandwidthSourcesResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + data: S.optional(GetBandwidthSourcesResponseDataList), + }), +).annotate({ + identifier: "GetBandwidthSourcesResponse", +}) as any as S.Schema; + +export type GetCpuRequestAggregationMethod = "AVG" | "MAX" | "MIN"; +export const GetCpuRequestAggregationMethod = /*@__PURE__*/ S.String; + +export interface GetCpuRequest { + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** The resolution of the returned data */ + resolutionSeconds?: number; + /** Resource ID to query. When multiple resource query params are provided, they are ORed together. Resources can be service ids, Postgres ids, or Redis ids */ + resource?: string; + /** This parameter is deprecated. Please use `resource` instead */ + service?: string; + /** Instance ID to query. When multiple instance ID query params are provided, they are ORed together */ + instance?: string; + /** The aggregation method to apply to multiple time series */ + aggregationMethod?: GetCpuRequestAggregationMethod | (string & {}); +} +export const GetCpuRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + resolutionSeconds: S.optional(S.Number.pipe(T.Query())), + resource: S.optional(S.String.pipe(T.Query())), + service: S.optional(S.String.pipe(T.Query())), + instance: S.optional(S.String.pipe(T.Query())), + aggregationMethod: S.optional( + GetCpuRequestAggregationMethod.pipe(T.Query()), + ), + }).pipe(T.Http({ method: "GET", uri: "/metrics/cpu", code: 200 })), +).annotate({ identifier: "GetCpuRequest" }) as any as S.Schema; + +/** A time series datapoint label */ +export type GetCpuResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; +export const GetCpuResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; + +/** List of labels describing the time series */ +export type GetCpuResponseBodyItemLabelsList = + Array; +export const GetCpuResponseBodyItemLabelsList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemLabelsItem, +) as any as S.Schema; + +/** A time series datapoint value */ +export type GetCpuResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; +export const GetCpuResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; + +/** The values of the time series */ +export type GetCpuResponseBodyItemValuesList = + Array; +export const GetCpuResponseBodyItemValuesList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemValuesItem, +) as any as S.Schema; + +/** A time series data point */ +export interface GetCpuResponseBodyItem { + /** List of labels describing the time series */ + labels: GetCpuResponseBodyItemLabelsList; + /** The values of the time series */ + values: GetCpuResponseBodyItemValuesList; + unit: string; +} +export const GetCpuResponseBodyItem = /*@__PURE__*/ S.suspend(() => + S.Struct({ + labels: GetCpuResponseBodyItemLabelsList, + values: GetCpuResponseBodyItemValuesList, + unit: S.String, + }), +).annotate({ + identifier: "GetCpuResponseBodyItem", +}) as any as S.Schema; + +/** A collection of time series */ +export type GetCpuResponseBodyList = Array; +export const GetCpuResponseBodyList = /*@__PURE__*/ S.Array( + GetCpuResponseBodyItem, +) as any as S.Schema; + +export type GetCpuResponse = GetCpuResponseBodyList; +export const GetCpuResponse = /*@__PURE__*/ S.suspend(() => + GetCpuResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ identifier: "GetCpuResponse" }) as any as S.Schema; + +export interface GetCpuLimitRequest { + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** The resolution of the returned data */ + resolutionSeconds?: number; + /** Resource ID to query. When multiple resource query params are provided, they are ORed together. Resources can be service ids, Postgres ids, or Redis ids */ + resource?: string; + /** This parameter is deprecated. Please use `resource` instead */ + service?: string; + /** Instance ID to query. When multiple instance ID query params are provided, they are ORed together */ + instance?: string; +} +export const GetCpuLimitRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + resolutionSeconds: S.optional(S.Number.pipe(T.Query())), + resource: S.optional(S.String.pipe(T.Query())), + service: S.optional(S.String.pipe(T.Query())), + instance: S.optional(S.String.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/metrics/cpu-limit", code: 200 })), +).annotate({ + identifier: "GetCpuLimitRequest", +}) as any as S.Schema; + +/** A time series datapoint label */ +export type GetCpuLimitResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; +export const GetCpuLimitResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; + +/** List of labels describing the time series */ +export type GetCpuLimitResponseBodyItemLabelsList = + Array; +export const GetCpuLimitResponseBodyItemLabelsList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemLabelsItem, +) as any as S.Schema; + +/** A time series datapoint value */ +export type GetCpuLimitResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; +export const GetCpuLimitResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; + +/** The values of the time series */ +export type GetCpuLimitResponseBodyItemValuesList = + Array; +export const GetCpuLimitResponseBodyItemValuesList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemValuesItem, +) as any as S.Schema; + +/** A time series data point */ +export interface GetCpuLimitResponseBodyItem { + /** List of labels describing the time series */ + labels: GetCpuLimitResponseBodyItemLabelsList; + /** The values of the time series */ + values: GetCpuLimitResponseBodyItemValuesList; + unit: string; +} +export const GetCpuLimitResponseBodyItem = /*@__PURE__*/ S.suspend(() => + S.Struct({ + labels: GetCpuLimitResponseBodyItemLabelsList, + values: GetCpuLimitResponseBodyItemValuesList, + unit: S.String, + }), +).annotate({ + identifier: "GetCpuLimitResponseBodyItem", +}) as any as S.Schema; + +/** A collection of time series */ +export type GetCpuLimitResponseBodyList = Array; +export const GetCpuLimitResponseBodyList = /*@__PURE__*/ S.Array( + GetCpuLimitResponseBodyItem, +) as any as S.Schema; + +export type GetCpuLimitResponse = GetCpuLimitResponseBodyList; +export const GetCpuLimitResponse = /*@__PURE__*/ S.suspend(() => + GetCpuLimitResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "GetCpuLimitResponse", +}) as any as S.Schema; + +export interface GetCpuTargetRequest { + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** The resolution of the returned data */ + resolutionSeconds?: number; + /** Resource ID to query. When multiple resource query params are provided, they are ORed together. Resources can be service ids, Postgres ids, or Redis ids */ + resource?: string; + /** This parameter is deprecated. Please use `resource` instead */ + service?: string; + /** Instance ID to query. When multiple instance ID query params are provided, they are ORed together */ + instance?: string; +} +export const GetCpuTargetRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + resolutionSeconds: S.optional(S.Number.pipe(T.Query())), + resource: S.optional(S.String.pipe(T.Query())), + service: S.optional(S.String.pipe(T.Query())), + instance: S.optional(S.String.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/metrics/cpu-target", code: 200 })), +).annotate({ + identifier: "GetCpuTargetRequest", +}) as any as S.Schema; + +/** A time series datapoint label */ +export type GetCpuTargetResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; +export const GetCpuTargetResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; + +/** List of labels describing the time series */ +export type GetCpuTargetResponseBodyItemLabelsList = + Array; +export const GetCpuTargetResponseBodyItemLabelsList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemLabelsItem, +) as any as S.Schema; + +/** A time series datapoint value */ +export type GetCpuTargetResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; +export const GetCpuTargetResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; + +/** The values of the time series */ +export type GetCpuTargetResponseBodyItemValuesList = + Array; +export const GetCpuTargetResponseBodyItemValuesList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemValuesItem, +) as any as S.Schema; + +/** A time series data point */ +export interface GetCpuTargetResponseBodyItem { + /** List of labels describing the time series */ + labels: GetCpuTargetResponseBodyItemLabelsList; + /** The values of the time series */ + values: GetCpuTargetResponseBodyItemValuesList; + unit: string; +} +export const GetCpuTargetResponseBodyItem = /*@__PURE__*/ S.suspend(() => + S.Struct({ + labels: GetCpuTargetResponseBodyItemLabelsList, + values: GetCpuTargetResponseBodyItemValuesList, + unit: S.String, + }), +).annotate({ + identifier: "GetCpuTargetResponseBodyItem", +}) as any as S.Schema; + +/** A collection of time series */ +export type GetCpuTargetResponseBodyList = Array; +export const GetCpuTargetResponseBodyList = /*@__PURE__*/ S.Array( + GetCpuTargetResponseBodyItem, +) as any as S.Schema; + +export type GetCpuTargetResponse = GetCpuTargetResponseBodyList; +export const GetCpuTargetResponse = /*@__PURE__*/ S.suspend(() => + GetCpuTargetResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "GetCpuTargetResponse", +}) as any as S.Schema; + +export interface GetDiskCapacityRequest { + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** The resolution of the returned data */ + resolutionSeconds?: number; + /** Resource ID to query. When multiple resource query params are provided, they are ORed together. Resources can be service ids, Postgres ids, or Redis ids */ + resource?: string; + /** This parameter is deprecated. Please use `resource` instead */ + service?: string; +} +export const GetDiskCapacityRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + resolutionSeconds: S.optional(S.Number.pipe(T.Query())), + resource: S.optional(S.String.pipe(T.Query())), + service: S.optional(S.String.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/metrics/disk-capacity", code: 200 })), +).annotate({ + identifier: "GetDiskCapacityRequest", +}) as any as S.Schema; + +/** A time series datapoint label */ +export type GetDiskCapacityResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; +export const GetDiskCapacityResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; + +/** List of labels describing the time series */ +export type GetDiskCapacityResponseBodyItemLabelsList = + Array; +export const GetDiskCapacityResponseBodyItemLabelsList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemLabelsItem, +) as any as S.Schema; + +/** A time series datapoint value */ +export type GetDiskCapacityResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; +export const GetDiskCapacityResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; + +/** The values of the time series */ +export type GetDiskCapacityResponseBodyItemValuesList = + Array; +export const GetDiskCapacityResponseBodyItemValuesList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemValuesItem, +) as any as S.Schema; + +/** A time series data point */ +export interface GetDiskCapacityResponseBodyItem { + /** List of labels describing the time series */ + labels: GetDiskCapacityResponseBodyItemLabelsList; + /** The values of the time series */ + values: GetDiskCapacityResponseBodyItemValuesList; + unit: string; +} +export const GetDiskCapacityResponseBodyItem = /*@__PURE__*/ S.suspend(() => + S.Struct({ + labels: GetDiskCapacityResponseBodyItemLabelsList, + values: GetDiskCapacityResponseBodyItemValuesList, + unit: S.String, + }), +).annotate({ + identifier: "GetDiskCapacityResponseBodyItem", +}) as any as S.Schema; + +/** A collection of time series */ +export type GetDiskCapacityResponseBodyList = + Array; +export const GetDiskCapacityResponseBodyList = /*@__PURE__*/ S.Array( + GetDiskCapacityResponseBodyItem, +) as any as S.Schema; + +export type GetDiskCapacityResponse = GetDiskCapacityResponseBodyList; +export const GetDiskCapacityResponse = /*@__PURE__*/ S.suspend(() => + GetDiskCapacityResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "GetDiskCapacityResponse", +}) as any as S.Schema; + +export interface GetDiskUsageRequest { + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** The resolution of the returned data */ + resolutionSeconds?: number; + /** Resource ID to query. When multiple resource query params are provided, they are ORed together. Resources can be service ids, Postgres ids, or Redis ids */ + resource?: string; + /** This parameter is deprecated. Please use `resource` instead */ + service?: string; +} +export const GetDiskUsageRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + resolutionSeconds: S.optional(S.Number.pipe(T.Query())), + resource: S.optional(S.String.pipe(T.Query())), + service: S.optional(S.String.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/metrics/disk-usage", code: 200 })), +).annotate({ + identifier: "GetDiskUsageRequest", +}) as any as S.Schema; + +/** A time series datapoint label */ +export type GetDiskUsageResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; +export const GetDiskUsageResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; + +/** List of labels describing the time series */ +export type GetDiskUsageResponseBodyItemLabelsList = + Array; +export const GetDiskUsageResponseBodyItemLabelsList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemLabelsItem, +) as any as S.Schema; + +/** A time series datapoint value */ +export type GetDiskUsageResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; +export const GetDiskUsageResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; + +/** The values of the time series */ +export type GetDiskUsageResponseBodyItemValuesList = + Array; +export const GetDiskUsageResponseBodyItemValuesList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemValuesItem, +) as any as S.Schema; + +/** A time series data point */ +export interface GetDiskUsageResponseBodyItem { + /** List of labels describing the time series */ + labels: GetDiskUsageResponseBodyItemLabelsList; + /** The values of the time series */ + values: GetDiskUsageResponseBodyItemValuesList; + unit: string; +} +export const GetDiskUsageResponseBodyItem = /*@__PURE__*/ S.suspend(() => + S.Struct({ + labels: GetDiskUsageResponseBodyItemLabelsList, + values: GetDiskUsageResponseBodyItemValuesList, + unit: S.String, + }), +).annotate({ + identifier: "GetDiskUsageResponseBodyItem", +}) as any as S.Schema; + +/** A collection of time series */ +export type GetDiskUsageResponseBodyList = Array; +export const GetDiskUsageResponseBodyList = /*@__PURE__*/ S.Array( + GetDiskUsageResponseBodyItem, +) as any as S.Schema; + +export type GetDiskUsageResponse = GetDiskUsageResponseBodyList; +export const GetDiskUsageResponse = /*@__PURE__*/ S.suspend(() => + GetDiskUsageResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "GetDiskUsageResponse", +}) as any as S.Schema; + +export interface GetEnvVarsForServiceRequest { + /** The ID of the service */ + serviceId: string; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const GetEnvVarsForServiceRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe( + T.Http({ method: "GET", uri: "/services/{serviceId}/env-vars", code: 200 }), + ), +).annotate({ + identifier: "GetEnvVarsForServiceRequest", +}) as any as S.Schema; + +export interface EnvVarWithCursor { + envVar: EnvVar; + cursor: string; +} +export const EnvVarWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + envVar: EnvVar, + cursor: S.String, + }), +).annotate({ + identifier: "EnvVarWithCursor", +}) as any as S.Schema; + +export type GetEnvVarsForServiceResponseBodyList = Array; +export const GetEnvVarsForServiceResponseBodyList = /*@__PURE__*/ S.Array( + EnvVarWithCursor, +) as any as S.Schema; + +export type GetEnvVarsForServiceResponse = GetEnvVarsForServiceResponseBodyList; +export const GetEnvVarsForServiceResponse = /*@__PURE__*/ S.suspend(() => + GetEnvVarsForServiceResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "GetEnvVarsForServiceResponse", +}) as any as S.Schema; + +export interface GetHttpLatencyRequest { + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** The resolution of the returned data */ + resolutionSeconds?: number; + /** Service ID to query. When multiple service ids are provided, they are ORed together */ + resource?: string; + /** This parameter is deprecated. Please use `resource` instead */ + service?: string; + /** The hosts of HTTP requests to filter to. When multiple host query params are provided, they are ORed together */ + host?: string; + /** The paths of HTTP requests to filter to. When multiple path query params are provided, they are ORed together */ + path?: string; + /** The quantile of latencies to fetch. When multiple quantile query params are provided, they are ORed together */ + quantile?: number; +} +export const GetHttpLatencyRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + resolutionSeconds: S.optional(S.Number.pipe(T.Query())), + resource: S.optional(S.String.pipe(T.Query())), + service: S.optional(S.String.pipe(T.Query())), + host: S.optional(S.String.pipe(T.Query())), + path: S.optional(S.String.pipe(T.Query())), + quantile: S.optional(S.Number.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/metrics/http-latency", code: 200 })), +).annotate({ + identifier: "GetHttpLatencyRequest", +}) as any as S.Schema; + +/** A time series datapoint label */ +export type GetHttpLatencyResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; +export const GetHttpLatencyResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; + +/** List of labels describing the time series */ +export type GetHttpLatencyResponseBodyItemLabelsList = + Array; +export const GetHttpLatencyResponseBodyItemLabelsList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemLabelsItem, +) as any as S.Schema; + +/** A time series datapoint value */ +export type GetHttpLatencyResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; +export const GetHttpLatencyResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; + +/** The values of the time series */ +export type GetHttpLatencyResponseBodyItemValuesList = + Array; +export const GetHttpLatencyResponseBodyItemValuesList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemValuesItem, +) as any as S.Schema; + +/** A time series data point */ +export interface GetHttpLatencyResponseBodyItem { + /** List of labels describing the time series */ + labels: GetHttpLatencyResponseBodyItemLabelsList; + /** The values of the time series */ + values: GetHttpLatencyResponseBodyItemValuesList; + unit: string; +} +export const GetHttpLatencyResponseBodyItem = /*@__PURE__*/ S.suspend(() => + S.Struct({ + labels: GetHttpLatencyResponseBodyItemLabelsList, + values: GetHttpLatencyResponseBodyItemValuesList, + unit: S.String, + }), +).annotate({ + identifier: "GetHttpLatencyResponseBodyItem", +}) as any as S.Schema; + +/** A collection of time series */ +export type GetHttpLatencyResponseBodyList = + Array; +export const GetHttpLatencyResponseBodyList = /*@__PURE__*/ S.Array( + GetHttpLatencyResponseBodyItem, +) as any as S.Schema; + +export type GetHttpLatencyResponse = GetHttpLatencyResponseBodyList; +export const GetHttpLatencyResponse = /*@__PURE__*/ S.suspend(() => + GetHttpLatencyResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "GetHttpLatencyResponse", +}) as any as S.Schema; + +export type GetHttpRequestsRequestAggregateBy = "statusCode" | "host"; +export const GetHttpRequestsRequestAggregateBy = /*@__PURE__*/ S.String; + +export interface GetHttpRequestsRequest { + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** The resolution of the returned data */ + resolutionSeconds?: number; + /** Service ID to query. When multiple service ids are provided, they are ORed together */ + resource?: string; + /** This parameter is deprecated. Please use `resource` instead */ + service?: string; + /** The hosts of HTTP requests to filter to. When multiple host query params are provided, they are ORed together */ + host?: string; + /** The paths of HTTP requests to filter to. When multiple path query params are provided, they are ORed together */ + path?: string; + /** The field to aggregate by */ + aggregateBy?: GetHttpRequestsRequestAggregateBy | (string & {}); +} +export const GetHttpRequestsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + resolutionSeconds: S.optional(S.Number.pipe(T.Query())), + resource: S.optional(S.String.pipe(T.Query())), + service: S.optional(S.String.pipe(T.Query())), + host: S.optional(S.String.pipe(T.Query())), + path: S.optional(S.String.pipe(T.Query())), + aggregateBy: S.optional(GetHttpRequestsRequestAggregateBy.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/metrics/http-requests", code: 200 })), +).annotate({ + identifier: "GetHttpRequestsRequest", +}) as any as S.Schema; + +/** A time series datapoint label */ +export type GetHttpRequestsResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; +export const GetHttpRequestsResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; + +/** List of labels describing the time series */ +export type GetHttpRequestsResponseBodyItemLabelsList = + Array; +export const GetHttpRequestsResponseBodyItemLabelsList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemLabelsItem, +) as any as S.Schema; + +/** A time series datapoint value */ +export type GetHttpRequestsResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; +export const GetHttpRequestsResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; + +/** The values of the time series */ +export type GetHttpRequestsResponseBodyItemValuesList = + Array; +export const GetHttpRequestsResponseBodyItemValuesList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemValuesItem, +) as any as S.Schema; + +/** A time series data point */ +export interface GetHttpRequestsResponseBodyItem { + /** List of labels describing the time series */ + labels: GetHttpRequestsResponseBodyItemLabelsList; + /** The values of the time series */ + values: GetHttpRequestsResponseBodyItemValuesList; + unit: string; +} +export const GetHttpRequestsResponseBodyItem = /*@__PURE__*/ S.suspend(() => + S.Struct({ + labels: GetHttpRequestsResponseBodyItemLabelsList, + values: GetHttpRequestsResponseBodyItemValuesList, + unit: S.String, + }), +).annotate({ + identifier: "GetHttpRequestsResponseBodyItem", +}) as any as S.Schema; + +/** A collection of time series */ +export type GetHttpRequestsResponseBodyList = + Array; +export const GetHttpRequestsResponseBodyList = /*@__PURE__*/ S.Array( + GetHttpRequestsResponseBodyItem, +) as any as S.Schema; + +export type GetHttpRequestsResponse = GetHttpRequestsResponseBodyList; +export const GetHttpRequestsResponse = /*@__PURE__*/ S.suspend(() => + GetHttpRequestsResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "GetHttpRequestsResponse", +}) as any as S.Schema; + +export interface GetInstanceCountRequest { + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** The resolution of the returned data */ + resolutionSeconds?: number; + /** Resource ID to query. When multiple resource query params are provided, they are ORed together. Resources can be service ids, Postgres ids, or Redis ids */ + resource?: string; + /** This parameter is deprecated. Please use `resource` instead */ + service?: string; +} +export const GetInstanceCountRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + resolutionSeconds: S.optional(S.Number.pipe(T.Query())), + resource: S.optional(S.String.pipe(T.Query())), + service: S.optional(S.String.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/metrics/instance-count", code: 200 })), +).annotate({ + identifier: "GetInstanceCountRequest", +}) as any as S.Schema; + +/** A time series datapoint label */ +export type GetInstanceCountResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; +export const GetInstanceCountResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; + +/** List of labels describing the time series */ +export type GetInstanceCountResponseBodyItemLabelsList = + Array; +export const GetInstanceCountResponseBodyItemLabelsList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemLabelsItem, +) as any as S.Schema; + +/** A time series datapoint value */ +export type GetInstanceCountResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; +export const GetInstanceCountResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; + +/** The values of the time series */ +export type GetInstanceCountResponseBodyItemValuesList = + Array; +export const GetInstanceCountResponseBodyItemValuesList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemValuesItem, +) as any as S.Schema; + +/** A time series data point */ +export interface GetInstanceCountResponseBodyItem { + /** List of labels describing the time series */ + labels: GetInstanceCountResponseBodyItemLabelsList; + /** The values of the time series */ + values: GetInstanceCountResponseBodyItemValuesList; + unit: string; +} +export const GetInstanceCountResponseBodyItem = /*@__PURE__*/ S.suspend(() => + S.Struct({ + labels: GetInstanceCountResponseBodyItemLabelsList, + values: GetInstanceCountResponseBodyItemValuesList, + unit: S.String, + }), +).annotate({ + identifier: "GetInstanceCountResponseBodyItem", +}) as any as S.Schema; + +/** A collection of time series */ +export type GetInstanceCountResponseBodyList = + Array; +export const GetInstanceCountResponseBodyList = /*@__PURE__*/ S.Array( + GetInstanceCountResponseBodyItem, +) as any as S.Schema; + +export type GetInstanceCountResponse = GetInstanceCountResponseBodyList; +export const GetInstanceCountResponse = /*@__PURE__*/ S.suspend(() => + GetInstanceCountResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "GetInstanceCountResponse", +}) as any as S.Schema; + +export interface GetMemoryRequest { + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** The resolution of the returned data */ + resolutionSeconds?: number; + /** Resource ID to query. When multiple resource query params are provided, they are ORed together. Resources can be service ids, Postgres ids, or Redis ids */ + resource?: string; + /** This parameter is deprecated. Please use `resource` instead */ + service?: string; + /** Instance ID to query. When multiple instance ID query params are provided, they are ORed together */ + instance?: string; +} +export const GetMemoryRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + resolutionSeconds: S.optional(S.Number.pipe(T.Query())), + resource: S.optional(S.String.pipe(T.Query())), + service: S.optional(S.String.pipe(T.Query())), + instance: S.optional(S.String.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/metrics/memory", code: 200 })), +).annotate({ + identifier: "GetMemoryRequest", +}) as any as S.Schema; + +/** A time series datapoint label */ +export type GetMemoryResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; +export const GetMemoryResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; + +/** List of labels describing the time series */ +export type GetMemoryResponseBodyItemLabelsList = + Array; +export const GetMemoryResponseBodyItemLabelsList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemLabelsItem, +) as any as S.Schema; + +/** A time series datapoint value */ +export type GetMemoryResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; +export const GetMemoryResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; + +/** The values of the time series */ +export type GetMemoryResponseBodyItemValuesList = + Array; +export const GetMemoryResponseBodyItemValuesList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemValuesItem, +) as any as S.Schema; + +/** A time series data point */ +export interface GetMemoryResponseBodyItem { + /** List of labels describing the time series */ + labels: GetMemoryResponseBodyItemLabelsList; + /** The values of the time series */ + values: GetMemoryResponseBodyItemValuesList; + unit: string; +} +export const GetMemoryResponseBodyItem = /*@__PURE__*/ S.suspend(() => + S.Struct({ + labels: GetMemoryResponseBodyItemLabelsList, + values: GetMemoryResponseBodyItemValuesList, + unit: S.String, + }), +).annotate({ + identifier: "GetMemoryResponseBodyItem", +}) as any as S.Schema; + +/** A collection of time series */ +export type GetMemoryResponseBodyList = Array; +export const GetMemoryResponseBodyList = /*@__PURE__*/ S.Array( + GetMemoryResponseBodyItem, +) as any as S.Schema; + +export type GetMemoryResponse = GetMemoryResponseBodyList; +export const GetMemoryResponse = /*@__PURE__*/ S.suspend(() => + GetMemoryResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "GetMemoryResponse", +}) as any as S.Schema; + +export interface GetMemoryLimitRequest { + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** The resolution of the returned data */ + resolutionSeconds?: number; + /** Resource ID to query. When multiple resource query params are provided, they are ORed together. Resources can be service ids, Postgres ids, or Redis ids */ + resource?: string; + /** This parameter is deprecated. Please use `resource` instead */ + service?: string; + /** Instance ID to query. When multiple instance ID query params are provided, they are ORed together */ + instance?: string; +} +export const GetMemoryLimitRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + resolutionSeconds: S.optional(S.Number.pipe(T.Query())), + resource: S.optional(S.String.pipe(T.Query())), + service: S.optional(S.String.pipe(T.Query())), + instance: S.optional(S.String.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/metrics/memory-limit", code: 200 })), +).annotate({ + identifier: "GetMemoryLimitRequest", +}) as any as S.Schema; + +/** A time series datapoint label */ +export type GetMemoryLimitResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; +export const GetMemoryLimitResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; + +/** List of labels describing the time series */ +export type GetMemoryLimitResponseBodyItemLabelsList = + Array; +export const GetMemoryLimitResponseBodyItemLabelsList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemLabelsItem, +) as any as S.Schema; + +/** A time series datapoint value */ +export type GetMemoryLimitResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; +export const GetMemoryLimitResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; + +/** The values of the time series */ +export type GetMemoryLimitResponseBodyItemValuesList = + Array; +export const GetMemoryLimitResponseBodyItemValuesList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemValuesItem, +) as any as S.Schema; + +/** A time series data point */ +export interface GetMemoryLimitResponseBodyItem { + /** List of labels describing the time series */ + labels: GetMemoryLimitResponseBodyItemLabelsList; + /** The values of the time series */ + values: GetMemoryLimitResponseBodyItemValuesList; + unit: string; +} +export const GetMemoryLimitResponseBodyItem = /*@__PURE__*/ S.suspend(() => + S.Struct({ + labels: GetMemoryLimitResponseBodyItemLabelsList, + values: GetMemoryLimitResponseBodyItemValuesList, + unit: S.String, + }), +).annotate({ + identifier: "GetMemoryLimitResponseBodyItem", +}) as any as S.Schema; + +/** A collection of time series */ +export type GetMemoryLimitResponseBodyList = + Array; +export const GetMemoryLimitResponseBodyList = /*@__PURE__*/ S.Array( + GetMemoryLimitResponseBodyItem, +) as any as S.Schema; + +export type GetMemoryLimitResponse = GetMemoryLimitResponseBodyList; +export const GetMemoryLimitResponse = /*@__PURE__*/ S.suspend(() => + GetMemoryLimitResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "GetMemoryLimitResponse", +}) as any as S.Schema; + +export interface GetMemoryTargetRequest { + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** The resolution of the returned data */ + resolutionSeconds?: number; + /** Resource ID to query. When multiple resource query params are provided, they are ORed together. Resources can be service ids, Postgres ids, or Redis ids */ + resource?: string; + /** This parameter is deprecated. Please use `resource` instead */ + service?: string; + /** Instance ID to query. When multiple instance ID query params are provided, they are ORed together */ + instance?: string; +} +export const GetMemoryTargetRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + resolutionSeconds: S.optional(S.Number.pipe(T.Query())), + resource: S.optional(S.String.pipe(T.Query())), + service: S.optional(S.String.pipe(T.Query())), + instance: S.optional(S.String.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/metrics/memory-target", code: 200 })), +).annotate({ + identifier: "GetMemoryTargetRequest", +}) as any as S.Schema; + +/** A time series datapoint label */ +export type GetMemoryTargetResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; +export const GetMemoryTargetResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; + +/** List of labels describing the time series */ +export type GetMemoryTargetResponseBodyItemLabelsList = + Array; +export const GetMemoryTargetResponseBodyItemLabelsList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemLabelsItem, +) as any as S.Schema; + +/** A time series datapoint value */ +export type GetMemoryTargetResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; +export const GetMemoryTargetResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; + +/** The values of the time series */ +export type GetMemoryTargetResponseBodyItemValuesList = + Array; +export const GetMemoryTargetResponseBodyItemValuesList = /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemValuesItem, +) as any as S.Schema; + +/** A time series data point */ +export interface GetMemoryTargetResponseBodyItem { + /** List of labels describing the time series */ + labels: GetMemoryTargetResponseBodyItemLabelsList; + /** The values of the time series */ + values: GetMemoryTargetResponseBodyItemValuesList; + unit: string; +} +export const GetMemoryTargetResponseBodyItem = /*@__PURE__*/ S.suspend(() => + S.Struct({ + labels: GetMemoryTargetResponseBodyItemLabelsList, + values: GetMemoryTargetResponseBodyItemValuesList, + unit: S.String, + }), +).annotate({ + identifier: "GetMemoryTargetResponseBodyItem", +}) as any as S.Schema; + +/** A collection of time series */ +export type GetMemoryTargetResponseBodyList = + Array; +export const GetMemoryTargetResponseBodyList = /*@__PURE__*/ S.Array( + GetMemoryTargetResponseBodyItem, +) as any as S.Schema; + +export type GetMemoryTargetResponse = GetMemoryTargetResponseBodyList; +export const GetMemoryTargetResponse = /*@__PURE__*/ S.suspend(() => + GetMemoryTargetResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "GetMemoryTargetResponse", +}) as any as S.Schema; + +export interface GetOwnerLogStreamRequest { + /** The ID of the workspace to return log stream information for */ + ownerId: string; +} +export const GetOwnerLogStreamRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "GET", uri: "/logs/streams/owner/{ownerId}", code: 200 }), + ), +).annotate({ + identifier: "GetOwnerLogStreamRequest", +}) as any as S.Schema; + +/** Whether to send logs or drop them. */ +export type Preview = "send" | "drop"; +export const Preview = /*@__PURE__*/ S.String; + +export interface GetOwnerLogStreamResponse { + /** The ID of the owner. */ + ownerId?: string; + /** The endpoint to stream logs to. */ + endpoint?: string; + preview?: Preview; +} +export const GetOwnerLogStreamResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.optional(S.String), + endpoint: S.optional(S.String), + preview: S.optional(Preview), + }), +).annotate({ + identifier: "GetOwnerLogStreamResponse", +}) as any as S.Schema; + +export interface GetOwnerMetricsStreamRequest { + /** The ID of the workspace to return metrics stream information for */ + ownerId: string; +} +export const GetOwnerMetricsStreamRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "GET", uri: "/metrics-stream/{ownerId}", code: 200 }), + ), +).annotate({ + identifier: "GetOwnerMetricsStreamRequest", +}) as any as S.Schema; + +/** Provider to send metrics to */ +export type Provider = + | "BETTER_STACK" + | "GRAFANA" + | "DATADOG" + | "NEW_RELIC" + | "HONEYCOMB" + | "SIGNOZ" + | "GROUNDCOVER" + | "LOGFIRE" + | "CUSTOM"; +export const Provider = /*@__PURE__*/ S.String; + +export interface Schema10 { + /** The ID of the owner */ + ownerId: string; + provider: Provider; + /** The endpoint URL to stream metrics to */ + url: string; +} +export const Schema10 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.String, + provider: Provider, + url: S.String, + }), +).annotate({ identifier: "Schema10" }) as any as S.Schema; + +export interface GetReplicationLagRequest { + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** The resolution of the returned data */ + resolutionSeconds?: number; + /** Postgres ID to query. When multiple resource query params are provided, they are ORed together */ + resource?: string; +} +export const GetReplicationLagRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + resolutionSeconds: S.optional(S.Number.pipe(T.Query())), + resource: S.optional(S.String.pipe(T.Query())), + }).pipe( + T.Http({ method: "GET", uri: "/metrics/replication-lag", code: 200 }), + ), +).annotate({ + identifier: "GetReplicationLagRequest", +}) as any as S.Schema; + +/** A time series datapoint label */ +export type GetReplicationLagResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; +export const GetReplicationLagResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; + +/** List of labels describing the time series */ +export type GetReplicationLagResponseBodyItemLabelsList = + Array; +export const GetReplicationLagResponseBodyItemLabelsList = + /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemLabelsItem, + ) as any as S.Schema; + +/** A time series datapoint value */ +export type GetReplicationLagResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; +export const GetReplicationLagResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; + +/** The values of the time series */ +export type GetReplicationLagResponseBodyItemValuesList = + Array; +export const GetReplicationLagResponseBodyItemValuesList = + /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemValuesItem, + ) as any as S.Schema; + +/** A time series data point */ +export interface GetReplicationLagResponseBodyItem { + /** List of labels describing the time series */ + labels: GetReplicationLagResponseBodyItemLabelsList; + /** The values of the time series */ + values: GetReplicationLagResponseBodyItemValuesList; + unit: string; +} +export const GetReplicationLagResponseBodyItem = /*@__PURE__*/ S.suspend(() => + S.Struct({ + labels: GetReplicationLagResponseBodyItemLabelsList, + values: GetReplicationLagResponseBodyItemValuesList, + unit: S.String, + }), +).annotate({ + identifier: "GetReplicationLagResponseBodyItem", +}) as any as S.Schema; + +/** A collection of time series */ +export type GetReplicationLagResponseBodyList = + Array; +export const GetReplicationLagResponseBodyList = /*@__PURE__*/ S.Array( + GetReplicationLagResponseBodyItem, +) as any as S.Schema; + +export type GetReplicationLagResponse = GetReplicationLagResponseBodyList; +export const GetReplicationLagResponse = /*@__PURE__*/ S.suspend(() => + GetReplicationLagResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "GetReplicationLagResponse", +}) as any as S.Schema; + +export interface GetResourceLogStreamRequest { + /** The ID of the resource (server, cron job, postgres, or redis) to return log stream override information for */ + resourceId: string; +} +export const GetResourceLogStreamRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + resourceId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/logs/streams/resource/{resourceId}", + code: 200, + }), + ), +).annotate({ + identifier: "GetResourceLogStreamRequest", +}) as any as S.Schema; + +/** Whether to send logs or drop them. */ +export type Items3 = "send" | "drop"; +export const Items3 = /*@__PURE__*/ S.String; + +export interface GetResourceLogStreamResponse { + /** The ID of the resource. */ + resourceId?: string; + /** The endpoint to stream logs to. Must be present if setting is send. Cannot be present if setting is drop. */ + endpoint?: string; + setting?: Items3; +} +export const GetResourceLogStreamResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + resourceId: S.optional(S.String), + endpoint: S.optional(S.String), + setting: S.optional(Items3), + }), +).annotate({ + identifier: "GetResourceLogStreamResponse", +}) as any as S.Schema; + +export interface GetTaskRequest { + /** The ID of the task */ + taskId: string; +} +export const GetTaskRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + taskId: S.String.pipe(T.Label()), + }).pipe(T.Http({ method: "GET", uri: "/tasks/{taskId}", code: 200 })), +).annotate({ identifier: "GetTaskRequest" }) as any as S.Schema; + +export interface GetTaskResponse { + id: string; + name: string; + createdAt: string; + workflowId?: string; + workflowVersionId?: string; +} +export const GetTaskResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + createdAt: S.String, + workflowId: S.optional(S.String), + workflowVersionId: S.optional(S.String), + }), +).annotate({ + identifier: "GetTaskResponse", +}) as any as S.Schema; + +export interface GetTaskRunRequest { + /** The ID of the task run */ + taskRunId: string; +} +export const GetTaskRunRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + taskRunId: S.String.pipe(T.Label()), + }).pipe(T.Http({ method: "GET", uri: "/task-runs/{taskRunId}", code: 200 })), +).annotate({ + identifier: "GetTaskRunRequest", +}) as any as S.Schema; + +export type GetTaskRunResponseStatus = + | "pending" + | "running" + | "completed" + | "succeeded" + | "failed" + | "canceled" + | "paused"; +export const GetTaskRunResponseStatus = /*@__PURE__*/ S.String; + +export type GetTaskRunResponseResultsList = Array; +export const GetTaskRunResponseResultsList = /*@__PURE__*/ S.Array( + S.Unknown, +) as any as S.Schema; + +/** Positional arguments passed to the task function */ +export type InputCase0List = Array; +export const InputCase0List = /*@__PURE__*/ S.Array( + S.Unknown, +) as any as S.Schema; + +/** Named parameters passed to the task function as keyword arguments */ +export type InputCase1Map = { [key: string]: unknown | undefined }; +export const InputCase1Map = /*@__PURE__*/ S.Record( + S.String, + S.Unknown, +) as any as S.Schema; + +/** Input data for a task. Can be either an array (for positional arguments) or an object (for named parameters). */ +export type Input = InputCase0List | InputCase1Map; +export const Input = /*@__PURE__*/ S.Unknown as any as S.Schema; + +export type Results = Array; +export const Results = /*@__PURE__*/ S.Array( + S.Unknown, +) as any as S.Schema; + +export interface GetTaskRunResponseAttemptsItem { + /** The ID of the task run this attempt belongs to. */ + taskRunId?: string; + /** The 0-indexed attempt number. */ + attempt: number; + status: Status2; + enqueuedAt?: string; + startedAt: string; + completedAt?: string; + /** Error message if the task attempt failed. */ + error?: string; + results?: Results; +} +export const GetTaskRunResponseAttemptsItem = /*@__PURE__*/ S.suspend(() => + S.Struct({ + taskRunId: S.optional(S.String), + attempt: S.Number, + status: Status2, + enqueuedAt: S.optional(S.String), + startedAt: S.String, + completedAt: S.optional(S.String), + error: S.optional(S.String), + results: S.optional(Results), + }), +).annotate({ + identifier: "GetTaskRunResponseAttemptsItem", +}) as any as S.Schema; + +export type GetTaskRunResponseAttemptsList = + Array; +export const GetTaskRunResponseAttemptsList = /*@__PURE__*/ S.Array( + GetTaskRunResponseAttemptsItem, +) as any as S.Schema; + +export interface GetTaskRunResponse { + id: string; + taskId: string; + status: GetTaskRunResponseStatus; + results: GetTaskRunResponseResultsList; + /** Error message if the task run failed. */ + error?: string; + startedAt?: string; + completedAt?: string; + input: Input; + parentTaskRunId: string; + /** The 0-indexed attempt of the parent task run that spawned this task run. Omitted for root task runs and for task runs created before this field was introduced. */ + parentTaskAttempt?: number; + rootTaskRunId: string; + retries: number; + attempts: GetTaskRunResponseAttemptsList; +} +export const GetTaskRunResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + taskId: S.String, + status: GetTaskRunResponseStatus, + results: GetTaskRunResponseResultsList, + error: S.optional(S.String), + startedAt: S.optional(S.String), + completedAt: S.optional(S.String), + input: Input, + parentTaskRunId: S.String, + parentTaskAttempt: S.optional(S.Number), + rootTaskRunId: S.String, + retries: S.Number, + attempts: GetTaskRunResponseAttemptsList, + }), +).annotate({ + identifier: "GetTaskRunResponse", +}) as any as S.Schema; + +export type GetTaskRunsCompletedRequestState = "succeeded" | "failed"; +export const GetTaskRunsCompletedRequestState = /*@__PURE__*/ S.String; + +export type GetTaskRunsCompletedRequestAggregateBy = "state"; +export const GetTaskRunsCompletedRequestAggregateBy = /*@__PURE__*/ S.String; + +export interface GetTaskRunsCompletedRequest { + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** The resolution of the returned data */ + resolutionSeconds?: number; + /** Task ID to query. When multiple task IDs are provided, they are ORed together */ + resource?: string; + /** The state of task runs to filter to. When multiple state query params are provided, they are ORed together */ + state?: GetTaskRunsCompletedRequestState | (string & {}); + /** The field to aggregate by */ + aggregateBy?: GetTaskRunsCompletedRequestAggregateBy | (string & {}); +} +export const GetTaskRunsCompletedRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + resolutionSeconds: S.optional(S.Number.pipe(T.Query())), + resource: S.optional(S.String.pipe(T.Query())), + state: S.optional(GetTaskRunsCompletedRequestState.pipe(T.Query())), + aggregateBy: S.optional( + GetTaskRunsCompletedRequestAggregateBy.pipe(T.Query()), + ), + }).pipe( + T.Http({ method: "GET", uri: "/metrics/task-runs-completed", code: 200 }), + ), +).annotate({ + identifier: "GetTaskRunsCompletedRequest", +}) as any as S.Schema; + +/** A time series datapoint label */ +export type GetTaskRunsCompletedResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; +export const GetTaskRunsCompletedResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; + +/** List of labels describing the time series */ +export type GetTaskRunsCompletedResponseBodyItemLabelsList = + Array; +export const GetTaskRunsCompletedResponseBodyItemLabelsList = + /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemLabelsItem, + ) as any as S.Schema; + +/** A time series datapoint value */ +export type GetTaskRunsCompletedResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; +export const GetTaskRunsCompletedResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; + +/** The values of the time series */ +export type GetTaskRunsCompletedResponseBodyItemValuesList = + Array; +export const GetTaskRunsCompletedResponseBodyItemValuesList = + /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemValuesItem, + ) as any as S.Schema; + +/** A time series data point */ +export interface GetTaskRunsCompletedResponseBodyItem { + /** List of labels describing the time series */ + labels: GetTaskRunsCompletedResponseBodyItemLabelsList; + /** The values of the time series */ + values: GetTaskRunsCompletedResponseBodyItemValuesList; + unit: string; +} +export const GetTaskRunsCompletedResponseBodyItem = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + labels: GetTaskRunsCompletedResponseBodyItemLabelsList, + values: GetTaskRunsCompletedResponseBodyItemValuesList, + unit: S.String, + }), +).annotate({ + identifier: "GetTaskRunsCompletedResponseBodyItem", +}) as any as S.Schema; + +/** A collection of time series */ +export type GetTaskRunsCompletedResponseBodyList = + Array; +export const GetTaskRunsCompletedResponseBodyList = /*@__PURE__*/ S.Array( + GetTaskRunsCompletedResponseBodyItem, +) as any as S.Schema; + +export type GetTaskRunsCompletedResponse = GetTaskRunsCompletedResponseBodyList; +export const GetTaskRunsCompletedResponse = /*@__PURE__*/ S.suspend(() => + GetTaskRunsCompletedResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "GetTaskRunsCompletedResponse", +}) as any as S.Schema; + +export interface GetTaskRunsQueuedRequest { + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** The resolution of the returned data */ + resolutionSeconds?: number; + /** Task ID to query. When multiple task IDs are provided, they are ORed together */ + resource?: string; +} +export const GetTaskRunsQueuedRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + resolutionSeconds: S.optional(S.Number.pipe(T.Query())), + resource: S.optional(S.String.pipe(T.Query())), + }).pipe( + T.Http({ method: "GET", uri: "/metrics/task-runs-queued", code: 200 }), + ), +).annotate({ + identifier: "GetTaskRunsQueuedRequest", +}) as any as S.Schema; + +/** A time series datapoint label */ +export type GetTaskRunsQueuedResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; +export const GetTaskRunsQueuedResponseBodyItemLabelsItem = + GetActiveConnectionsResponseBodyItemLabelsItem; + +/** List of labels describing the time series */ +export type GetTaskRunsQueuedResponseBodyItemLabelsList = + Array; +export const GetTaskRunsQueuedResponseBodyItemLabelsList = + /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemLabelsItem, + ) as any as S.Schema; + +/** A time series datapoint value */ +export type GetTaskRunsQueuedResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; +export const GetTaskRunsQueuedResponseBodyItemValuesItem = + GetActiveConnectionsResponseBodyItemValuesItem; + +/** The values of the time series */ +export type GetTaskRunsQueuedResponseBodyItemValuesList = + Array; +export const GetTaskRunsQueuedResponseBodyItemValuesList = + /*@__PURE__*/ S.Array( + GetActiveConnectionsResponseBodyItemValuesItem, + ) as any as S.Schema; + +/** A time series data point */ +export interface GetTaskRunsQueuedResponseBodyItem { + /** List of labels describing the time series */ + labels: GetTaskRunsQueuedResponseBodyItemLabelsList; + /** The values of the time series */ + values: GetTaskRunsQueuedResponseBodyItemValuesList; + unit: string; +} +export const GetTaskRunsQueuedResponseBodyItem = /*@__PURE__*/ S.suspend(() => + S.Struct({ + labels: GetTaskRunsQueuedResponseBodyItemLabelsList, + values: GetTaskRunsQueuedResponseBodyItemValuesList, + unit: S.String, + }), +).annotate({ + identifier: "GetTaskRunsQueuedResponseBodyItem", +}) as any as S.Schema; + +/** A collection of time series */ +export type GetTaskRunsQueuedResponseBodyList = + Array; +export const GetTaskRunsQueuedResponseBodyList = /*@__PURE__*/ S.Array( + GetTaskRunsQueuedResponseBodyItem, +) as any as S.Schema; + +export type GetTaskRunsQueuedResponse = GetTaskRunsQueuedResponseBodyList; +export const GetTaskRunsQueuedResponse = /*@__PURE__*/ S.suspend(() => + GetTaskRunsQueuedResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "GetTaskRunsQueuedResponse", +}) as any as S.Schema; + +export interface GetUserRequest {} +export const GetUserRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({}).pipe(T.Http({ method: "GET", uri: "/users", code: 200 })), +).annotate({ identifier: "GetUserRequest" }) as any as S.Schema; + +export interface User { + email: string; + name: string; +} +export const User = /*@__PURE__*/ S.suspend(() => + S.Struct({ + email: S.String, + name: S.String, + }), +).annotate({ identifier: "User" }) as any as S.Schema; + +export interface GetWorkflowRequest { + /** The ID of the workflow */ + workflowId: string; +} +export const GetWorkflowRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + workflowId: S.String.pipe(T.Label()), + }).pipe(T.Http({ method: "GET", uri: "/workflows/{workflowId}", code: 200 })), +).annotate({ + identifier: "GetWorkflowRequest", +}) as any as S.Schema; + +export interface Schema13 { + id: string; + name: string; + ownerId: string; + createdAt: string; + updatedAt: string; + buildConfig: BuildConfig; + /** Command to run the workflow. */ + runCommand: string; + region: Region2; + environmentId?: string; + slug?: string; + autoDeployTrigger?: AutoDeployTrigger; +} +export const Schema13 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + ownerId: S.String, + createdAt: S.String, + updatedAt: S.String, + buildConfig: BuildConfig, + runCommand: S.String, + region: Region2, + environmentId: S.optional(S.String), + slug: S.optional(S.String), + autoDeployTrigger: S.optional(AutoDeployTrigger), + }), +).annotate({ identifier: "Schema13" }) as any as S.Schema; + +export interface GetWorkflowVersionRequest { + /** The ID of the workflow version */ + workflowVersionId: string; +} +export const GetWorkflowVersionRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + workflowVersionId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/workflowversions/{workflowVersionId}", + code: 200, + }), + ), +).annotate({ + identifier: "GetWorkflowVersionRequest", +}) as any as S.Schema; + +export type GetWorkflowVersionResponseStatus = + | "created" + | "building" + | "registering" + | "build_failed" + | "registration_failed" + | "ready"; +export const GetWorkflowVersionResponseStatus = /*@__PURE__*/ S.String; + +export interface GetWorkflowVersionResponse { + id: string; + workflowId: string; + name: string; + createdAt: string; + status: GetWorkflowVersionResponseStatus; +} +export const GetWorkflowVersionResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + workflowId: S.String, + name: S.String, + createdAt: S.String, + status: GetWorkflowVersionResponseStatus, + }), +).annotate({ + identifier: "GetWorkflowVersionResponse", +}) as any as S.Schema; + +export interface LinkServiceToEnvGroupRequest { + /** Filter for resources that belong to an environment group */ + envGroupId: string; + /** The ID of the service */ + serviceId: string; +} +export const LinkServiceToEnvGroupRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + envGroupId: S.String.pipe(T.Label()), + serviceId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "POST", + uri: "/env-groups/{envGroupId}/services/{serviceId}", + code: 200, + }), + ), +).annotate({ + identifier: "LinkServiceToEnvGroupRequest", +}) as any as S.Schema; + +/** List of serviceIds linked to the envGroup */ +export type LinkServiceToEnvGroupResponseServiceLinksList = Array; +export const LinkServiceToEnvGroupResponseServiceLinksList = + /*@__PURE__*/ S.Array( + EnvGroupLink, + ) as any as S.Schema; + +export type LinkServiceToEnvGroupResponseEnvVarsList = Array; +export const LinkServiceToEnvGroupResponseEnvVarsList = /*@__PURE__*/ S.Array( + EnvVar, +) as any as S.Schema; + +export type LinkServiceToEnvGroupResponseSecretFilesList = Array; +export const LinkServiceToEnvGroupResponseSecretFilesList = + /*@__PURE__*/ S.Array( + SecretFile, + ) as any as S.Schema; + +export interface LinkServiceToEnvGroupResponse { + id: string; + name: string; + ownerId: string; + createdAt: string; + updatedAt: string; + /** List of serviceIds linked to the envGroup */ + serviceLinks: LinkServiceToEnvGroupResponseServiceLinksList; + environmentId?: string; + envVars: LinkServiceToEnvGroupResponseEnvVarsList; + secretFiles: LinkServiceToEnvGroupResponseSecretFilesList; +} +export const LinkServiceToEnvGroupResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + ownerId: S.String, + createdAt: S.String, + updatedAt: S.String, + serviceLinks: LinkServiceToEnvGroupResponseServiceLinksList, + environmentId: S.optional(S.String), + envVars: LinkServiceToEnvGroupResponseEnvVarsList, + secretFiles: LinkServiceToEnvGroupResponseSecretFilesList, + }), +).annotate({ + identifier: "LinkServiceToEnvGroupResponse", +}) as any as S.Schema; + +export interface ListApplicationFilterValuesRequest { + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** The resolution of the returned data */ + resolutionSeconds?: number; + /** Service ID to query. When multiple service ids are provided, they are ORed together */ + resource?: string; + /** This parameter is deprecated. Please use `resource` instead */ + service?: string; +} +export const ListApplicationFilterValuesRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + resolutionSeconds: S.optional(S.Number.pipe(T.Query())), + resource: S.optional(S.String.pipe(T.Query())), + service: S.optional(S.String.pipe(T.Query())), + }).pipe( + T.Http({ method: "GET", uri: "/metrics/filters/application", code: 200 }), + ), +).annotate({ + identifier: "ListApplicationFilterValuesRequest", +}) as any as S.Schema; + +export type ListApplicationFilterValuesResponseBodyItemFilter = "instance"; +export const ListApplicationFilterValuesResponseBodyItemFilter = + /*@__PURE__*/ S.String; + +export type ListApplicationFilterValuesResponseBodyItemValuesList = + Array; +export const ListApplicationFilterValuesResponseBodyItemValuesList = + /*@__PURE__*/ S.Array( + S.String, + ) as any as S.Schema; + +export interface ListApplicationFilterValuesResponseBodyItem { + filter?: ListApplicationFilterValuesResponseBodyItemFilter; + values?: ListApplicationFilterValuesResponseBodyItemValuesList; +} +export const ListApplicationFilterValuesResponseBodyItem = + /*@__PURE__*/ S.suspend(() => + S.Struct({ + filter: S.optional(ListApplicationFilterValuesResponseBodyItemFilter), + values: S.optional(ListApplicationFilterValuesResponseBodyItemValuesList), + }), + ).annotate({ + identifier: "ListApplicationFilterValuesResponseBodyItem", + }) as any as S.Schema; + +/** A collection of filter values for application metrics */ +export type ListApplicationFilterValuesResponseBodyList = + Array; +export const ListApplicationFilterValuesResponseBodyList = + /*@__PURE__*/ S.Array( + ListApplicationFilterValuesResponseBodyItem, + ) as any as S.Schema; + +export type ListApplicationFilterValuesResponse = + ListApplicationFilterValuesResponseBodyList; +export const ListApplicationFilterValuesResponse = /*@__PURE__*/ S.suspend(() => + ListApplicationFilterValuesResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListApplicationFilterValuesResponse", +}) as any as S.Schema; + +export type ListBlueprintsRequestOwnerIdList = Array; +export const ListBlueprintsRequestOwnerIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface ListBlueprintsRequest { + /** The ID of the workspaces to return resources for */ + ownerId?: ListBlueprintsRequestOwnerIdList; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListBlueprintsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.optional(ListBlueprintsRequestOwnerIdList.pipe(T.Query())), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/blueprints", code: 200 })), +).annotate({ + identifier: "ListBlueprintsRequest", +}) as any as S.Schema; + +export type Status = "created" | "paused" | "in_sync" | "syncing" | "error"; +export const Status = /*@__PURE__*/ S.String; + +export interface Schema { + id: string; + name: string; + status: Status; + autoSync: boolean; + repo: string; + branch: string; + path: string; + lastSync?: string; +} +export const Schema = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + status: Status, + autoSync: S.Boolean, + repo: S.String, + branch: S.String, + path: S.String, + lastSync: S.optional(S.String), + }), +).annotate({ identifier: "Schema" }) as any as S.Schema; + +/** A Blueprint with a cursor */ +export interface BlueprintWithCursor { + blueprint: Schema; + cursor: string; +} +export const BlueprintWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + blueprint: Schema, + cursor: S.String, + }), +).annotate({ + identifier: "BlueprintWithCursor", +}) as any as S.Schema; + +export type ListBlueprintsResponseBodyList = Array; +export const ListBlueprintsResponseBodyList = /*@__PURE__*/ S.Array( + BlueprintWithCursor, +) as any as S.Schema; + +export type ListBlueprintsResponse = ListBlueprintsResponseBodyList; +export const ListBlueprintsResponse = /*@__PURE__*/ S.suspend(() => + ListBlueprintsResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListBlueprintsResponse", +}) as any as S.Schema; + +export interface ListBlueprintSyncsRequest { + /** The ID of the Blueprint */ + blueprintId: string; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListBlueprintSyncsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + blueprintId: S.String.pipe(T.Label()), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe( + T.Http({ + method: "GET", + uri: "/blueprints/{blueprintId}/syncs", + code: 200, + }), + ), +).annotate({ + identifier: "ListBlueprintSyncsRequest", +}) as any as S.Schema; + +export interface SyncWithCursorSyncCommit { + id: string; +} +export const SyncWithCursorSyncCommit = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + }), +).annotate({ + identifier: "SyncWithCursorSyncCommit", +}) as any as S.Schema; + +export type SyncWithCursorSyncState = + | "created" + | "pending" + | "running" + | "error" + | "success"; +export const SyncWithCursorSyncState = /*@__PURE__*/ S.String; + +export interface SyncWithCursorSync { + id: string; + commit: SyncWithCursorSyncCommit; + startedAt?: string; + completedAt?: string; + state: SyncWithCursorSyncState; +} +export const SyncWithCursorSync = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + commit: SyncWithCursorSyncCommit, + startedAt: S.optional(S.String), + completedAt: S.optional(S.String), + state: SyncWithCursorSyncState, + }), +).annotate({ + identifier: "SyncWithCursorSync", +}) as any as S.Schema; + +/** A Blueprint sync with a cursor */ +export interface SyncWithCursor { + sync: SyncWithCursorSync; + cursor: string; +} +export const SyncWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + sync: SyncWithCursorSync, + cursor: S.String, + }), +).annotate({ identifier: "SyncWithCursor" }) as any as S.Schema; + +export type ListBlueprintSyncsResponseBodyList = Array; +export const ListBlueprintSyncsResponseBodyList = /*@__PURE__*/ S.Array( + SyncWithCursor, +) as any as S.Schema; + +export type ListBlueprintSyncsResponse = ListBlueprintSyncsResponseBodyList; +export const ListBlueprintSyncsResponse = /*@__PURE__*/ S.suspend(() => + ListBlueprintSyncsResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListBlueprintSyncsResponse", +}) as any as S.Schema; + +export type ListCustomDomainsRequestNameList = Array; +export const ListCustomDomainsRequestNameList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListCustomDomainsRequestDomainType = "apex" | "subdomain"; +export const ListCustomDomainsRequestDomainType = /*@__PURE__*/ S.String; + +export type ListCustomDomainsRequestVerificationStatus = + | "verified" + | "unverified"; +export const ListCustomDomainsRequestVerificationStatus = + /*@__PURE__*/ S.String; + +export interface ListCustomDomainsRequest { + /** The ID of the service */ + serviceId: string; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; + /** Filter for the names of custom domain */ + name?: ListCustomDomainsRequestNameList; + /** Filter for domain type */ + domainType?: ListCustomDomainsRequestDomainType | (string & {}); + /** Filter for domain verification status (`verified` or `unverified`) */ + verificationStatus?: + | ListCustomDomainsRequestVerificationStatus + | (string & {}); + /** Filter for custom domains created before a certain time (specified as an ISO 8601 timestamp) */ + createdBefore?: string; + /** Filter for custom domains created after a certain time (specified as an ISO 8601 timestamp) */ + createdAfter?: string; +} +export const ListCustomDomainsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + name: S.optional(ListCustomDomainsRequestNameList.pipe(T.Query())), + domainType: S.optional(ListCustomDomainsRequestDomainType.pipe(T.Query())), + verificationStatus: S.optional( + ListCustomDomainsRequestVerificationStatus.pipe(T.Query()), + ), + createdBefore: S.optional(S.String.pipe(T.Query())), + createdAfter: S.optional(S.String.pipe(T.Query())), + }).pipe( + T.Http({ + method: "GET", + uri: "/services/{serviceId}/custom-domains", + code: 200, + }), + ), +).annotate({ + identifier: "ListCustomDomainsRequest", +}) as any as S.Schema; + +export interface CustomDomainWithCursor { + customDomain: CustomDomain; + cursor: string; +} +export const CustomDomainWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + customDomain: CustomDomain, + cursor: S.String, + }), +).annotate({ + identifier: "CustomDomainWithCursor", +}) as any as S.Schema; + +export type ListCustomDomainsResponseBodyList = Array; +export const ListCustomDomainsResponseBodyList = /*@__PURE__*/ S.Array( + CustomDomainWithCursor, +) as any as S.Schema; + +export type ListCustomDomainsResponse = ListCustomDomainsResponseBodyList; +export const ListCustomDomainsResponse = /*@__PURE__*/ S.suspend(() => + ListCustomDomainsResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListCustomDomainsResponse", +}) as any as S.Schema; + +export interface ListDedicatedIpsRequest { + /** The ID of the workspace to list dedicated IP sets for. */ + ownerId: string; + /** Filter dedicated IP sets limited to this environment. Excludes workspace-scoped dedicated IP sets. The environment must belong to the workspace named by `ownerId`. */ + environmentId?: string; +} +export const ListDedicatedIpsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.String.pipe(T.Query()), + environmentId: S.optional(S.String.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/dedicated-ips", code: 200 })), +).annotate({ + identifier: "ListDedicatedIpsRequest", +}) as any as S.Schema; + +export type ListDedicatedIpsResponseBodyList = Array; +export const ListDedicatedIpsResponseBodyList = /*@__PURE__*/ S.Array( + DedicatedIP, +) as any as S.Schema; + +export type ListDedicatedIpsResponse = ListDedicatedIpsResponseBodyList; +export const ListDedicatedIpsResponse = /*@__PURE__*/ S.suspend(() => + ListDedicatedIpsResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListDedicatedIpsResponse", +}) as any as S.Schema; + +export type ListDeploysRequestStatusList = Array; +export const ListDeploysRequestStatusList = /*@__PURE__*/ S.Array( + DeployStatus, +) as any as S.Schema; + +export interface ListDeploysRequest { + /** The ID of the service */ + serviceId: string; + /** Filter for deploys with the specified statuses */ + status?: ListDeploysRequestStatusList; + /** Filter for deploys created before a certain time (specified as an ISO 8601 timestamp) */ + createdBefore?: string; + /** Filter for deploys created after a certain time (specified as an ISO 8601 timestamp) */ + createdAfter?: string; + /** Filter for deploys updated before a certain time (specified as an ISO 8601 timestamp) */ + updatedBefore?: string; + /** Filter for deploys updated after a certain time (specified as an ISO 8601 timestamp) */ + updatedAfter?: string; + /** Filter for deploys finished before a certain time (specified as an ISO 8601 timestamp) */ + finishedBefore?: string; + /** Filter for deploys finished after a certain time (specified as an ISO 8601 timestamp) */ + finishedAfter?: string; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListDeploysRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + status: S.optional(ListDeploysRequestStatusList.pipe(T.Query())), + createdBefore: S.optional(S.String.pipe(T.Query())), + createdAfter: S.optional(S.String.pipe(T.Query())), + updatedBefore: S.optional(S.String.pipe(T.Query())), + updatedAfter: S.optional(S.String.pipe(T.Query())), + finishedBefore: S.optional(S.String.pipe(T.Query())), + finishedAfter: S.optional(S.String.pipe(T.Query())), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe( + T.Http({ method: "GET", uri: "/services/{serviceId}/deploys", code: 200 }), + ), +).annotate({ + identifier: "ListDeploysRequest", +}) as any as S.Schema; + +export interface DeployWithCursor { + deploy?: Deploy; + cursor?: string; +} +export const DeployWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + deploy: S.optional(Deploy), + cursor: S.optional(S.String), + }), +).annotate({ + identifier: "DeployWithCursor", +}) as any as S.Schema; + +export type DeployList = Array; +export const DeployList = /*@__PURE__*/ S.Array( + DeployWithCursor, +) as any as S.Schema; + +export type ListDeploysResponse = DeployList; +export const ListDeploysResponse = /*@__PURE__*/ S.suspend(() => + DeployList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListDeploysResponse", +}) as any as S.Schema; + +export type ListDisksRequestOwnerIdList = Array; +export const ListDisksRequestOwnerIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListDisksRequestDiskIdList = Array; +export const ListDisksRequestDiskIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListDisksRequestNameList = Array; +export const ListDisksRequestNameList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListDisksRequestServiceIdList = Array; +export const ListDisksRequestServiceIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface ListDisksRequest { + /** The ID of the workspaces to return resources for */ + ownerId?: ListDisksRequestOwnerIdList; + /** Filter by disk IDs */ + diskId?: ListDisksRequestDiskIdList; + /** Filter by name */ + name?: ListDisksRequestNameList; + /** Filter for resources created before a certain time (specified as an ISO 8601 timestamp) */ + createdBefore?: string; + /** Filter for resources created after a certain time (specified as an ISO 8601 timestamp) */ + createdAfter?: string; + /** Filter for resources updated before a certain time (specified as an ISO 8601 timestamp) */ + updatedBefore?: string; + /** Filter for resources updated after a certain time (specified as an ISO 8601 timestamp) */ + updatedAfter?: string; + /** Filter for resources by service ID */ + serviceId?: ListDisksRequestServiceIdList; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListDisksRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.optional(ListDisksRequestOwnerIdList.pipe(T.Query())), + diskId: S.optional(ListDisksRequestDiskIdList.pipe(T.Query())), + name: S.optional(ListDisksRequestNameList.pipe(T.Query())), + createdBefore: S.optional(S.String.pipe(T.Query())), + createdAfter: S.optional(S.String.pipe(T.Query())), + updatedBefore: S.optional(S.String.pipe(T.Query())), + updatedAfter: S.optional(S.String.pipe(T.Query())), + serviceId: S.optional(ListDisksRequestServiceIdList.pipe(T.Query())), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/disks", code: 200 })), +).annotate({ + identifier: "ListDisksRequest", +}) as any as S.Schema; + +export interface Schema2 { + id: string; + name: string; + sizeGB: number; + mountPath: string; + serviceId?: string; + createdAt: string; + updatedAt: string; +} +export const Schema2 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + sizeGB: S.Number, + mountPath: S.String, + serviceId: S.optional(S.String), + createdAt: S.String, + updatedAt: S.String, + }), +).annotate({ identifier: "Schema2" }) as any as S.Schema; + +export interface DiskWithCursor { + disk: Schema2; + cursor: string; +} +export const DiskWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + disk: Schema2, + cursor: S.String, + }), +).annotate({ identifier: "DiskWithCursor" }) as any as S.Schema; + +export type ListDisksResponseBodyList = Array; +export const ListDisksResponseBodyList = /*@__PURE__*/ S.Array( + DiskWithCursor, +) as any as S.Schema; + +export type ListDisksResponse = ListDisksResponseBodyList; +export const ListDisksResponse = /*@__PURE__*/ S.suspend(() => + ListDisksResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListDisksResponse", +}) as any as S.Schema; + +export type ListEnvGroupsRequestNameList = Array; +export const ListEnvGroupsRequestNameList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListEnvGroupsRequestOwnerIdList = Array; +export const ListEnvGroupsRequestOwnerIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListEnvGroupsRequestEnvironmentIdList = Array; +export const ListEnvGroupsRequestEnvironmentIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface ListEnvGroupsRequest { + /** Filter by name */ + name?: ListEnvGroupsRequestNameList; + /** Filter for resources created before a certain time (specified as an ISO 8601 timestamp) */ + createdBefore?: string; + /** Filter for resources created after a certain time (specified as an ISO 8601 timestamp) */ + createdAfter?: string; + /** Filter for resources updated before a certain time (specified as an ISO 8601 timestamp) */ + updatedBefore?: string; + /** Filter for resources updated after a certain time (specified as an ISO 8601 timestamp) */ + updatedAfter?: string; + /** The ID of the workspaces to return resources for */ + ownerId?: ListEnvGroupsRequestOwnerIdList; + /** Filter for resources that belong to an environment */ + environmentId?: ListEnvGroupsRequestEnvironmentIdList; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListEnvGroupsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + name: S.optional(ListEnvGroupsRequestNameList.pipe(T.Query())), + createdBefore: S.optional(S.String.pipe(T.Query())), + createdAfter: S.optional(S.String.pipe(T.Query())), + updatedBefore: S.optional(S.String.pipe(T.Query())), + updatedAfter: S.optional(S.String.pipe(T.Query())), + ownerId: S.optional(ListEnvGroupsRequestOwnerIdList.pipe(T.Query())), + environmentId: S.optional( + ListEnvGroupsRequestEnvironmentIdList.pipe(T.Query()), + ), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/env-groups", code: 200 })), +).annotate({ + identifier: "ListEnvGroupsRequest", +}) as any as S.Schema; + +/** List of serviceIds linked to the envGroup */ +export type EnvGroupMetaServiceLinksList = Array; +export const EnvGroupMetaServiceLinksList = /*@__PURE__*/ S.Array( + EnvGroupLink, +) as any as S.Schema; + +export interface EnvGroupMeta { + id: string; + name: string; + ownerId: string; + createdAt: string; + updatedAt: string; + /** List of serviceIds linked to the envGroup */ + serviceLinks: EnvGroupMetaServiceLinksList; + environmentId?: string; +} +export const EnvGroupMeta = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + ownerId: S.String, + createdAt: S.String, + updatedAt: S.String, + serviceLinks: EnvGroupMetaServiceLinksList, + environmentId: S.optional(S.String), + }), +).annotate({ identifier: "EnvGroupMeta" }) as any as S.Schema; + +export type ListEnvGroupsResponseBodyList = Array; +export const ListEnvGroupsResponseBodyList = /*@__PURE__*/ S.Array( + EnvGroupMeta, +) as any as S.Schema; + +export type ListEnvGroupsResponse = ListEnvGroupsResponseBodyList; +export const ListEnvGroupsResponse = /*@__PURE__*/ S.suspend(() => + ListEnvGroupsResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListEnvGroupsResponse", +}) as any as S.Schema; + +export type ListEnvironmentsRequestNameList = Array; +export const ListEnvironmentsRequestNameList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListEnvironmentsRequestProjectIdList = Array; +export const ListEnvironmentsRequestProjectIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListEnvironmentsRequestOwnerIdList = Array; +export const ListEnvironmentsRequestOwnerIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListEnvironmentsRequestEnvironmentIdList = Array; +export const ListEnvironmentsRequestEnvironmentIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface ListEnvironmentsRequest { + /** Filter by name */ + name?: ListEnvironmentsRequestNameList; + /** Filter for resources that belong to a project */ + projectId: ListEnvironmentsRequestProjectIdList; + /** Filter for resources created before a certain time (specified as an ISO 8601 timestamp) */ + createdBefore?: string; + /** Filter for resources created after a certain time (specified as an ISO 8601 timestamp) */ + createdAfter?: string; + /** Filter for resources updated before a certain time (specified as an ISO 8601 timestamp) */ + updatedBefore?: string; + /** Filter for resources updated after a certain time (specified as an ISO 8601 timestamp) */ + updatedAfter?: string; + /** The ID of the workspaces to return resources for */ + ownerId?: ListEnvironmentsRequestOwnerIdList; + /** Filter for resources that belong to an environment */ + environmentId?: ListEnvironmentsRequestEnvironmentIdList; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListEnvironmentsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + name: S.optional(ListEnvironmentsRequestNameList.pipe(T.Query())), + projectId: ListEnvironmentsRequestProjectIdList.pipe(T.Query()), + createdBefore: S.optional(S.String.pipe(T.Query())), + createdAfter: S.optional(S.String.pipe(T.Query())), + updatedBefore: S.optional(S.String.pipe(T.Query())), + updatedAfter: S.optional(S.String.pipe(T.Query())), + ownerId: S.optional(ListEnvironmentsRequestOwnerIdList.pipe(T.Query())), + environmentId: S.optional( + ListEnvironmentsRequestEnvironmentIdList.pipe(T.Query()), + ), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/environments", code: 200 })), +).annotate({ + identifier: "ListEnvironmentsRequest", +}) as any as S.Schema; + +/** An environment with a cursor */ +export interface EnvironmentWithCursor { + environment: Environment; + cursor: string; +} +export const EnvironmentWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + environment: Environment, + cursor: S.String, + }), +).annotate({ + identifier: "EnvironmentWithCursor", +}) as any as S.Schema; + +export type ListEnvironmentsResponseBodyList = Array; +export const ListEnvironmentsResponseBodyList = /*@__PURE__*/ S.Array( + EnvironmentWithCursor, +) as any as S.Schema; + +export type ListEnvironmentsResponse = ListEnvironmentsResponseBodyList; +export const ListEnvironmentsResponse = /*@__PURE__*/ S.suspend(() => + ListEnvironmentsResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListEnvironmentsResponse", +}) as any as S.Schema; + +export type ListEventsRequestType = + | "artifact_fetch_failed" + | "artifact_source_changed" + | "autoscaling_config_changed" + | "autoscaling_ended" + | "autoscaling_started" + | "branch_deleted" + | "build_ended" + | "build_started" + | "commit_ignored" + | "cron_job_run_ended" + | "cron_job_run_started" + | "deploy_ended" + | "deploy_started" + | "disk_created" + | "disk_updated" + | "disk_deleted" + | "service_disk_usage_high" + | "service_disk_usage_recovered" + | "image_pull_failed" + | "initial_deploy_hook_ended" + | "initial_deploy_hook_started" + | "instance_count_changed" + | "job_run_ended" + | "maintenance_mode_enabled" + | "maintenance_mode_uri_updated" + | "maintenance_ended" + | "maintenance_started" + | "pipeline_minutes_exhausted" + | "plan_changed" + | "pre_deploy_ended" + | "pre_deploy_started" + | "server_available" + | "server_failed" + | "server_hardware_failure" + | "server_restarted" + | "service_resumed" + | "service_suspended" + | "suspender_added" + | "suspender_removed" + | "zero_downtime_redeploy_ended" + | "zero_downtime_redeploy_started" + | "auto_deploy_disabled" + | "auto_deploy_enabled"; +export const ListEventsRequestType = /*@__PURE__*/ S.String; + +export interface ListEventsRequest { + /** The ID of the service */ + serviceId: string; + /** The type of event to filter to */ + type?: ListEventsRequestType | (string & {}); + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListEventsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + type: S.optional(ListEventsRequestType.pipe(T.Query())), + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe( + T.Http({ method: "GET", uri: "/services/{serviceId}/events", code: 200 }), + ), +).annotate({ + identifier: "ListEventsRequest", +}) as any as S.Schema; + +export type _0 = + | "artifact_fetch_failed" + | "artifact_source_changed" + | "autoscaling_config_changed" + | "autoscaling_ended" + | "autoscaling_started" + | "branch_deleted" + | "build_ended" + | "build_started" + | "commit_ignored" + | "cron_job_run_ended" + | "cron_job_run_started" + | "deploy_ended" + | "deploy_started" + | "disk_created" + | "disk_updated" + | "disk_deleted" + | "service_disk_usage_high" + | "service_disk_usage_recovered" + | "image_pull_failed" + | "initial_deploy_hook_ended" + | "initial_deploy_hook_started" + | "instance_count_changed" + | "job_run_ended" + | "maintenance_mode_enabled" + | "maintenance_mode_uri_updated" + | "maintenance_ended" + | "maintenance_started" + | "pipeline_minutes_exhausted" + | "plan_changed" + | "pre_deploy_ended" + | "pre_deploy_started" + | "server_available" + | "server_failed" + | "server_hardware_failure" + | "server_restarted" + | "service_resumed" + | "service_suspended" + | "suspender_added" + | "suspender_removed" + | "zero_downtime_redeploy_ended" + | "zero_downtime_redeploy_started" + | "auto_deploy_disabled" + | "auto_deploy_enabled"; +export const _0 = /*@__PURE__*/ S.String; + +export interface _0Case0 { + artifactId: string; + message: string; +} +export const _0Case0 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + artifactId: S.String, + message: S.String, + }), +).annotate({ identifier: "_0Case0" }) as any as S.Schema<_0Case0>; + +export interface _0Case1 { + /** The previously linked artifact source. Absent when the service was newly attached. */ + fromArtifactSourceId?: string; + /** The newly linked artifact source. Absent when the service was detached. */ + toArtifactSourceId?: string; +} +export const _0Case1 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + fromArtifactSourceId: S.optional(S.String), + toArtifactSourceId: S.optional(S.String), + }), +).annotate({ identifier: "_0Case1" }) as any as S.Schema<_0Case1>; + +export interface _0Case2 { + fromConfig?: Schema5; + toConfig: Schema5; +} +export const _0Case2 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + fromConfig: S.optional(Schema5), + toConfig: Schema5, + }), +).annotate({ identifier: "_0Case2" }) as any as S.Schema<_0Case2>; + +export interface _0Case3 { + fromInstances: number; + toInstances: number; +} +export const _0Case3 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + fromInstances: S.Number, + toInstances: S.Number, + }), +).annotate({ identifier: "_0Case3" }) as any as S.Schema<_0Case3>; + +export interface _0Case4 { + fromInstances: number; + toInstances: number; + currentCPU?: number; + targetCPU?: number; + currentMemory?: number; + targetMemory?: number; +} +export const _0Case4 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + fromInstances: S.Number, + toInstances: S.Number, + currentCPU: S.optional(S.Number), + targetCPU: S.optional(S.Number), + currentMemory: S.optional(S.Number), + targetMemory: S.optional(S.Number), + }), +).annotate({ identifier: "_0Case4" }) as any as S.Schema<_0Case4>; + +export interface _0Case5 { + deletedBranch: string; + newBranch: string; +} +export const _0Case5 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + deletedBranch: S.String, + newBranch: S.String, + }), +).annotate({ identifier: "_0Case5" }) as any as S.Schema<_0Case5>; + +export type _0Case6BuildStatus = "succeeded" | "failed" | "canceled"; +export const _0Case6BuildStatus = /*@__PURE__*/ S.String; + +export type NewBuild = SyncWithCursorSyncCommit; +export const NewBuild = SyncWithCursorSyncCommit; + +export type _0Case6ReasonNewBuild = SyncWithCursorSyncCommit; +export const _0Case6ReasonNewBuild = SyncWithCursorSyncCommit; + +export interface ReasonOomKilled { + memoryLimit: string; +} +export const ReasonOomKilled = /*@__PURE__*/ S.suspend(() => + S.Struct({ + memoryLimit: S.String, + }), +).annotate({ + identifier: "ReasonOomKilled", +}) as any as S.Schema; + +export interface Reason { + evicted: boolean; + /** Details about why the application was evicted. */ + evictionReason?: string; + /** If present, the application exited with the specified non-zero status. */ + nonZeroExit?: number; + /** If true, the application exited early. Services besides cron jobs should not exit unless receiving a `SIGTERM` signal from Render. */ + earlyExit?: boolean; + oomKilled?: ReasonOomKilled; + timedOutSeconds?: number; + unhealthy?: string; + timedOutReason?: string; +} +export const Reason = /*@__PURE__*/ S.suspend(() => + S.Struct({ + evicted: S.Boolean, + evictionReason: S.optional(S.String), + nonZeroExit: S.optional(S.Number), + earlyExit: S.optional(S.Boolean), + oomKilled: S.optional(ReasonOomKilled), + timedOutSeconds: S.optional(S.Number), + unhealthy: S.optional(S.String), + timedOutReason: S.optional(S.String), + }), +).annotate({ identifier: "Reason" }) as any as S.Schema; + +export interface _0Case6Reason { + buildFailed?: SyncWithCursorSyncCommit; + newBuild?: SyncWithCursorSyncCommit; + newDeploy?: SyncWithCursorSyncCommit; + failure?: Reason; +} +export const _0Case6Reason = /*@__PURE__*/ S.suspend(() => + S.Struct({ + buildFailed: S.optional(SyncWithCursorSyncCommit), + newBuild: S.optional(SyncWithCursorSyncCommit), + newDeploy: S.optional(SyncWithCursorSyncCommit), + failure: S.optional(Reason), + }), +).annotate({ identifier: "_0Case6Reason" }) as any as S.Schema<_0Case6Reason>; + +export interface _0Case6 { + buildId: string; + buildStatus: _0Case6BuildStatus; + reason: _0Case6Reason; + status: number; +} +export const _0Case6 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + buildId: S.String, + buildStatus: _0Case6BuildStatus, + reason: _0Case6Reason, + status: S.Number, + }), +).annotate({ identifier: "_0Case6" }) as any as S.Schema<_0Case6>; + +/** User who triggered the action */ +export interface User2 { + id: string; + email: string; +} +export const User2 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + email: S.String, + }), +).annotate({ identifier: "User2" }) as any as S.Schema; + +export interface _0Case7Trigger { + /** Deploy was triggered by service creation */ + firstBuild: boolean; + /** Deploy was triggered by an environment update */ + envUpdated: boolean; + /** Deploy was triggered manually from the dashboard */ + manual: boolean; + user?: User2; + /** Updated property that triggered the deploy */ + updatedProperty?: string; + /** Commit that triggered the deploy */ + newCommit?: string; + /** Deploy was triggered by Render */ + deployedByRender: boolean; + /** Whether the cache was cleared for the deploy */ + clearCache: boolean; + /** Whether the deploy was triggered by a rollback */ + rollback: boolean; + /** Deploy ID that was rolled back to */ + rollbackTargetDeployId?: string; +} +export const _0Case7Trigger = /*@__PURE__*/ S.suspend(() => + S.Struct({ + firstBuild: S.Boolean, + envUpdated: S.Boolean, + manual: S.Boolean, + user: S.optional(User2), + updatedProperty: S.optional(S.String), + newCommit: S.optional(S.String), + deployedByRender: S.Boolean, + clearCache: S.Boolean, + rollback: S.Boolean, + rollbackTargetDeployId: S.optional(S.String), + }), +).annotate({ identifier: "_0Case7Trigger" }) as any as S.Schema<_0Case7Trigger>; + +export interface _0Case7 { + buildId: string; + trigger: _0Case7Trigger; +} +export const _0Case7 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + buildId: S.String, + trigger: _0Case7Trigger, + }), +).annotate({ identifier: "_0Case7" }) as any as S.Schema<_0Case7>; + +export interface _0Case8 { + /** the commit id */ + id: string; + /** the commit url */ + url: string; +} +export const _0Case8 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + url: S.String, + }), +).annotate({ identifier: "_0Case8" }) as any as S.Schema<_0Case8>; + +export type _0Case9Status = + | "canceled" + | "pending" + | "successful" + | "unsuccessful"; +export const _0Case9Status = /*@__PURE__*/ S.String; + +export type _0Case9ReasonOomKilled = ReasonOomKilled; +export const _0Case9ReasonOomKilled = ReasonOomKilled; + +export type _0Case9Reason = Reason; +export const _0Case9Reason = Reason; + +/** User who triggered the action */ +export type _0Case9User = User2; +export const _0Case9User = User2; + +export interface _0Case9 { + cronJobRunId: string; + status: _0Case9Status; + reason?: Reason; + /** User who triggered the action */ + user?: User2; +} +export const _0Case9 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + cronJobRunId: S.String, + status: _0Case9Status, + reason: S.optional(Reason), + user: S.optional(User2), + }), +).annotate({ identifier: "_0Case9" }) as any as S.Schema<_0Case9>; + +export interface _0Case10 { + cronJobRunId: string; +} +export const _0Case10 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + cronJobRunId: S.String, + }), +).annotate({ identifier: "_0Case10" }) as any as S.Schema<_0Case10>; + +export type ReasonNewBuild = SyncWithCursorSyncCommit; +export const ReasonNewBuild = SyncWithCursorSyncCommit; + +export type Reason2 = _0Case6Reason; +export const Reason2 = _0Case6Reason; + +export type BuildStatus = "succeeded" | "failed" | "canceled"; +export const BuildStatus = /*@__PURE__*/ S.String; + +export interface _0Case11 { + deployId: string; + reason: _0Case6Reason; + deployStatus: BuildStatus; + status: number; + /** Set when the deploy shipped an artifact published by the service's linked artifact source. */ + artifactId?: string; +} +export const _0Case11 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + deployId: S.String, + reason: _0Case6Reason, + deployStatus: BuildStatus, + status: S.Number, + artifactId: S.optional(S.String), + }), +).annotate({ identifier: "_0Case11" }) as any as S.Schema<_0Case11>; + +export type Trigger = _0Case7Trigger; +export const Trigger = _0Case7Trigger; + +export interface _0Case12 { + deployId: string; + trigger: _0Case7Trigger; + /** Set when the deploy ships an artifact published by the service's linked artifact source. */ + artifactId?: string; +} +export const _0Case12 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + deployId: S.String, + trigger: _0Case7Trigger, + artifactId: S.optional(S.String), + }), +).annotate({ identifier: "_0Case12" }) as any as S.Schema<_0Case12>; + +export interface _0Case13 { + diskId: string; + sizeGB: number; +} +export const _0Case13 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + diskId: S.String, + sizeGB: S.Number, + }), +).annotate({ identifier: "_0Case13" }) as any as S.Schema<_0Case13>; + +export interface _0Case14 { + diskId: string; + fromSizeGB: number; + toSizeGB: number; +} +export const _0Case14 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + diskId: S.String, + fromSizeGB: S.Number, + toSizeGB: S.Number, + }), +).annotate({ identifier: "_0Case14" }) as any as S.Schema<_0Case14>; + +export interface _0Case15 { + diskId: string; +} +export const _0Case15 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + diskId: S.String, + }), +).annotate({ identifier: "_0Case15" }) as any as S.Schema<_0Case15>; + +export interface _0Case16 { + diskId: string; + diskName: string; + mountPath: string; + usagePercent: number; + thresholdPercent: number; +} +export const _0Case16 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + diskId: S.String, + diskName: S.String, + mountPath: S.String, + usagePercent: S.Number, + thresholdPercent: S.Number, + }), +).annotate({ identifier: "_0Case16" }) as any as S.Schema<_0Case16>; + +export type _0Case17 = _0Case16; +export const _0Case17 = _0Case16; + +export interface _0Case18 { + message: string; + imageURL: string; +} +export const _0Case18 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + message: S.String, + imageURL: S.String, + }), +).annotate({ identifier: "_0Case18" }) as any as S.Schema<_0Case18>; + +export interface _0Case19 { + deployId: string; +} +export const _0Case19 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + deployId: S.String, + }), +).annotate({ identifier: "_0Case19" }) as any as S.Schema<_0Case19>; + +export type _0Case20 = _0Case19; +export const _0Case20 = _0Case19; + +export type _0Case21 = _0Case3; +export const _0Case21 = _0Case3; + +export interface _0Case22 { + jobId: string; + status: Items2; + reason?: Reason; +} +export const _0Case22 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + jobId: S.String, + status: Items2, + reason: S.optional(Reason), + }), +).annotate({ identifier: "_0Case22" }) as any as S.Schema<_0Case22>; + +export interface _0Case23 { + enabled: boolean; +} +export const _0Case23 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + enabled: S.Boolean, + }), +).annotate({ identifier: "_0Case23" }) as any as S.Schema<_0Case23>; + +export interface _0Case24 { + fromURI: string; + toURI: string; +} +export const _0Case24 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + fromURI: S.String, + toURI: S.String, + }), +).annotate({ identifier: "_0Case24" }) as any as S.Schema<_0Case24>; + +export interface _0Case26Trigger { + user?: User2; + /** Maintenance was triggered manually */ + manual: boolean; + /** Maintenance was triggered by Render */ + startedByRender: boolean; +} +export const _0Case26Trigger = /*@__PURE__*/ S.suspend(() => + S.Struct({ + user: S.optional(User2), + manual: S.Boolean, + startedByRender: S.Boolean, + }), +).annotate({ + identifier: "_0Case26Trigger", +}) as any as S.Schema<_0Case26Trigger>; + +export interface _0Case26 { + trigger: _0Case26Trigger; +} +export const _0Case26 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + trigger: _0Case26Trigger, + }), +).annotate({ identifier: "_0Case26" }) as any as S.Schema<_0Case26>; + +export type _0Case27 = _0Case7; +export const _0Case27 = _0Case7; + +export interface _0Case28 { + from: string; + to: string; +} +export const _0Case28 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + from: S.String, + to: S.String, + }), +).annotate({ identifier: "_0Case28" }) as any as S.Schema<_0Case28>; + +export interface _0Case29 { + deployCommandExecutionId: string; + deployId: string; + preDeployStatus: BuildStatus; + reason: _0Case6Reason; + status: number; +} +export const _0Case29 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + deployCommandExecutionId: S.String, + deployId: S.String, + preDeployStatus: BuildStatus, + reason: _0Case6Reason, + status: S.Number, + }), +).annotate({ identifier: "_0Case29" }) as any as S.Schema<_0Case29>; + +export interface _0Case30 { + deployCommandExecutionId: string; + deployId: string; +} +export const _0Case30 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + deployCommandExecutionId: S.String, + deployId: S.String, + }), +).annotate({ identifier: "_0Case30" }) as any as S.Schema<_0Case30>; + +export interface _0Case32 { + instanceID?: string; + reason?: Reason; +} +export const _0Case32 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + instanceID: S.optional(S.String), + reason: S.optional(Reason), + }), +).annotate({ identifier: "_0Case32" }) as any as S.Schema<_0Case32>; + +export interface _0Case34 { + triggeredByUser: string | null; +} +export const _0Case34 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + triggeredByUser: S.NullOr(S.String), + }), +).annotate({ identifier: "_0Case34" }) as any as S.Schema<_0Case34>; + +export interface _0Case37 { + actor: string; + suspendedByUser?: User2; +} +export const _0Case37 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + actor: S.String, + suspendedByUser: S.optional(User2), + }), +).annotate({ identifier: "_0Case37" }) as any as S.Schema<_0Case37>; + +export interface _0Case38 { + actor: string; + resumedByUser?: User2; +} +export const _0Case38 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + actor: S.String, + resumedByUser: S.optional(User2), + }), +).annotate({ identifier: "_0Case38" }) as any as S.Schema<_0Case38>; + +export interface _0Case40 { + trigger: string; +} +export const _0Case40 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + trigger: S.String, + }), +).annotate({ identifier: "_0Case40" }) as any as S.Schema<_0Case40>; + +export interface _0Case41Trigger { + /** Edge Cache change was triggered manually from the dashboard */ + manual: boolean; + user?: User2; + /** Edge Cache Change was triggered by Render */ + system: boolean; +} +export const _0Case41Trigger = /*@__PURE__*/ S.suspend(() => + S.Struct({ + manual: S.Boolean, + user: S.optional(User2), + system: S.Boolean, + }), +).annotate({ + identifier: "_0Case41Trigger", +}) as any as S.Schema<_0Case41Trigger>; + +export interface _0Case41 { + trigger: _0Case41Trigger; +} +export const _0Case41 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + trigger: _0Case41Trigger, + }), +).annotate({ identifier: "_0Case41" }) as any as S.Schema<_0Case41>; + +export type Trigger2 = _0Case41Trigger; +export const Trigger2 = _0Case41Trigger; + +export type _0Case42 = _0Case41; +export const _0Case42 = _0Case41; + +export type _0Case43 = _0Case41; +export const _0Case43 = _0Case41; + +/** The auto-deploy trigger value after it was re-enabled */ +export type NewTrigger = "commit" | "off" | "checksPass"; +export const NewTrigger = /*@__PURE__*/ S.String; + +export interface _0Case44 { + /** Why auto-deploy was disabled (manual_deploy, rollback, or setting_change) */ + reason: string; + /** The auto-deploy trigger value immediately before it was disabled */ + fromTrigger?: NewTrigger; +} +export const _0Case44 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + reason: S.String, + fromTrigger: S.optional(NewTrigger), + }), +).annotate({ identifier: "_0Case44" }) as any as S.Schema<_0Case44>; + +/** The auto-deploy trigger value after it was re-enabled */ +export type _0Case45NewTrigger = "commit" | "off" | "checksPass"; +export const _0Case45NewTrigger = /*@__PURE__*/ S.String; + +export interface _0Case45 { + /** The auto-deploy trigger value after it was re-enabled */ + newTrigger?: _0Case45NewTrigger; +} +export const _0Case45 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + newTrigger: S.optional(_0Case45NewTrigger), + }), +).annotate({ identifier: "_0Case45" }) as any as S.Schema<_0Case45>; + +export type _02 = + | _0Case0 + | _0Case1 + | _0Case2 + | _0Case3 + | _0Case4 + | _0Case5 + | _0Case6 + | _0Case7 + | _0Case8 + | _0Case9 + | _0Case10 + | _0Case11 + | _0Case12 + | _0Case13 + | _0Case14 + | _0Case15 + | _0Case16 + | _0Case16 + | _0Case18 + | _0Case19 + | _0Case19 + | _0Case3 + | _0Case22 + | _0Case23 + | _0Case24 + | unknown + | _0Case26 + | _0Case7 + | _0Case28 + | _0Case29 + | _0Case30 + | _0Case32 + | _0Case34 + | _0Case37 + | _0Case38 + | _0Case40 + | _0Case41 + | _0Case41 + | _0Case41 + | _0Case44 + | _0Case45; +export const _02 = /*@__PURE__*/ S.Unknown as any as S.Schema<_02>; + +export interface ServiceEventWithCursorEvent { + id: string; + timestamp: string; + serviceId: string; + type: _0; + details: _02; +} +export const ServiceEventWithCursorEvent = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + timestamp: S.String, + serviceId: S.String, + type: _0, + details: _02, + }), +).annotate({ + identifier: "ServiceEventWithCursorEvent", +}) as any as S.Schema; + +/** A service event with a cursor */ +export interface ServiceEventWithCursor { + event: ServiceEventWithCursorEvent; +} +export const ServiceEventWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + event: ServiceEventWithCursorEvent, + }), +).annotate({ + identifier: "ServiceEventWithCursor", +}) as any as S.Schema; + +export type ListEventsResponseBodyList = Array; +export const ListEventsResponseBodyList = /*@__PURE__*/ S.Array( + ServiceEventWithCursor, +) as any as S.Schema; + +export type ListEventsResponse = ListEventsResponseBodyList; +export const ListEventsResponse = /*@__PURE__*/ S.suspend(() => + ListEventsResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListEventsResponse", +}) as any as S.Schema; + +export type ListHeadersRequestPathList = Array; +export const ListHeadersRequestPathList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListHeadersRequestNameList = Array; +export const ListHeadersRequestNameList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListHeadersRequestValueList = Array; +export const ListHeadersRequestValueList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface ListHeadersRequest { + /** The ID of the service */ + serviceId: string; + /** Filter for specific paths that headers apply to */ + path?: ListHeadersRequestPathList; + /** Filter for header names */ + name?: ListHeadersRequestNameList; + /** Filter for header values */ + value?: ListHeadersRequestValueList; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListHeadersRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + path: S.optional(ListHeadersRequestPathList.pipe(T.Query())), + name: S.optional(ListHeadersRequestNameList.pipe(T.Query())), + value: S.optional(ListHeadersRequestValueList.pipe(T.Query())), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe( + T.Http({ method: "GET", uri: "/services/{serviceId}/headers", code: 200 }), + ), +).annotate({ + identifier: "ListHeadersRequest", +}) as any as S.Schema; + +export interface HeaderWithCursor { + header: Header; + cursor: string; +} +export const HeaderWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + header: Header, + cursor: S.String, + }), +).annotate({ + identifier: "HeaderWithCursor", +}) as any as S.Schema; + +export type ListHeadersResponseBodyList = Array; +export const ListHeadersResponseBodyList = /*@__PURE__*/ S.Array( + HeaderWithCursor, +) as any as S.Schema; + +export type ListHeadersResponse = ListHeadersResponseBodyList; +export const ListHeadersResponse = /*@__PURE__*/ S.suspend(() => + ListHeadersResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListHeadersResponse", +}) as any as S.Schema; + +export interface ListHttpFilterValuesRequest { + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** The resolution of the returned data */ + resolutionSeconds?: number; + /** Service ID to query. When multiple service ids are provided, they are ORed together */ + resource?: string; + /** This parameter is deprecated. Please use `resource` instead */ + service?: string; + /** The hosts of HTTP requests to filter to. When multiple host query params are provided, they are ORed together */ + host?: string; + /** The status codes of HTTP requests to filter to. When multiple status code query params are provided, they are ORed together */ + statusCode?: string; +} +export const ListHttpFilterValuesRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + resolutionSeconds: S.optional(S.Number.pipe(T.Query())), + resource: S.optional(S.String.pipe(T.Query())), + service: S.optional(S.String.pipe(T.Query())), + host: S.optional(S.String.pipe(T.Query())), + statusCode: S.optional(S.String.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/metrics/filters/http", code: 200 })), +).annotate({ + identifier: "ListHttpFilterValuesRequest", +}) as any as S.Schema; + +export type ListHttpFilterValuesResponseBodyItemFilter = "host" | "statusCode"; +export const ListHttpFilterValuesResponseBodyItemFilter = + /*@__PURE__*/ S.String; + +export type ListHttpFilterValuesResponseBodyItemValuesList = Array; +export const ListHttpFilterValuesResponseBodyItemValuesList = + /*@__PURE__*/ S.Array( + S.String, + ) as any as S.Schema; + +export interface ListHttpFilterValuesResponseBodyItem { + filter?: ListHttpFilterValuesResponseBodyItemFilter; + values?: ListHttpFilterValuesResponseBodyItemValuesList; +} +export const ListHttpFilterValuesResponseBodyItem = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + filter: S.optional(ListHttpFilterValuesResponseBodyItemFilter), + values: S.optional(ListHttpFilterValuesResponseBodyItemValuesList), + }), +).annotate({ + identifier: "ListHttpFilterValuesResponseBodyItem", +}) as any as S.Schema; + +/** A collection of filter values for HTTP metrics */ +export type ListHttpFilterValuesResponseBodyList = + Array; +export const ListHttpFilterValuesResponseBodyList = /*@__PURE__*/ S.Array( + ListHttpFilterValuesResponseBodyItem, +) as any as S.Schema; + +export type ListHttpFilterValuesResponse = ListHttpFilterValuesResponseBodyList; +export const ListHttpFilterValuesResponse = /*@__PURE__*/ S.suspend(() => + ListHttpFilterValuesResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListHttpFilterValuesResponse", +}) as any as S.Schema; + +export interface ListInstancesRequest { + /** The ID of the service */ + serviceId: string; +} +export const ListInstancesRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/services/{serviceId}/instances", + code: 200, + }), + ), +).annotate({ + identifier: "ListInstancesRequest", +}) as any as S.Schema; + +export interface ServiceInstance { + id: string; + createdAt: string; +} +export const ServiceInstance = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + createdAt: S.String, + }), +).annotate({ + identifier: "ServiceInstance", +}) as any as S.Schema; + +export type ListInstancesResponseBodyList = Array; +export const ListInstancesResponseBodyList = /*@__PURE__*/ S.Array( + ServiceInstance, +) as any as S.Schema; + +export type ListInstancesResponse = ListInstancesResponseBodyList; +export const ListInstancesResponse = /*@__PURE__*/ S.suspend(() => + ListInstancesResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListInstancesResponse", +}) as any as S.Schema; + +export type ListJobRequestStatusItem = + | "pending" + | "running" + | "succeeded" + | "failed" + | "canceled"; +export const ListJobRequestStatusItem = /*@__PURE__*/ S.String; + +export type ListJobRequestStatusList = Array< + ListJobRequestStatusItem | (string & {}) +>; +export const ListJobRequestStatusList = /*@__PURE__*/ S.Array( + ListJobRequestStatusItem, +) as any as S.Schema; + +export interface ListJobRequest { + /** The ID of the service */ + serviceId: string; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; + /** Filter for the status of the job (`pending`, `running`, `succeeded`, `failed`, or `canceled`) */ + status?: ListJobRequestStatusList; + /** Filter for jobs created before a certain time (specified as an ISO 8601 timestamp) */ + createdBefore?: string; + /** Filter for jobs created after a certain time (specified as an ISO 8601 timestamp) */ + createdAfter?: string; + /** Filter for jobs started before a certain time (specified as an ISO 8601 timestamp) */ + startedBefore?: string; + /** Filter for jobs started after a certain time (specified as an ISO 8601 timestamp) */ + startedAfter?: string; + /** Filter for jobs finished before a certain time (specified as an ISO 8601 timestamp) */ + finishedBefore?: string; + /** Filter for jobs finished after a certain time (specified as an ISO 8601 timestamp) */ + finishedAfter?: string; +} +export const ListJobRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + status: S.optional(ListJobRequestStatusList.pipe(T.Query())), + createdBefore: S.optional(S.String.pipe(T.Query())), + createdAfter: S.optional(S.String.pipe(T.Query())), + startedBefore: S.optional(S.String.pipe(T.Query())), + startedAfter: S.optional(S.String.pipe(T.Query())), + finishedBefore: S.optional(S.String.pipe(T.Query())), + finishedAfter: S.optional(S.String.pipe(T.Query())), + }).pipe( + T.Http({ method: "GET", uri: "/services/{serviceId}/jobs", code: 200 }), + ), +).annotate({ identifier: "ListJobRequest" }) as any as S.Schema; + +export interface JobWithCursor { + job: Schema7; + cursor: string; +} +export const JobWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + job: Schema7, + cursor: S.String, + }), +).annotate({ identifier: "JobWithCursor" }) as any as S.Schema; + +export type ListJobResponseBodyList = Array; +export const ListJobResponseBodyList = /*@__PURE__*/ S.Array( + JobWithCursor, +) as any as S.Schema; + +export type ListJobResponse = ListJobResponseBodyList; +export const ListJobResponse = /*@__PURE__*/ S.suspend(() => + ListJobResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListJobResponse", +}) as any as S.Schema; + +export type ListKeyValueRequestNameList = Array; +export const ListKeyValueRequestNameList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListKeyValueRequestRegionList = Array; +export const ListKeyValueRequestRegionList = /*@__PURE__*/ S.Array( + Region, +) as any as S.Schema; + +export type ListKeyValueRequestOwnerIdList = Array; +export const ListKeyValueRequestOwnerIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListKeyValueRequestEnvironmentIdList = Array; +export const ListKeyValueRequestEnvironmentIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface ListKeyValueRequest { + /** Filter by name */ + name?: ListKeyValueRequestNameList; + /** Filter by resource region */ + region?: ListKeyValueRequestRegionList; + /** Filter for resources created before a certain time (specified as an ISO 8601 timestamp) */ + createdBefore?: string; + /** Filter for resources created after a certain time (specified as an ISO 8601 timestamp) */ + createdAfter?: string; + /** Filter for resources updated before a certain time (specified as an ISO 8601 timestamp) */ + updatedBefore?: string; + /** Filter for resources updated after a certain time (specified as an ISO 8601 timestamp) */ + updatedAfter?: string; + /** The ID of the workspaces to return resources for */ + ownerId?: ListKeyValueRequestOwnerIdList; + /** Filter for resources that belong to an environment */ + environmentId?: ListKeyValueRequestEnvironmentIdList; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListKeyValueRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + name: S.optional(ListKeyValueRequestNameList.pipe(T.Query())), + region: S.optional(ListKeyValueRequestRegionList.pipe(T.Query())), + createdBefore: S.optional(S.String.pipe(T.Query())), + createdAfter: S.optional(S.String.pipe(T.Query())), + updatedBefore: S.optional(S.String.pipe(T.Query())), + updatedAfter: S.optional(S.String.pipe(T.Query())), + ownerId: S.optional(ListKeyValueRequestOwnerIdList.pipe(T.Query())), + environmentId: S.optional( + ListKeyValueRequestEnvironmentIdList.pipe(T.Query()), + ), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/key-value", code: 200 })), +).annotate({ + identifier: "ListKeyValueRequest", +}) as any as S.Schema; + +/** The IP allow list for the Key Value instance */ +export type KeyValueIpAllowListList = Array; +export const KeyValueIpAllowListList = /*@__PURE__*/ S.Array( + CidrBlockAndDescription, +) as any as S.Schema; + +/** A Key Value instance */ +export interface KeyValue { + /** The ID of the Key Value instance */ + id: string; + /** The creation time of the Key Value instance */ + createdAt: string; + /** The last updated time of the Key Value instance */ + updatedAt: string; + status: DatabaseStatus; + region: Region; + plan: KeyValuePlan; + /** The name of the Key Value instance */ + name: string; + owner: Owner; + options: KeyValueOptions; + /** The IP allow list for the Key Value instance */ + ipAllowList: KeyValueIpAllowListList; + /** The ID of the environment the Key Value instance is associated with */ + environmentId?: string; + /** The version of Key Value */ + version: string; + /** The URL to view the Key Value instance in the Render Dashboard */ + dashboardUrl: string; +} +export const KeyValue = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + createdAt: S.String, + updatedAt: S.String, + status: DatabaseStatus, + region: Region, + plan: KeyValuePlan, + name: S.String, + owner: Owner, + options: KeyValueOptions, + ipAllowList: KeyValueIpAllowListList, + environmentId: S.optional(S.String), + version: S.String, + dashboardUrl: S.String, + }), +).annotate({ identifier: "KeyValue" }) as any as S.Schema; + +export interface KeyValueWithCursor { + keyValue: KeyValue; + cursor: string; +} +export const KeyValueWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + keyValue: KeyValue, + cursor: S.String, + }), +).annotate({ + identifier: "KeyValueWithCursor", +}) as any as S.Schema; + +export type ListKeyValueResponseBodyList = Array; +export const ListKeyValueResponseBodyList = /*@__PURE__*/ S.Array( + KeyValueWithCursor, +) as any as S.Schema; + +export type ListKeyValueResponse = ListKeyValueResponseBodyList; +export const ListKeyValueResponse = /*@__PURE__*/ S.suspend(() => + ListKeyValueResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListKeyValueResponse", +}) as any as S.Schema; + +export type ListLogsRequestDirection = "forward" | "backward"; +export const ListLogsRequestDirection = /*@__PURE__*/ S.String; + +export type ListLogsRequestResourceList = Array; +export const ListLogsRequestResourceList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsRequestInstanceList = Array; +export const ListLogsRequestInstanceList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsRequestHostList = Array; +export const ListLogsRequestHostList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsRequestStatusCodeList = Array; +export const ListLogsRequestStatusCodeList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsRequestMethodList = Array; +export const ListLogsRequestMethodList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsRequestTaskList = Array; +export const ListLogsRequestTaskList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsRequestTaskRunList = Array; +export const ListLogsRequestTaskRunList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsRequestSandboxList = Array; +export const ListLogsRequestSandboxList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsRequestLevelList = Array; +export const ListLogsRequestLevelList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsRequestTypeList = Array; +export const ListLogsRequestTypeList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsRequestTextList = Array; +export const ListLogsRequestTextList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsRequestPathList = Array; +export const ListLogsRequestPathList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface ListLogsRequest { + /** The ID of the workspace to return logs for */ + ownerId: string; + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** The direction to query logs for. Backward will return most recent logs first. Forward will start with the oldest logs in the time range. */ + direction?: ListLogsRequestDirection | (string & {}); + /** Filter logs by their resource. A resource is the id of a server, cronjob, job, postgres, redis, workflow, or sandbox group. */ + resource: ListLogsRequestResourceList; + /** Filter logs by the instance they were emitted from. An instance is the id of a specific running server. */ + instance?: ListLogsRequestInstanceList; + /** Filter request logs by their host. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported. */ + host?: ListLogsRequestHostList; + /** Filter request logs by their status code. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported. */ + statusCode?: ListLogsRequestStatusCodeList; + /** Filter request logs by their requests method. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported. */ + method?: ListLogsRequestMethodList; + /** Filter logs by their task(s) */ + task?: ListLogsRequestTaskList; + /** Filter logs by their task run id(s) */ + taskRun?: ListLogsRequestTaskRunList; + /** Filter logs by sandbox ID. */ + sandbox?: ListLogsRequestSandboxList; + /** Filter logs by their severity level. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported. */ + level?: ListLogsRequestLevelList; + /** Filter logs by their type. Types include `app` for application logs, `request` for request logs, and `build` for build logs. You can find the full set of types available for a query by using the `GET /logs/values` endpoint. */ + type?: ListLogsRequestTypeList; + /** Filter by the text of the logs. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported. */ + text?: ListLogsRequestTextList; + /** Filter request logs by their path. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported. */ + path?: ListLogsRequestPathList; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListLogsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.String.pipe(T.Query()), + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + direction: S.optional(ListLogsRequestDirection.pipe(T.Query())), + resource: ListLogsRequestResourceList.pipe(T.Query()), + instance: S.optional(ListLogsRequestInstanceList.pipe(T.Query())), + host: S.optional(ListLogsRequestHostList.pipe(T.Query())), + statusCode: S.optional(ListLogsRequestStatusCodeList.pipe(T.Query())), + method: S.optional(ListLogsRequestMethodList.pipe(T.Query())), + task: S.optional(ListLogsRequestTaskList.pipe(T.Query())), + taskRun: S.optional(ListLogsRequestTaskRunList.pipe(T.Query())), + sandbox: S.optional(ListLogsRequestSandboxList.pipe(T.Query())), + level: S.optional(ListLogsRequestLevelList.pipe(T.Query())), + type: S.optional(ListLogsRequestTypeList.pipe(T.Query())), + text: S.optional(ListLogsRequestTextList.pipe(T.Query())), + path: S.optional(ListLogsRequestPathList.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/logs", code: 200 })), +).annotate({ + identifier: "ListLogsRequest", +}) as any as S.Schema; + +/** The name of the log label */ +export type SchemaLabelsItemName = + | "resource" + | "instance" + | "host" + | "statusCode" + | "method" + | "level" + | "workflowService" + | "workflowVeresion" + | "task" + | "taskRun" + | "sandbox" + | "type" + | "text" + | "path" + | "blocked"; +export const SchemaLabelsItemName = /*@__PURE__*/ S.String; + +/** A log label */ +export interface SchemaLabelsItem { + /** The name of the log label */ + name: SchemaLabelsItemName; + /** The value of the log label */ + value: string; +} +export const SchemaLabelsItem = /*@__PURE__*/ S.suspend(() => + S.Struct({ + name: SchemaLabelsItemName, + value: S.String, + }), +).annotate({ + identifier: "SchemaLabelsItem", +}) as any as S.Schema; + +export type SchemaLabelsList = Array; +export const SchemaLabelsList = /*@__PURE__*/ S.Array( + SchemaLabelsItem, +) as any as S.Schema; + +/** A log entry with metadata */ +export interface Schema8 { + /** A unique ID of the log entry */ + id: string; + /** The message of the log entry */ + message: string; + /** The timestamp of the log entry */ + timestamp: string; + labels: SchemaLabelsList; +} +export const Schema8 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + message: S.String, + timestamp: S.String, + labels: SchemaLabelsList, + }), +).annotate({ identifier: "Schema8" }) as any as S.Schema; + +export type ListLogsResponseLogsList = Array; +export const ListLogsResponseLogsList = /*@__PURE__*/ S.Array( + Schema8, +) as any as S.Schema; + +export interface ListLogsResponse { + /** True if there are more logs to fetch */ + hasMore: boolean; + /** The start time to use in the next query to fetch the next set of logs */ + nextStartTime: string; + /** The end time to use in the next query to fetch the next set of logs */ + nextEndTime: string; + logs: ListLogsResponseLogsList; +} +export const ListLogsResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + hasMore: S.Boolean, + nextStartTime: S.String, + nextEndTime: S.String, + logs: ListLogsResponseLogsList, + }), +).annotate({ + identifier: "ListLogsResponse", +}) as any as S.Schema; + +export type ListLogsValuesRequestLabel = + | "instance" + | "host" + | "statusCode" + | "method" + | "level" + | "type"; +export const ListLogsValuesRequestLabel = /*@__PURE__*/ S.String; + +export type ListLogsValuesRequestDirection = "forward" | "backward"; +export const ListLogsValuesRequestDirection = /*@__PURE__*/ S.String; + +export type ListLogsValuesRequestResourceList = Array; +export const ListLogsValuesRequestResourceList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsValuesRequestInstanceList = Array; +export const ListLogsValuesRequestInstanceList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsValuesRequestHostList = Array; +export const ListLogsValuesRequestHostList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsValuesRequestStatusCodeList = Array; +export const ListLogsValuesRequestStatusCodeList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsValuesRequestMethodList = Array; +export const ListLogsValuesRequestMethodList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsValuesRequestTaskList = Array; +export const ListLogsValuesRequestTaskList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsValuesRequestTaskRunList = Array; +export const ListLogsValuesRequestTaskRunList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsValuesRequestSandboxList = Array; +export const ListLogsValuesRequestSandboxList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsValuesRequestLevelList = Array; +export const ListLogsValuesRequestLevelList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsValuesRequestTypeList = Array; +export const ListLogsValuesRequestTypeList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsValuesRequestTextList = Array; +export const ListLogsValuesRequestTextList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsValuesRequestPathList = Array; +export const ListLogsValuesRequestPathList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface ListLogsValuesRequest { + /** The ID of the workspace to return log label values for */ + ownerId: string; + /** The label to query logs for */ + label: ListLogsValuesRequestLabel | (string & {}); + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** The direction to query logs for. Backward will return most recent logs first. Forward will start with the oldest logs in the time range. */ + direction?: ListLogsValuesRequestDirection | (string & {}); + /** Filter logs by their resource. A resource is the id of a server, cronjob, job, postgres, redis, workflow, or sandbox group. */ + resource: ListLogsValuesRequestResourceList; + /** Filter logs by the instance they were emitted from. An instance is the id of a specific running server. */ + instance?: ListLogsValuesRequestInstanceList; + /** Filter request logs by their host. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported. */ + host?: ListLogsValuesRequestHostList; + /** Filter request logs by their status code. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported. */ + statusCode?: ListLogsValuesRequestStatusCodeList; + /** Filter request logs by their requests method. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported. */ + method?: ListLogsValuesRequestMethodList; + /** Filter logs by their task(s) */ + task?: ListLogsValuesRequestTaskList; + /** Filter logs by their task run id(s) */ + taskRun?: ListLogsValuesRequestTaskRunList; + /** Filter logs by sandbox ID. */ + sandbox?: ListLogsValuesRequestSandboxList; + /** Filter logs by their severity level. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported. */ + level?: ListLogsValuesRequestLevelList; + /** Filter logs by their type. Types include `app` for application logs, `request` for request logs, and `build` for build logs. You can find the full set of types available for a query by using the `GET /logs/values` endpoint. */ + type?: ListLogsValuesRequestTypeList; + /** Filter by the text of the logs. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported. */ + text?: ListLogsValuesRequestTextList; + /** Filter request logs by their path. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported. */ + path?: ListLogsValuesRequestPathList; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListLogsValuesRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.String.pipe(T.Query()), + label: ListLogsValuesRequestLabel.pipe(T.Query()), + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + direction: S.optional(ListLogsValuesRequestDirection.pipe(T.Query())), + resource: ListLogsValuesRequestResourceList.pipe(T.Query()), + instance: S.optional(ListLogsValuesRequestInstanceList.pipe(T.Query())), + host: S.optional(ListLogsValuesRequestHostList.pipe(T.Query())), + statusCode: S.optional(ListLogsValuesRequestStatusCodeList.pipe(T.Query())), + method: S.optional(ListLogsValuesRequestMethodList.pipe(T.Query())), + task: S.optional(ListLogsValuesRequestTaskList.pipe(T.Query())), + taskRun: S.optional(ListLogsValuesRequestTaskRunList.pipe(T.Query())), + sandbox: S.optional(ListLogsValuesRequestSandboxList.pipe(T.Query())), + level: S.optional(ListLogsValuesRequestLevelList.pipe(T.Query())), + type: S.optional(ListLogsValuesRequestTypeList.pipe(T.Query())), + text: S.optional(ListLogsValuesRequestTextList.pipe(T.Query())), + path: S.optional(ListLogsValuesRequestPathList.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/logs/values", code: 200 })), +).annotate({ + identifier: "ListLogsValuesRequest", +}) as any as S.Schema; + +export type ListLogsValuesResponseBodyList = Array; +export const ListLogsValuesResponseBodyList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListLogsValuesResponse = ListLogsValuesResponseBodyList; +export const ListLogsValuesResponse = /*@__PURE__*/ S.suspend(() => + ListLogsValuesResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListLogsValuesResponse", +}) as any as S.Schema; + +export type ListMaintenanceRequestResourceIdList = Array; +export const ListMaintenanceRequestResourceIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListMaintenanceRequestOwnerIdList = Array; +export const ListMaintenanceRequestOwnerIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListMaintenanceRequestStateItem = + | "scheduled" + | "in_progress" + | "user_fix_required" + | "cancelled" + | "succeeded" + | "failed"; +export const ListMaintenanceRequestStateItem = /*@__PURE__*/ S.String; + +export type ListMaintenanceRequestStateList = Array< + ListMaintenanceRequestStateItem | (string & {}) +>; +export const ListMaintenanceRequestStateList = /*@__PURE__*/ S.Array( + ListMaintenanceRequestStateItem, +) as any as S.Schema; + +export interface ListMaintenanceRequest { + resourceId?: ListMaintenanceRequestResourceIdList; + /** The ID of the workspaces to return resources for */ + ownerId?: ListMaintenanceRequestOwnerIdList; + state?: ListMaintenanceRequestStateList; +} +export const ListMaintenanceRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + resourceId: S.optional( + ListMaintenanceRequestResourceIdList.pipe(T.Query()), + ), + ownerId: S.optional(ListMaintenanceRequestOwnerIdList.pipe(T.Query())), + state: S.optional(ListMaintenanceRequestStateList.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/maintenance", code: 200 })), +).annotate({ + identifier: "ListMaintenanceRequest", +}) as any as S.Schema; + +export interface Schema11 { + id: string; + type: string; + scheduledAt: string; + /** If present, the maintenance run cannot be scheduled for later than this date-time. */ + pendingMaintenanceBy?: string; + state: Items4; + resourceId: string; +} +export const Schema11 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + type: S.String, + scheduledAt: S.String, + pendingMaintenanceBy: S.optional(S.String), + state: Items4, + resourceId: S.String, + }), +).annotate({ identifier: "Schema11" }) as any as S.Schema; + +export type ListMaintenanceResponseBodyList = Array; +export const ListMaintenanceResponseBodyList = /*@__PURE__*/ S.Array( + Schema11, +) as any as S.Schema; + +export type ListMaintenanceResponse = ListMaintenanceResponseBodyList; +export const ListMaintenanceResponse = /*@__PURE__*/ S.suspend(() => + ListMaintenanceResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListMaintenanceResponse", +}) as any as S.Schema; + +export type ListNotificationOverridesRequestOwnerIdList = Array; +export const ListNotificationOverridesRequestOwnerIdList = + /*@__PURE__*/ S.Array( + S.String, + ) as any as S.Schema; + +export type ListNotificationOverridesRequestServiceIdList = Array; +export const ListNotificationOverridesRequestServiceIdList = + /*@__PURE__*/ S.Array( + S.String, + ) as any as S.Schema; + +export interface ListNotificationOverridesRequest { + /** The ID of the workspaces to return resources for */ + ownerId?: ListNotificationOverridesRequestOwnerIdList; + /** Filter for resources by service ID */ + serviceId?: ListNotificationOverridesRequestServiceIdList; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListNotificationOverridesRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.optional( + ListNotificationOverridesRequestOwnerIdList.pipe(T.Query()), + ), + serviceId: S.optional( + ListNotificationOverridesRequestServiceIdList.pipe(T.Query()), + ), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe( + T.Http({ + method: "GET", + uri: "/notification-settings/overrides", + code: 200, + }), + ), +).annotate({ + identifier: "ListNotificationOverridesRequest", +}) as any as S.Schema; + +export type PreviewNotificationsEnabled = "default" | "false" | "true"; +export const PreviewNotificationsEnabled = /*@__PURE__*/ S.String; + +export type NotificationsToSend2 = "default" | "none" | "failure" | "all"; +export const NotificationsToSend2 = /*@__PURE__*/ S.String; + +export interface NotificationOverrideWithCursorOverride { + serviceId: string; + previewNotificationsEnabled: PreviewNotificationsEnabled; + notificationsToSend: NotificationsToSend2; +} +export const NotificationOverrideWithCursorOverride = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + serviceId: S.String, + previewNotificationsEnabled: PreviewNotificationsEnabled, + notificationsToSend: NotificationsToSend2, + }), +).annotate({ + identifier: "NotificationOverrideWithCursorOverride", +}) as any as S.Schema; + +export interface NotificationOverrideWithCursor { + override: NotificationOverrideWithCursorOverride; + cursor: string; +} +export const NotificationOverrideWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + override: NotificationOverrideWithCursorOverride, + cursor: S.String, + }), +).annotate({ + identifier: "NotificationOverrideWithCursor", +}) as any as S.Schema; + +export type ListNotificationOverridesResponseBodyList = + Array; +export const ListNotificationOverridesResponseBodyList = /*@__PURE__*/ S.Array( + NotificationOverrideWithCursor, +) as any as S.Schema; + +export type ListNotificationOverridesResponse = + ListNotificationOverridesResponseBodyList; +export const ListNotificationOverridesResponse = /*@__PURE__*/ S.suspend(() => + ListNotificationOverridesResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListNotificationOverridesResponse", +}) as any as S.Schema; + +export type ListOrganizationAuditLogsRequestDirection = "forward" | "backward"; +export const ListOrganizationAuditLogsRequestDirection = /*@__PURE__*/ S.String; + +export interface ListOrganizationAuditLogsRequest { + /** The unique identifier of the organization */ + orgId: string; + /** Start time for filtering audit logs (ISO 8601 format) */ + startTime?: string; + /** End time for filtering audit logs (ISO 8601 format) */ + endTime?: string; + /** The direction to query logs for. Backward will return most recent logs first. Forward will start with the oldest logs in the time range. */ + direction?: ListOrganizationAuditLogsRequestDirection | (string & {}); + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of audit log items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListOrganizationAuditLogsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + orgId: S.String.pipe(T.Label()), + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + direction: S.optional( + ListOrganizationAuditLogsRequestDirection.pipe(T.Query()), + ), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe( + T.Http({ + method: "GET", + uri: "/organizations/{orgId}/audit-logs", + code: 200, + }), + ), +).annotate({ + identifier: "ListOrganizationAuditLogsRequest", +}) as any as S.Schema; + +/** The type of event that occurred */ +export type AuditLogEvent = + | "AcceptOrgInviteEvent" + | "AcceptTeamInviteEvent" + | "AddOrgMemberEvent" + | "ApplyBlueprintEvent" + | "ChangeEnvironmentProtectionEvent" + | "ChangeOrg2FAEnforcementEvent" + | "ChangeOrgAllowedLoginMethodsEvent" + | "ChangeOrgNameEvent" + | "ChangeOrgRoleEvent" + | "ChangeTeam2FAEnforcementEvent" + | "ChangeTeamAllowedLoginMethodsEvent" + | "ChangeTeamMemberRoleEvent" + | "ChangeWorkspaceDeployHandlingEvent" + | "ChangeWorkspacePrivacyEvent" + | "CreateArtifactSourceEvent" + | "CreateCronJobEvent" + | "CreateEnvVarsEvent" + | "CreateEnvironmentEvent" + | "CreateOrgDomainEvent" + | "CreateOtelIntegrationEvent" + | "CreatePostgresEvent" + | "CreatePrivateLinkEvent" + | "CreateProjectEvent" + | "CreateRedisEvent" + | "CreateSSOConnectionEvent" + | "CreateSavedSearchEvent" + | "CreateServerDiskEvent" + | "CreateServerEvent" + | "CreateWebhookEvent" + | "CreateWorkspaceEvent" + | "DeleteCronJobEvent" + | "DeleteEnvGroupEvent" + | "DeleteEnvVarsEvent" + | "DeleteEnvironmentEvent" + | "DeleteOrgDomainEvent" + | "DeleteOtelIntegrationEvent" + | "DeletePostgresEvent" + | "DeletePrivateLinkEvent" + | "DeleteProjectEvent" + | "DeleteRedisEvent" + | "DeleteSSOConnectionEvent" + | "DeleteSavedSearchEvent" + | "DeleteServerDiskEvent" + | "DeleteServerEvent" + | "DeleteWebhookEvent" + | "DeleteWorkspaceEvent" + | "DocumentDownloadEvent" + | "DownloadDatabaseBackupEvent" + | "EnableRedisInternalAuthEvent" + | "InviteToOrgEvent" + | "InviteToTeamEvent" + | "JoinTeamEvent" + | "LoginEvent" + | "LogoutEvent" + | "MaintenanceModeEnabledEvent" + | "MaintenanceModeURIUpdatedEvent" + | "MoveEnvironmentResourceEvent" + | "ProvisionOrganizationSCIMToken" + | "RemoveOrgMemberEvent" + | "RemoveUserFromTeamEvent" + | "RestoreDiskSnapshotEvent" + | "ResumePostgresEvent" + | "ResumeServiceEvent" + | "RevokeOrganizationSCIMToken" + | "SignNDAEvent" + | "EndShellEvent" + | "StartShellEvent" + | "SuspendPostgresEvent" + | "SuspendServiceEvent" + | "UpdateEnvVarsEvent" + | "UpdateIPAllowListEvent" + | "UpdateOtelIntegrationEvent" + | "UpdateSSOConnectionEvent" + | "UpdateServiceNameEvent" + | "UpdateWebhookEvent" + | "VerifyOrgDomainEvent" + | "ViewConnectionInfoEvent" + | "ViewEnvVarValuesEvent" + | "GrantOAuthAccessEvent" + | "RevokeOAuthAccessEvent"; +export const AuditLogEvent = /*@__PURE__*/ S.String; + +/** The status of the event */ +export type AuditLogStatus = "success" | "error"; +export const AuditLogStatus = /*@__PURE__*/ S.String; + +/** The type of actor that performed the action */ +export type AuditLogActorType = "user" | "rest_api" | "system"; +export const AuditLogActorType = /*@__PURE__*/ S.String; + +export interface AuditLogActor { + /** The type of actor that performed the action */ + type: AuditLogActorType; + /** Email address of the actor (if applicable) */ + email?: string; + /** Unique identifier of the actor (if applicable) */ + id?: string; +} +export const AuditLogActor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + type: AuditLogActorType, + email: S.optional(S.String), + id: S.optional(S.String), + }), +).annotate({ identifier: "AuditLogActor" }) as any as S.Schema; + +/** Additional context information about the event */ +export type AuditLogMetadataMap = { [key: string]: string | undefined }; +export const AuditLogMetadataMap = /*@__PURE__*/ S.Record( + S.String, + S.String, +) as any as S.Schema; + +export interface AuditLog { + /** Unique identifier for the audit log entry */ + id: string; + /** When the event occurred (ISO 8601 format) */ + timestamp: string; + /** The type of event that occurred */ + event: AuditLogEvent; + /** The status of the event */ + status: AuditLogStatus; + actor: AuditLogActor; + /** Additional context information about the event */ + metadata: AuditLogMetadataMap; +} +export const AuditLog = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + timestamp: S.String, + event: AuditLogEvent, + status: AuditLogStatus, + actor: AuditLogActor, + metadata: AuditLogMetadataMap, + }), +).annotate({ identifier: "AuditLog" }) as any as S.Schema; + +export interface AuditLogWithCursor { + cursor: string; + auditLog: AuditLog; +} +export const AuditLogWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + cursor: S.String, + auditLog: AuditLog, + }), +).annotate({ + identifier: "AuditLogWithCursor", +}) as any as S.Schema; + +export type ListOrganizationAuditLogsResponseBodyList = + Array; +export const ListOrganizationAuditLogsResponseBodyList = /*@__PURE__*/ S.Array( + AuditLogWithCursor, +) as any as S.Schema; + +export type ListOrganizationAuditLogsResponse = + ListOrganizationAuditLogsResponseBodyList; +export const ListOrganizationAuditLogsResponse = /*@__PURE__*/ S.suspend(() => + ListOrganizationAuditLogsResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListOrganizationAuditLogsResponse", +}) as any as S.Schema; + +export type ListOwnerAuditLogsRequestDirection = "forward" | "backward"; +export const ListOwnerAuditLogsRequestDirection = /*@__PURE__*/ S.String; + +export interface ListOwnerAuditLogsRequest { + /** The ID of the workspace to return resources for */ + ownerId: string; + /** Start time for filtering audit logs (ISO 8601 format) */ + startTime?: string; + /** End time for filtering audit logs (ISO 8601 format) */ + endTime?: string; + /** The direction to query logs for. Backward will return most recent logs first. Forward will start with the oldest logs in the time range. */ + direction?: ListOwnerAuditLogsRequestDirection | (string & {}); + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of audit log items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListOwnerAuditLogsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.String.pipe(T.Label()), + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + direction: S.optional(ListOwnerAuditLogsRequestDirection.pipe(T.Query())), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe( + T.Http({ method: "GET", uri: "/owners/{ownerId}/audit-logs", code: 200 }), + ), +).annotate({ + identifier: "ListOwnerAuditLogsRequest", +}) as any as S.Schema; + +export type ListOwnerAuditLogsResponseBodyList = Array; +export const ListOwnerAuditLogsResponseBodyList = /*@__PURE__*/ S.Array( + AuditLogWithCursor, +) as any as S.Schema; + +export type ListOwnerAuditLogsResponse = ListOwnerAuditLogsResponseBodyList; +export const ListOwnerAuditLogsResponse = /*@__PURE__*/ S.suspend(() => + ListOwnerAuditLogsResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListOwnerAuditLogsResponse", +}) as any as S.Schema; + +export type ListOwnersRequestNameList = Array; +export const ListOwnersRequestNameList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListOwnersRequestEmailList = Array; +export const ListOwnersRequestEmailList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface ListOwnersRequest { + /** Only return workspaces with one of the provided names. Only exact matches are returned. */ + name?: ListOwnersRequestNameList; + /** Only return workspaces owned by one of the provided email addresses. */ + email?: ListOwnersRequestEmailList; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListOwnersRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + name: S.optional(ListOwnersRequestNameList.pipe(T.Query())), + email: S.optional(ListOwnersRequestEmailList.pipe(T.Query())), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/owners", code: 200 })), +).annotate({ + identifier: "ListOwnersRequest", +}) as any as S.Schema; + +export interface OwnerWithCursor { + owner?: Owner; + cursor?: string; +} +export const OwnerWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + owner: S.optional(Owner), + cursor: S.optional(S.String), + }), +).annotate({ + identifier: "OwnerWithCursor", +}) as any as S.Schema; + +export type ListOwnersResponseBodyList = Array; +export const ListOwnersResponseBodyList = /*@__PURE__*/ S.Array( + OwnerWithCursor, +) as any as S.Schema; + +export type ListOwnersResponse = ListOwnersResponseBodyList; +export const ListOwnersResponse = /*@__PURE__*/ S.suspend(() => + ListOwnersResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListOwnersResponse", +}) as any as S.Schema; + +export interface ListPathFilterValuesRequest { + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** The resolution of the returned data */ + resolutionSeconds?: number; + /** Service ID to query. When multiple service ids are provided, they are ORed together */ + resource?: string; + /** This parameter is deprecated. Please use `resource` instead */ + service?: string; + /** The hosts of HTTP requests to filter to. When multiple host query params are provided, they are ORed together */ + host?: string; + /** The status codes of HTTP requests to filter to. When multiple status code query params are provided, they are ORed together */ + statusCode?: string; + /** The paths of HTTP requests to filter to. When multiple path query params are provided, they are ORed together */ + path?: string; +} +export const ListPathFilterValuesRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + resolutionSeconds: S.optional(S.Number.pipe(T.Query())), + resource: S.optional(S.String.pipe(T.Query())), + service: S.optional(S.String.pipe(T.Query())), + host: S.optional(S.String.pipe(T.Query())), + statusCode: S.optional(S.String.pipe(T.Query())), + path: S.optional(S.String.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/metrics/filters/path", code: 200 })), +).annotate({ + identifier: "ListPathFilterValuesRequest", +}) as any as S.Schema; + +/** A collection of suggested paths to filter by */ +export type ListPathFilterValuesResponseBodyList = Array; +export const ListPathFilterValuesResponseBodyList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListPathFilterValuesResponse = ListPathFilterValuesResponseBodyList; +export const ListPathFilterValuesResponse = /*@__PURE__*/ S.suspend(() => + ListPathFilterValuesResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListPathFilterValuesResponse", +}) as any as S.Schema; + +export type ListPostgresRequestNameList = Array; +export const ListPostgresRequestNameList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListPostgresRequestRegionList = Array; +export const ListPostgresRequestRegionList = /*@__PURE__*/ S.Array( + Region, +) as any as S.Schema; + +export type ListPostgresRequestSuspendedItem = "suspended" | "not_suspended"; +export const ListPostgresRequestSuspendedItem = /*@__PURE__*/ S.String; + +export type ListPostgresRequestSuspendedList = Array< + ListPostgresRequestSuspendedItem | (string & {}) +>; +export const ListPostgresRequestSuspendedList = /*@__PURE__*/ S.Array( + ListPostgresRequestSuspendedItem, +) as any as S.Schema; + +export type ListPostgresRequestOwnerIdList = Array; +export const ListPostgresRequestOwnerIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListPostgresRequestEnvironmentIdList = Array; +export const ListPostgresRequestEnvironmentIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface ListPostgresRequest { + /** Filter by name */ + name?: ListPostgresRequestNameList; + /** Filter by resource region */ + region?: ListPostgresRequestRegionList; + /** Filter resources based on whether they're suspended or not suspended */ + suspended?: ListPostgresRequestSuspendedList; + /** Filter for resources created before a certain time (specified as an ISO 8601 timestamp) */ + createdBefore?: string; + /** Filter for resources created after a certain time (specified as an ISO 8601 timestamp) */ + createdAfter?: string; + /** Filter for resources updated before a certain time (specified as an ISO 8601 timestamp) */ + updatedBefore?: string; + /** Filter for resources updated after a certain time (specified as an ISO 8601 timestamp) */ + updatedAfter?: string; + /** The ID of the workspaces to return resources for */ + ownerId?: ListPostgresRequestOwnerIdList; + /** Filter for resources that belong to an environment */ + environmentId?: ListPostgresRequestEnvironmentIdList; + /** Include replicas in the response */ + includeReplicas?: boolean; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListPostgresRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + name: S.optional(ListPostgresRequestNameList.pipe(T.Query())), + region: S.optional(ListPostgresRequestRegionList.pipe(T.Query())), + suspended: S.optional(ListPostgresRequestSuspendedList.pipe(T.Query())), + createdBefore: S.optional(S.String.pipe(T.Query())), + createdAfter: S.optional(S.String.pipe(T.Query())), + updatedBefore: S.optional(S.String.pipe(T.Query())), + updatedAfter: S.optional(S.String.pipe(T.Query())), + ownerId: S.optional(ListPostgresRequestOwnerIdList.pipe(T.Query())), + environmentId: S.optional( + ListPostgresRequestEnvironmentIdList.pipe(T.Query()), + ), + includeReplicas: S.optional(S.Boolean.pipe(T.Query())), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/postgres", code: 200 })), +).annotate({ + identifier: "ListPostgresRequest", +}) as any as S.Schema; + +export type PostgresIpAllowListList = Array; +export const PostgresIpAllowListList = /*@__PURE__*/ S.Array( + CidrBlockAndDescription, +) as any as S.Schema; + +export type PostgresSuspended = "suspended" | "not_suspended"; +export const PostgresSuspended = /*@__PURE__*/ S.String; + +export type PostgresSuspendersList = Array; +export const PostgresSuspendersList = /*@__PURE__*/ S.Array( + SuspenderType, +) as any as S.Schema; + +export interface Postgres { + id: string; + ipAllowList: PostgresIpAllowListList; + createdAt: string; + updatedAt: string; + /** The time at which the database will be expire. Applies to free tier databases only. */ + expiresAt?: string; + databaseName: string; + databaseUser: string; + environmentId?: string; + highAvailabilityEnabled: boolean; + name: string; + owner: Owner; + plan: Plan2; + diskSizeGB?: number; + primaryPostgresID?: string; + region: Region; + readReplicas: ReadReplicas; + role: DatabaseRole; + status: DatabaseStatus; + version: PostgresVersion; + suspended: PostgresSuspended; + suspenders: PostgresSuspendersList; + /** The URL to view the Postgres instance in the Render Dashboard */ + dashboardUrl: string; + diskAutoscalingEnabled: boolean; + /** What connection pool to use (if any) out of 'pgbouncer' and 'none' */ + connectionPool: string; +} +export const Postgres = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + ipAllowList: PostgresIpAllowListList, + createdAt: S.String, + updatedAt: S.String, + expiresAt: S.optional(S.String), + databaseName: S.String, + databaseUser: S.String, + environmentId: S.optional(S.String), + highAvailabilityEnabled: S.Boolean, + name: S.String, + owner: Owner, + plan: Plan2, + diskSizeGB: S.optional(S.Number), + primaryPostgresID: S.optional(S.String), + region: Region, + readReplicas: ReadReplicas, + role: DatabaseRole, + status: DatabaseStatus, + version: PostgresVersion, + suspended: PostgresSuspended, + suspenders: PostgresSuspendersList, + dashboardUrl: S.String, + diskAutoscalingEnabled: S.Boolean, + connectionPool: S.String, + }), +).annotate({ identifier: "Postgres" }) as any as S.Schema; + +export interface PostgresWithCursor { + postgres: Postgres; + cursor: string; +} +export const PostgresWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + postgres: Postgres, + cursor: S.String, + }), +).annotate({ + identifier: "PostgresWithCursor", +}) as any as S.Schema; + +export type ListPostgresResponseBodyList = Array; +export const ListPostgresResponseBodyList = /*@__PURE__*/ S.Array( + PostgresWithCursor, +) as any as S.Schema; + +export type ListPostgresResponse = ListPostgresResponseBodyList; +export const ListPostgresResponse = /*@__PURE__*/ S.suspend(() => + ListPostgresResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListPostgresResponse", +}) as any as S.Schema; + +export interface ListPostgresExportRequest { + postgresId: string; +} +export const ListPostgresExportRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + postgresId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "GET", uri: "/postgres/{postgresId}/export", code: 200 }), + ), +).annotate({ + identifier: "ListPostgresExportRequest", +}) as any as S.Schema; + +export interface ListPostgresExportResponseBodyItem { + id: string; + createdAt: string; + /** URL to download the Postgres export */ + url?: string; +} +export const ListPostgresExportResponseBodyItem = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + createdAt: S.String, + url: S.optional(S.String), + }), +).annotate({ + identifier: "ListPostgresExportResponseBodyItem", +}) as any as S.Schema; + +export type ListPostgresExportResponseBodyList = + Array; +export const ListPostgresExportResponseBodyList = /*@__PURE__*/ S.Array( + ListPostgresExportResponseBodyItem, +) as any as S.Schema; + +export type ListPostgresExportResponse = ListPostgresExportResponseBodyList; +export const ListPostgresExportResponse = /*@__PURE__*/ S.suspend(() => + ListPostgresExportResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListPostgresExportResponse", +}) as any as S.Schema; + +export interface ListPostgresProcessesRequest { + postgresId: string; +} +export const ListPostgresProcessesRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + postgresId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/postgres/{postgresId}/query/processes", + code: 200, + }), + ), +).annotate({ + identifier: "ListPostgresProcessesRequest", +}) as any as S.Schema; + +/** A single live process from pg_stat_activity. */ +export interface ListPostgresProcessesResponseProcessesItem { + pid?: number; + databaseName?: string; + username?: string; + applicationName?: string; + clientAddr?: string; + backendStart?: string; + queryStart?: string; + state?: string; + waitEvent?: string; + waitEventType?: string; + query?: string; + /** Duration of the query, in seconds. */ + duration?: number; + /** Whether this process is running against the primary instance of a highly available database. */ + isLeader?: boolean; +} +export const ListPostgresProcessesResponseProcessesItem = + /*@__PURE__*/ S.suspend(() => + S.Struct({ + pid: S.optional(S.Number), + databaseName: S.optional(S.String), + username: S.optional(S.String), + applicationName: S.optional(S.String), + clientAddr: S.optional(S.String), + backendStart: S.optional(S.String), + queryStart: S.optional(S.String), + state: S.optional(S.String), + waitEvent: S.optional(S.String), + waitEventType: S.optional(S.String), + query: S.optional(S.String), + duration: S.optional(S.Number), + isLeader: S.optional(S.Boolean), + }), + ).annotate({ + identifier: "ListPostgresProcessesResponseProcessesItem", + }) as any as S.Schema; + +export type ListPostgresProcessesResponseProcessesList = + Array; +export const ListPostgresProcessesResponseProcessesList = /*@__PURE__*/ S.Array( + ListPostgresProcessesResponseProcessesItem, +) as any as S.Schema; + +export interface ListPostgresProcessesResponse { + processes: ListPostgresProcessesResponseProcessesList; +} +export const ListPostgresProcessesResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + processes: ListPostgresProcessesResponseProcessesList, + }), +).annotate({ + identifier: "ListPostgresProcessesResponse", +}) as any as S.Schema; + +export interface ListPostgresSizesRequest { + postgresId: string; +} +export const ListPostgresSizesRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + postgresId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/postgres/{postgresId}/query/sizes", + code: 200, + }), + ), +).annotate({ + identifier: "ListPostgresSizesRequest", +}) as any as S.Schema; + +/** The size of an index, table, or database. */ +export interface ListPostgresSizesResponseSizesItem { + Database?: string; + Schema?: string; + Table?: string; + Index?: string; + Bytes?: number; +} +export const ListPostgresSizesResponseSizesItem = /*@__PURE__*/ S.suspend(() => + S.Struct({ + Database: S.optional(S.String), + Schema: S.optional(S.String), + Table: S.optional(S.String), + Index: S.optional(S.String), + Bytes: S.optional(S.Number), + }), +).annotate({ + identifier: "ListPostgresSizesResponseSizesItem", +}) as any as S.Schema; + +export type ListPostgresSizesResponseSizesList = + Array; +export const ListPostgresSizesResponseSizesList = /*@__PURE__*/ S.Array( + ListPostgresSizesResponseSizesItem, +) as any as S.Schema; + +export interface ListPostgresSizesResponse { + sizes: ListPostgresSizesResponseSizesList; +} +export const ListPostgresSizesResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + sizes: ListPostgresSizesResponseSizesList, + }), +).annotate({ + identifier: "ListPostgresSizesResponse", +}) as any as S.Schema; + +export interface ListPostgresTableScansRequest { + postgresId: string; +} +export const ListPostgresTableScansRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + postgresId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/postgres/{postgresId}/query/table-scans", + code: 200, + }), + ), +).annotate({ + identifier: "ListPostgresTableScansRequest", +}) as any as S.Schema; + +/** The number of sequential scans performed against a table. */ +export interface ListPostgresTableScansResponseTableScansItem { + Database?: string; + Schema?: string; + Table?: string; + Scans?: number; +} +export const ListPostgresTableScansResponseTableScansItem = + /*@__PURE__*/ S.suspend(() => + S.Struct({ + Database: S.optional(S.String), + Schema: S.optional(S.String), + Table: S.optional(S.String), + Scans: S.optional(S.Number), + }), + ).annotate({ + identifier: "ListPostgresTableScansResponseTableScansItem", + }) as any as S.Schema; + +export type ListPostgresTableScansResponseTableScansList = + Array; +export const ListPostgresTableScansResponseTableScansList = + /*@__PURE__*/ S.Array( + ListPostgresTableScansResponseTableScansItem, + ) as any as S.Schema; + +export interface ListPostgresTableScansResponse { + tableScans: ListPostgresTableScansResponseTableScansList; +} +export const ListPostgresTableScansResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + tableScans: ListPostgresTableScansResponseTableScansList, + }), +).annotate({ + identifier: "ListPostgresTableScansResponse", +}) as any as S.Schema; + +export interface ListPostgresTopQueriesRequest { + postgresId: string; +} +export const ListPostgresTopQueriesRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + postgresId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/postgres/{postgresId}/query/top-queries", + code: 200, + }), + ), +).annotate({ + identifier: "ListPostgresTopQueriesRequest", +}) as any as S.Schema; + +/** A single query from pg_stat_statements. */ +export interface ListPostgresTopQueriesResponseTopQueriesItem { + queryId?: string; + query?: string; + calls?: number; + totalTimeMs?: number; + minTimeMs?: number; + maxTimeMs?: number; + meanTimeMs?: number; + stddevTimeMs?: number; + rows?: number; + sharedBlocksHit?: number; + sharedBlocksRead?: number; + sharedBlocksDirtied?: number; + sharedBlocksWritten?: number; + localBlocksHit?: number; + localBlocksRead?: number; + localBlocksDirtied?: number; + localBlocksWritten?: number; + tempBlocksRead?: number; + tempBlocksWritten?: number; +} +export const ListPostgresTopQueriesResponseTopQueriesItem = + /*@__PURE__*/ S.suspend(() => + S.Struct({ + queryId: S.optional(S.String), + query: S.optional(S.String), + calls: S.optional(S.Number), + totalTimeMs: S.optional(S.Number), + minTimeMs: S.optional(S.Number), + maxTimeMs: S.optional(S.Number), + meanTimeMs: S.optional(S.Number), + stddevTimeMs: S.optional(S.Number), + rows: S.optional(S.Number), + sharedBlocksHit: S.optional(S.Number), + sharedBlocksRead: S.optional(S.Number), + sharedBlocksDirtied: S.optional(S.Number), + sharedBlocksWritten: S.optional(S.Number), + localBlocksHit: S.optional(S.Number), + localBlocksRead: S.optional(S.Number), + localBlocksDirtied: S.optional(S.Number), + localBlocksWritten: S.optional(S.Number), + tempBlocksRead: S.optional(S.Number), + tempBlocksWritten: S.optional(S.Number), + }), + ).annotate({ + identifier: "ListPostgresTopQueriesResponseTopQueriesItem", + }) as any as S.Schema; + +export type ListPostgresTopQueriesResponseTopQueriesList = + Array; +export const ListPostgresTopQueriesResponseTopQueriesList = + /*@__PURE__*/ S.Array( + ListPostgresTopQueriesResponseTopQueriesItem, + ) as any as S.Schema; + +export interface ListPostgresTopQueriesResponse { + topQueries: ListPostgresTopQueriesResponseTopQueriesList; +} +export const ListPostgresTopQueriesResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + topQueries: ListPostgresTopQueriesResponseTopQueriesList, + }), +).annotate({ + identifier: "ListPostgresTopQueriesResponse", +}) as any as S.Schema; + +export interface ListPostgresUsersRequest { + postgresId: string; +} +export const ListPostgresUsersRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + postgresId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/postgres/{postgresId}/credentials", + code: 200, + }), + ), +).annotate({ + identifier: "ListPostgresUsersRequest", +}) as any as S.Schema; + +export interface ListPostgresUsersResponseBodyItem { + username?: string; + default?: boolean; + createdAt?: string; + openConnections?: number; +} +export const ListPostgresUsersResponseBodyItem = /*@__PURE__*/ S.suspend(() => + S.Struct({ + username: S.optional(S.String), + default: S.optional(S.Boolean), + createdAt: S.optional(S.String), + openConnections: S.optional(S.Number), + }), +).annotate({ + identifier: "ListPostgresUsersResponseBodyItem", +}) as any as S.Schema; + +export type ListPostgresUsersResponseBodyList = + Array; +export const ListPostgresUsersResponseBodyList = /*@__PURE__*/ S.Array( + ListPostgresUsersResponseBodyItem, +) as any as S.Schema; + +export type ListPostgresUsersResponse = ListPostgresUsersResponseBodyList; +export const ListPostgresUsersResponse = /*@__PURE__*/ S.suspend(() => + ListPostgresUsersResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListPostgresUsersResponse", +}) as any as S.Schema; + +export type ListProjectsRequestNameList = Array; +export const ListProjectsRequestNameList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListProjectsRequestOwnerIdList = Array; +export const ListProjectsRequestOwnerIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface ListProjectsRequest { + /** Filter by name */ + name?: ListProjectsRequestNameList; + /** Filter for resources created before a certain time (specified as an ISO 8601 timestamp) */ + createdBefore?: string; + /** Filter for resources created after a certain time (specified as an ISO 8601 timestamp) */ + createdAfter?: string; + /** Filter for resources updated before a certain time (specified as an ISO 8601 timestamp) */ + updatedBefore?: string; + /** Filter for resources updated after a certain time (specified as an ISO 8601 timestamp) */ + updatedAfter?: string; + /** The ID of the workspaces to return resources for */ + ownerId?: ListProjectsRequestOwnerIdList; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListProjectsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + name: S.optional(ListProjectsRequestNameList.pipe(T.Query())), + createdBefore: S.optional(S.String.pipe(T.Query())), + createdAfter: S.optional(S.String.pipe(T.Query())), + updatedBefore: S.optional(S.String.pipe(T.Query())), + updatedAfter: S.optional(S.String.pipe(T.Query())), + ownerId: S.optional(ListProjectsRequestOwnerIdList.pipe(T.Query())), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/projects", code: 200 })), +).annotate({ + identifier: "ListProjectsRequest", +}) as any as S.Schema; + +export interface ProjectWithCursor { + project: Project; + cursor: string; +} +export const ProjectWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + project: Project, + cursor: S.String, + }), +).annotate({ + identifier: "ProjectWithCursor", +}) as any as S.Schema; + +export type ListProjectsResponseBodyList = Array; +export const ListProjectsResponseBodyList = /*@__PURE__*/ S.Array( + ProjectWithCursor, +) as any as S.Schema; + +export type ListProjectsResponse = ListProjectsResponseBodyList; +export const ListProjectsResponse = /*@__PURE__*/ S.suspend(() => + ListProjectsResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListProjectsResponse", +}) as any as S.Schema; + +export type ListRegistryCredentialsRequestNameList = Array; +export const ListRegistryCredentialsRequestNameList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListRegistryCredentialsRequestUsernameList = Array; +export const ListRegistryCredentialsRequestUsernameList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListRegistryCredentialsRequestTypeList = Array< + RegistryCredentialRegistry | (string & {}) +>; +export const ListRegistryCredentialsRequestTypeList = /*@__PURE__*/ S.Array( + RegistryCredentialRegistry, +) as any as S.Schema; + +export type ListRegistryCredentialsRequestOwnerIdList = Array; +export const ListRegistryCredentialsRequestOwnerIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface ListRegistryCredentialsRequest { + /** Filter for the name of a credential */ + name?: ListRegistryCredentialsRequestNameList; + /** Filter for the username of a credential */ + username?: ListRegistryCredentialsRequestUsernameList; + /** Filter for the registry type for the credential */ + type?: ListRegistryCredentialsRequestTypeList; + /** Filter for services created before a certain time (specified as an ISO 8601 timestamp) */ + createdBefore?: string; + /** Filter for services created after a certain time (specified as an ISO 8601 timestamp) */ + createdAfter?: string; + /** Filter for services updated before a certain time (specified as an ISO 8601 timestamp) */ + updatedBefore?: string; + /** Filter for services updated after a certain time (specified as an ISO 8601 timestamp) */ + updatedAfter?: string; + /** The ID of the workspaces to return resources for */ + ownerId?: ListRegistryCredentialsRequestOwnerIdList; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListRegistryCredentialsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + name: S.optional(ListRegistryCredentialsRequestNameList.pipe(T.Query())), + username: S.optional( + ListRegistryCredentialsRequestUsernameList.pipe(T.Query()), + ), + type: S.optional(ListRegistryCredentialsRequestTypeList.pipe(T.Query())), + createdBefore: S.optional(S.String.pipe(T.Query())), + createdAfter: S.optional(S.String.pipe(T.Query())), + updatedBefore: S.optional(S.String.pipe(T.Query())), + updatedAfter: S.optional(S.String.pipe(T.Query())), + ownerId: S.optional( + ListRegistryCredentialsRequestOwnerIdList.pipe(T.Query()), + ), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/registrycredentials", code: 200 })), +).annotate({ + identifier: "ListRegistryCredentialsRequest", +}) as any as S.Schema; + +export type ListRegistryCredentialsResponseBodyList = Array; +export const ListRegistryCredentialsResponseBodyList = /*@__PURE__*/ S.Array( + RegistryCredential, +) as any as S.Schema; + +export type ListRegistryCredentialsResponse = + ListRegistryCredentialsResponseBodyList; +export const ListRegistryCredentialsResponse = /*@__PURE__*/ S.suspend(() => + ListRegistryCredentialsResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListRegistryCredentialsResponse", +}) as any as S.Schema; + +export type ListResourceLogStreamsRequestOwnerIdList = Array; +export const ListResourceLogStreamsRequestOwnerIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListResourceLogStreamsRequestLogStreamIdList = Array; +export const ListResourceLogStreamsRequestLogStreamIdList = + /*@__PURE__*/ S.Array( + S.String, + ) as any as S.Schema; + +export type ListResourceLogStreamsRequestResourceIdList = Array; +export const ListResourceLogStreamsRequestResourceIdList = + /*@__PURE__*/ S.Array( + S.String, + ) as any as S.Schema; + +/** Whether to send logs or drop them. */ +export type ListResourceLogStreamsRequestSettingItem = "send" | "drop"; +export const ListResourceLogStreamsRequestSettingItem = /*@__PURE__*/ S.String; + +export type ListResourceLogStreamsRequestSettingList = Array< + ListResourceLogStreamsRequestSettingItem | (string & {}) +>; +export const ListResourceLogStreamsRequestSettingList = /*@__PURE__*/ S.Array( + ListResourceLogStreamsRequestSettingItem, +) as any as S.Schema; + +export interface ListResourceLogStreamsRequest { + /** The ID of the workspaces to return resources for */ + ownerId?: ListResourceLogStreamsRequestOwnerIdList; + /** Filter log streams by their id. */ + logStreamId?: ListResourceLogStreamsRequestLogStreamIdList; + /** IDs of resources (server, cron job, postgres, or redis) to filter by */ + resourceId?: ListResourceLogStreamsRequestResourceIdList; + /** Filter log streams by their setting. */ + setting?: ListResourceLogStreamsRequestSettingList; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListResourceLogStreamsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.optional( + ListResourceLogStreamsRequestOwnerIdList.pipe(T.Query()), + ), + logStreamId: S.optional( + ListResourceLogStreamsRequestLogStreamIdList.pipe(T.Query()), + ), + resourceId: S.optional( + ListResourceLogStreamsRequestResourceIdList.pipe(T.Query()), + ), + setting: S.optional( + ListResourceLogStreamsRequestSettingList.pipe(T.Query()), + ), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/logs/streams/resource", code: 200 })), +).annotate({ + identifier: "ListResourceLogStreamsRequest", +}) as any as S.Schema; + +/** Resource log stream overrides */ +export interface Schema9 { + /** The ID of the resource. */ + resourceId?: string; + /** The endpoint to stream logs to. Must be present if setting is send. Cannot be present if setting is drop. */ + endpoint?: string; + setting?: Items3; +} +export const Schema9 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + resourceId: S.optional(S.String), + endpoint: S.optional(S.String), + setting: S.optional(Items3), + }), +).annotate({ identifier: "Schema9" }) as any as S.Schema; + +export type ListResourceLogStreamsResponseBodyList = Array; +export const ListResourceLogStreamsResponseBodyList = /*@__PURE__*/ S.Array( + Schema9, +) as any as S.Schema; + +export type ListResourceLogStreamsResponse = + ListResourceLogStreamsResponseBodyList; +export const ListResourceLogStreamsResponse = /*@__PURE__*/ S.suspend(() => + ListResourceLogStreamsResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListResourceLogStreamsResponse", +}) as any as S.Schema; + +export type ListRoutesRequestTypeItem = "redirect" | "rewrite"; +export const ListRoutesRequestTypeItem = /*@__PURE__*/ S.String; + +export type ListRoutesRequestTypeList = Array< + ListRoutesRequestTypeItem | (string & {}) +>; +export const ListRoutesRequestTypeList = /*@__PURE__*/ S.Array( + ListRoutesRequestTypeItem, +) as any as S.Schema; + +export type ListRoutesRequestSourceList = Array; +export const ListRoutesRequestSourceList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListRoutesRequestDestinationList = Array; +export const ListRoutesRequestDestinationList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface ListRoutesRequest { + /** The ID of the service */ + serviceId: string; + /** Filter for the type of route rule */ + type?: ListRoutesRequestTypeList; + /** Filter for the source path of the route */ + source?: ListRoutesRequestSourceList; + /** Filter for the destination path of the route */ + destination?: ListRoutesRequestDestinationList; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListRoutesRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + type: S.optional(ListRoutesRequestTypeList.pipe(T.Query())), + source: S.optional(ListRoutesRequestSourceList.pipe(T.Query())), + destination: S.optional(ListRoutesRequestDestinationList.pipe(T.Query())), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe( + T.Http({ method: "GET", uri: "/services/{serviceId}/routes", code: 200 }), + ), +).annotate({ + identifier: "ListRoutesRequest", +}) as any as S.Schema; + +export interface RouteWithCursor { + route: Route; + cursor: string; +} +export const RouteWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + route: Route, + cursor: S.String, + }), +).annotate({ + identifier: "RouteWithCursor", +}) as any as S.Schema; + +export type ListRoutesResponseBodyList = Array; +export const ListRoutesResponseBodyList = /*@__PURE__*/ S.Array( + RouteWithCursor, +) as any as S.Schema; + +export type ListRoutesResponse = ListRoutesResponseBodyList; +export const ListRoutesResponse = /*@__PURE__*/ S.suspend(() => + ListRoutesResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListRoutesResponse", +}) as any as S.Schema; + +export interface ListSecretFilesForServiceRequest { + /** The ID of the service */ + serviceId: string; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListSecretFilesForServiceRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe( + T.Http({ + method: "GET", + uri: "/services/{serviceId}/secret-files", + code: 200, + }), + ), +).annotate({ + identifier: "ListSecretFilesForServiceRequest", +}) as any as S.Schema; + +export interface SecretFileWithCursor { + secretFile: SecretFile; + cursor: string; +} +export const SecretFileWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + secretFile: SecretFile, + cursor: S.String, + }), +).annotate({ + identifier: "SecretFileWithCursor", +}) as any as S.Schema; + +export type ListSecretFilesForServiceResponseBodyList = + Array; +export const ListSecretFilesForServiceResponseBodyList = /*@__PURE__*/ S.Array( + SecretFileWithCursor, +) as any as S.Schema; + +export type ListSecretFilesForServiceResponse = + ListSecretFilesForServiceResponseBodyList; +export const ListSecretFilesForServiceResponse = /*@__PURE__*/ S.suspend(() => + ListSecretFilesForServiceResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListSecretFilesForServiceResponse", +}) as any as S.Schema; + +export type ListServicesRequestNameList = Array; +export const ListServicesRequestNameList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListServicesRequestTypeList = Array; +export const ListServicesRequestTypeList = /*@__PURE__*/ S.Array( + ServiceType, +) as any as S.Schema; + +export type ListServicesRequestEnvironmentIdList = Array; +export const ListServicesRequestEnvironmentIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListServicesRequestEnvList = Array; +export const ListServicesRequestEnvList = /*@__PURE__*/ S.Array( + ServiceRuntime, +) as any as S.Schema; + +export type ListServicesRequestRegionList = Array; +export const ListServicesRequestRegionList = /*@__PURE__*/ S.Array( + Region, +) as any as S.Schema; + +export type ListServicesRequestSuspendedItem = "suspended" | "not_suspended"; +export const ListServicesRequestSuspendedItem = /*@__PURE__*/ S.String; + +export type ListServicesRequestSuspendedList = Array< + ListServicesRequestSuspendedItem | (string & {}) +>; +export const ListServicesRequestSuspendedList = /*@__PURE__*/ S.Array( + ListServicesRequestSuspendedItem, +) as any as S.Schema; + +export type ListServicesRequestOwnerIdList = Array; +export const ListServicesRequestOwnerIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface ListServicesRequest { + /** Filter by name */ + name?: ListServicesRequestNameList; + /** Filter for types of services */ + type?: ListServicesRequestTypeList; + /** Filter for resources that belong to an environment */ + environmentId?: ListServicesRequestEnvironmentIdList; + /** Filter for environments (runtimes) of services (deprecated; use `runtime` instead) */ + env?: ListServicesRequestEnvList; + /** Filter by resource region */ + region?: ListServicesRequestRegionList; + /** Filter resources based on whether they're suspended or not suspended */ + suspended?: ListServicesRequestSuspendedList; + /** Filter for resources created before a certain time (specified as an ISO 8601 timestamp) */ + createdBefore?: string; + /** Filter for resources created after a certain time (specified as an ISO 8601 timestamp) */ + createdAfter?: string; + /** Filter for resources updated before a certain time (specified as an ISO 8601 timestamp) */ + updatedBefore?: string; + /** Filter for resources updated after a certain time (specified as an ISO 8601 timestamp) */ + updatedAfter?: string; + /** The ID of the workspaces to return resources for */ + ownerId?: ListServicesRequestOwnerIdList; + /** Include previews in the response */ + includePreviews?: boolean; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListServicesRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + name: S.optional(ListServicesRequestNameList.pipe(T.Query())), + type: S.optional(ListServicesRequestTypeList.pipe(T.Query())), + environmentId: S.optional( + ListServicesRequestEnvironmentIdList.pipe(T.Query()), + ), + env: S.optional(ListServicesRequestEnvList.pipe(T.Query())), + region: S.optional(ListServicesRequestRegionList.pipe(T.Query())), + suspended: S.optional(ListServicesRequestSuspendedList.pipe(T.Query())), + createdBefore: S.optional(S.String.pipe(T.Query())), + createdAfter: S.optional(S.String.pipe(T.Query())), + updatedBefore: S.optional(S.String.pipe(T.Query())), + updatedAfter: S.optional(S.String.pipe(T.Query())), + ownerId: S.optional(ListServicesRequestOwnerIdList.pipe(T.Query())), + includePreviews: S.optional(S.Boolean.pipe(T.Query())), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/services", code: 200 })), +).annotate({ + identifier: "ListServicesRequest", +}) as any as S.Schema; + +export interface ServiceWithCursor { + service: Service; + cursor: string; +} +export const ServiceWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + service: Service, + cursor: S.String, + }), +).annotate({ + identifier: "ServiceWithCursor", +}) as any as S.Schema; + +export type ServiceList = Array; +export const ServiceList = /*@__PURE__*/ S.Array( + ServiceWithCursor, +) as any as S.Schema; + +export type ListServicesResponse = ServiceList; +export const ListServicesResponse = /*@__PURE__*/ S.suspend(() => + ServiceList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListServicesResponse", +}) as any as S.Schema; + +export interface ListSnapshotsRequest { + /** The ID of the disk */ + diskId: string; +} +export const ListSnapshotsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + diskId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "GET", uri: "/disks/{diskId}/snapshots", code: 200 }), + ), +).annotate({ + identifier: "ListSnapshotsRequest", +}) as any as S.Schema; + +export interface DiskSnapshot { + createdAt?: string; + snapshotKey?: string; + instanceId?: string; +} +export const DiskSnapshot = /*@__PURE__*/ S.suspend(() => + S.Struct({ + createdAt: S.optional(S.String), + snapshotKey: S.optional(S.String), + instanceId: S.optional(S.String), + }), +).annotate({ identifier: "DiskSnapshot" }) as any as S.Schema; + +export type ListSnapshotsResponseBodyList = Array; +export const ListSnapshotsResponseBodyList = /*@__PURE__*/ S.Array( + DiskSnapshot, +) as any as S.Schema; + +export type ListSnapshotsResponse = ListSnapshotsResponseBodyList; +export const ListSnapshotsResponse = /*@__PURE__*/ S.suspend(() => + ListSnapshotsResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListSnapshotsResponse", +}) as any as S.Schema; + +export type ListTaskRunsRequestTaskSlugList = Array; +export const ListTaskRunsRequestTaskSlugList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListTaskRunsRequestRootTaskRunIdList = Array; +export const ListTaskRunsRequestRootTaskRunIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListTaskRunsRequestOwnerIdList = Array; +export const ListTaskRunsRequestOwnerIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListTaskRunsRequestWorkflowVersionIdList = Array; +export const ListTaskRunsRequestWorkflowVersionIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListTaskRunsRequestWorkflowIdList = Array; +export const ListTaskRunsRequestWorkflowIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface ListTaskRunsRequest { + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; + /** An array of task slugs in the format workflow-slug/task-name. An optional version can be appended (workflow-slug/task-name:version). If no version is provided, the latest version is used. */ + taskSlug?: ListTaskRunsRequestTaskSlugList; + /** An array of root task run IDs to filter on */ + rootTaskRunId?: ListTaskRunsRequestRootTaskRunIdList; + /** The ID of the workspaces to return resources for */ + ownerId?: ListTaskRunsRequestOwnerIdList; + /** An array of workflow version IDs */ + workflowVersionId?: ListTaskRunsRequestWorkflowVersionIdList; + /** An array of workflow IDs */ + workflowId?: ListTaskRunsRequestWorkflowIdList; +} +export const ListTaskRunsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + taskSlug: S.optional(ListTaskRunsRequestTaskSlugList.pipe(T.Query())), + rootTaskRunId: S.optional( + ListTaskRunsRequestRootTaskRunIdList.pipe(T.Query()), + ), + ownerId: S.optional(ListTaskRunsRequestOwnerIdList.pipe(T.Query())), + workflowVersionId: S.optional( + ListTaskRunsRequestWorkflowVersionIdList.pipe(T.Query()), + ), + workflowId: S.optional(ListTaskRunsRequestWorkflowIdList.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/task-runs", code: 200 })), +).annotate({ + identifier: "ListTaskRunsRequest", +}) as any as S.Schema; + +export type SchemaAttemptsItem = CreateTaskResponseAttemptsItem; +export const SchemaAttemptsItem = CreateTaskResponseAttemptsItem; + +export type SchemaAttemptsList = Array; +export const SchemaAttemptsList = /*@__PURE__*/ S.Array( + CreateTaskResponseAttemptsItem, +) as any as S.Schema; + +export interface Schema16 { + id: string; + taskId: string; + status: Status2; + startedAt?: string; + completedAt?: string; + parentTaskRunId: string; + /** The 0-indexed attempt of the parent task run that spawned this task run. Omitted for root task runs and for task runs created before this field was introduced. */ + parentTaskAttempt?: number; + rootTaskRunId: string; + retries: number; + attempts: SchemaAttemptsList; +} +export const Schema16 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + taskId: S.String, + status: Status2, + startedAt: S.optional(S.String), + completedAt: S.optional(S.String), + parentTaskRunId: S.String, + parentTaskAttempt: S.optional(S.Number), + rootTaskRunId: S.String, + retries: S.Number, + attempts: SchemaAttemptsList, + }), +).annotate({ identifier: "Schema16" }) as any as S.Schema; + +export interface TaskRunWithCursor { + taskRun: Schema16; + cursor: string; +} +export const TaskRunWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + taskRun: Schema16, + cursor: S.String, + }), +).annotate({ + identifier: "TaskRunWithCursor", +}) as any as S.Schema; + +export type ListTaskRunsResponseBodyList = Array; +export const ListTaskRunsResponseBodyList = /*@__PURE__*/ S.Array( + TaskRunWithCursor, +) as any as S.Schema; + +export type ListTaskRunsResponse = ListTaskRunsResponseBodyList; +export const ListTaskRunsResponse = /*@__PURE__*/ S.suspend(() => + ListTaskRunsResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListTaskRunsResponse", +}) as any as S.Schema; + +export type ListTasksRequestOwnerIdList = Array; +export const ListTasksRequestOwnerIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListTasksRequestTaskSlugList = Array; +export const ListTasksRequestTaskSlugList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListTasksRequestWorkflowVersionIdList = Array; +export const ListTasksRequestWorkflowVersionIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListTasksRequestWorkflowIdList = Array; +export const ListTasksRequestWorkflowIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface ListTasksRequest { + /** The ID of the workspaces to return resources for */ + ownerId?: ListTasksRequestOwnerIdList; + /** An array of task slugs in the format workflow-slug/task-name. An optional version can be appended (workflow-slug/task-name:version). If no version is provided, the latest version is used. */ + taskSlug?: ListTasksRequestTaskSlugList; + /** An array of workflow version IDs */ + workflowVersionId?: ListTasksRequestWorkflowVersionIdList; + /** An array of workflow IDs */ + workflowId?: ListTasksRequestWorkflowIdList; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListTasksRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.optional(ListTasksRequestOwnerIdList.pipe(T.Query())), + taskSlug: S.optional(ListTasksRequestTaskSlugList.pipe(T.Query())), + workflowVersionId: S.optional( + ListTasksRequestWorkflowVersionIdList.pipe(T.Query()), + ), + workflowId: S.optional(ListTasksRequestWorkflowIdList.pipe(T.Query())), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/tasks", code: 200 })), +).annotate({ + identifier: "ListTasksRequest", +}) as any as S.Schema; + +export interface Schema15 { + id: string; + name: string; + createdAt: string; + workflowId?: string; + workflowVersionId?: string; +} +export const Schema15 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + createdAt: S.String, + workflowId: S.optional(S.String), + workflowVersionId: S.optional(S.String), + }), +).annotate({ identifier: "Schema15" }) as any as S.Schema; + +export interface TaskWithCursor { + task: Schema15; + cursor: string; +} +export const TaskWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + task: Schema15, + cursor: S.String, + }), +).annotate({ identifier: "TaskWithCursor" }) as any as S.Schema; + +export type ListTasksResponseBodyList = Array; +export const ListTasksResponseBodyList = /*@__PURE__*/ S.Array( + TaskWithCursor, +) as any as S.Schema; + +export type ListTasksResponse = ListTasksResponseBodyList; +export const ListTasksResponse = /*@__PURE__*/ S.suspend(() => + ListTasksResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListTasksResponse", +}) as any as S.Schema; + +export interface ListWebhookEventsRequest { + /** Unique identifier for the webhook */ + webhookId: string; + /** Filter events sent before this time (specified as an ISO 8601 timestamp) */ + sentBefore?: string; + /** Filter for resources sent after a certain time (specified as an ISO 8601 timestamp) */ + sentAfter?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; +} +export const ListWebhookEventsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + webhookId: S.String.pipe(T.Label()), + sentBefore: S.optional(S.String.pipe(T.Query())), + sentAfter: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + cursor: S.optional(S.String.pipe(T.Query())), + }).pipe( + T.Http({ method: "GET", uri: "/webhooks/{webhookId}/events", code: 200 }), + ), +).annotate({ + identifier: "ListWebhookEventsRequest", +}) as any as S.Schema; + +export interface WebhookEventWithCursorWebhookEvent { + /** the id of the webhook event */ + id: string; + /** the id of the event that triggered the webhook */ + eventId: string; + eventType: Type; + sentAt: string; + statusCode?: number; + responseBody?: string; + /** error is populated when an error occurs without a response such as a timeout */ + error?: string; +} +export const WebhookEventWithCursorWebhookEvent = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + eventId: S.String, + eventType: Type, + sentAt: S.String, + statusCode: S.optional(S.Number), + responseBody: S.optional(S.String), + error: S.optional(S.String), + }), +).annotate({ + identifier: "WebhookEventWithCursorWebhookEvent", +}) as any as S.Schema; + +export interface WebhookEventWithCursor { + webhookEvent: WebhookEventWithCursorWebhookEvent; + cursor: string; +} +export const WebhookEventWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + webhookEvent: WebhookEventWithCursorWebhookEvent, + cursor: S.String, + }), +).annotate({ + identifier: "WebhookEventWithCursor", +}) as any as S.Schema; + +export type ListWebhookEventsResponseBodyList = Array; +export const ListWebhookEventsResponseBodyList = /*@__PURE__*/ S.Array( + WebhookEventWithCursor, +) as any as S.Schema; + +export type ListWebhookEventsResponse = ListWebhookEventsResponseBodyList; +export const ListWebhookEventsResponse = /*@__PURE__*/ S.suspend(() => + ListWebhookEventsResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListWebhookEventsResponse", +}) as any as S.Schema; + +export type ListWebhooksRequestOwnerIdList = Array; +export const ListWebhooksRequestOwnerIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface ListWebhooksRequest { + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; + /** The ID of the workspaces to return resources for */ + ownerId?: ListWebhooksRequestOwnerIdList; +} +export const ListWebhooksRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + ownerId: S.optional(ListWebhooksRequestOwnerIdList.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/webhooks", code: 200 })), +).annotate({ + identifier: "ListWebhooksRequest", +}) as any as S.Schema; + +export interface Schema12 { + id: string; + url: string; + name: string; + secret: string | Redacted.Redacted; + enabled: boolean; + eventFilter: EventFilter; +} +export const Schema12 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + url: S.String, + name: S.String, + secret: S.String.pipe(T.SensitiveValue({})), + enabled: S.Boolean, + eventFilter: EventFilter, + }), +).annotate({ identifier: "Schema12" }) as any as S.Schema; + +export interface WebhookWithCursor { + webhook: Schema12; + cursor: string; +} +export const WebhookWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + webhook: Schema12, + cursor: S.String, + }), +).annotate({ + identifier: "WebhookWithCursor", +}) as any as S.Schema; + +export type ListWebhooksResponseBodyList = Array; +export const ListWebhooksResponseBodyList = /*@__PURE__*/ S.Array( + WebhookWithCursor, +) as any as S.Schema; + +export type ListWebhooksResponse = ListWebhooksResponseBodyList; +export const ListWebhooksResponse = /*@__PURE__*/ S.suspend(() => + ListWebhooksResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListWebhooksResponse", +}) as any as S.Schema; + +export type ListWorkflowsRequestNameList = Array; +export const ListWorkflowsRequestNameList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListWorkflowsRequestOwnerIdList = Array; +export const ListWorkflowsRequestOwnerIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListWorkflowsRequestWorkflowIDList = Array; +export const ListWorkflowsRequestWorkflowIDList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListWorkflowsRequestEnvironmentIdList = Array; +export const ListWorkflowsRequestEnvironmentIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface ListWorkflowsRequest { + /** Filter by name */ + name?: ListWorkflowsRequestNameList; + /** The ID of the workspaces to return resources for */ + ownerId?: ListWorkflowsRequestOwnerIdList; + /** The IDs of the workflows to return resources for */ + workflowID?: ListWorkflowsRequestWorkflowIDList; + /** Filter for resources that belong to an environment */ + environmentId?: ListWorkflowsRequestEnvironmentIdList; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListWorkflowsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + name: S.optional(ListWorkflowsRequestNameList.pipe(T.Query())), + ownerId: S.optional(ListWorkflowsRequestOwnerIdList.pipe(T.Query())), + workflowID: S.optional(ListWorkflowsRequestWorkflowIDList.pipe(T.Query())), + environmentId: S.optional( + ListWorkflowsRequestEnvironmentIdList.pipe(T.Query()), + ), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/workflows", code: 200 })), +).annotate({ + identifier: "ListWorkflowsRequest", +}) as any as S.Schema; + +export interface WorkflowWithCursor { + workflow: Schema13; + cursor: string; +} +export const WorkflowWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + workflow: Schema13, + cursor: S.String, + }), +).annotate({ + identifier: "WorkflowWithCursor", +}) as any as S.Schema; + +export type ListWorkflowsResponseBodyList = Array; +export const ListWorkflowsResponseBodyList = /*@__PURE__*/ S.Array( + WorkflowWithCursor, +) as any as S.Schema; + +export type ListWorkflowsResponse = ListWorkflowsResponseBodyList; +export const ListWorkflowsResponse = /*@__PURE__*/ S.suspend(() => + ListWorkflowsResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListWorkflowsResponse", +}) as any as S.Schema; + +export type ListWorkflowVersionsRequestOwnerIdList = Array; +export const ListWorkflowVersionsRequestOwnerIdList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListWorkflowVersionsRequestWorkflowIDList = Array; +export const ListWorkflowVersionsRequestWorkflowIDList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type ListWorkflowVersionsRequestWorkflowVersionIdList = Array; +export const ListWorkflowVersionsRequestWorkflowVersionIdList = + /*@__PURE__*/ S.Array( + S.String, + ) as any as S.Schema; + +export interface ListWorkflowVersionsRequest { + /** The ID of the workspaces to return resources for */ + ownerId?: ListWorkflowVersionsRequestOwnerIdList; + /** The IDs of the workflows to return resources for */ + workflowID?: ListWorkflowVersionsRequestWorkflowIDList; + /** The IDs of the workflow versions to return resources for */ + workflowVersionId?: ListWorkflowVersionsRequestWorkflowVersionIdList; + /** The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + cursor?: string; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const ListWorkflowVersionsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.optional(ListWorkflowVersionsRequestOwnerIdList.pipe(T.Query())), + workflowID: S.optional( + ListWorkflowVersionsRequestWorkflowIDList.pipe(T.Query()), + ), + workflowVersionId: S.optional( + ListWorkflowVersionsRequestWorkflowVersionIdList.pipe(T.Query()), + ), + cursor: S.optional(S.String.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/workflowversions", code: 200 })), +).annotate({ + identifier: "ListWorkflowVersionsRequest", +}) as any as S.Schema; + +export type SchemaStatus = + | "created" + | "building" + | "registering" + | "build_failed" + | "registration_failed" + | "ready"; +export const SchemaStatus = /*@__PURE__*/ S.String; + +export interface Schema14 { + id: string; + workflowId: string; + name: string; + createdAt: string; + status: SchemaStatus; +} +export const Schema14 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + workflowId: S.String, + name: S.String, + createdAt: S.String, + status: SchemaStatus, + }), +).annotate({ identifier: "Schema14" }) as any as S.Schema; + +export interface WorkflowVersionWithCursor { + workflowVersion: Schema14; + cursor: string; +} +export const WorkflowVersionWithCursor = /*@__PURE__*/ S.suspend(() => + S.Struct({ + workflowVersion: Schema14, + cursor: S.String, + }), +).annotate({ + identifier: "WorkflowVersionWithCursor", +}) as any as S.Schema; + +export type ListWorkflowVersionsResponseBodyList = + Array; +export const ListWorkflowVersionsResponseBodyList = /*@__PURE__*/ S.Array( + WorkflowVersionWithCursor, +) as any as S.Schema; + +export type ListWorkflowVersionsResponse = ListWorkflowVersionsResponseBodyList; +export const ListWorkflowVersionsResponse = /*@__PURE__*/ S.suspend(() => + ListWorkflowVersionsResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "ListWorkflowVersionsResponse", +}) as any as S.Schema; + +export type PatchOwnerNotificationSettingsRequestNotificationsToSend = + | "none" + | "failure" + | "all"; +export const PatchOwnerNotificationSettingsRequestNotificationsToSend = + /*@__PURE__*/ S.String; + +export interface PatchOwnerNotificationSettingsRequest { + /** The ID of the workspace to return resources for */ + ownerId: string; + emailEnabled?: boolean; + previewNotificationsEnabled?: boolean; + notificationsToSend?: + | PatchOwnerNotificationSettingsRequestNotificationsToSend + | (string & {}); +} +export const PatchOwnerNotificationSettingsRequest = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + ownerId: S.String.pipe(T.Label()), + emailEnabled: S.optional(S.Boolean), + previewNotificationsEnabled: S.optional(S.Boolean), + notificationsToSend: S.optional( + PatchOwnerNotificationSettingsRequestNotificationsToSend, + ), + }).pipe( + T.Http({ + method: "PATCH", + uri: "/notification-settings/owners/{ownerId}", + code: 200, + }), + ), +).annotate({ + identifier: "PatchOwnerNotificationSettingsRequest", +}) as any as S.Schema; + +export type NotificationsToSend = "none" | "failure" | "all"; +export const NotificationsToSend = /*@__PURE__*/ S.String; + +export interface Schema3 { + ownerId: string; + slackEnabled: boolean; + emailEnabled: boolean; + previewNotificationsEnabled: boolean; + notificationsToSend: NotificationsToSend; +} +export const Schema3 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.String, + slackEnabled: S.Boolean, + emailEnabled: S.Boolean, + previewNotificationsEnabled: S.Boolean, + notificationsToSend: NotificationsToSend, + }), +).annotate({ identifier: "Schema3" }) as any as S.Schema; + +export interface PatchRouteRequest { + /** The ID of the service */ + serviceId: string; + /** The id of the route */ + routeId: string; + /** Redirect and Rewrite Rules are applied in priority order starting at 0. Moves this route to the specified priority and adjusts other route priorities accordingly. */ + priority: number; +} +export const PatchRouteRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + routeId: S.String.pipe(T.Label()), + priority: S.Number, + }).pipe( + T.Http({ + method: "PATCH", + uri: "/services/{serviceId}/routes/{routeId}", + code: 200, + }), + ), +).annotate({ + identifier: "PatchRouteRequest", +}) as any as S.Schema; + +export interface PatchRouteResponse { + headers?: Route; +} +export const PatchRouteResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + headers: S.optional(Route), + }), +).annotate({ + identifier: "PatchRouteResponse", +}) as any as S.Schema; + +export type PatchServiceNotificationOverridesRequestPreviewNotificationsEnabled = + | "default" + | "false" + | "true"; +export const PatchServiceNotificationOverridesRequestPreviewNotificationsEnabled = + /*@__PURE__*/ S.String; + +export type PatchServiceNotificationOverridesRequestNotificationsToSend = + | "default" + | "none" + | "failure" + | "all"; +export const PatchServiceNotificationOverridesRequestNotificationsToSend = + /*@__PURE__*/ S.String; + +export interface PatchServiceNotificationOverridesRequest { + /** The ID of the service */ + serviceId: string; + previewNotificationsEnabled?: + | PatchServiceNotificationOverridesRequestPreviewNotificationsEnabled + | (string & {}); + notificationsToSend?: + | PatchServiceNotificationOverridesRequestNotificationsToSend + | (string & {}); +} +export const PatchServiceNotificationOverridesRequest = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + previewNotificationsEnabled: S.optional( + PatchServiceNotificationOverridesRequestPreviewNotificationsEnabled, + ), + notificationsToSend: S.optional( + PatchServiceNotificationOverridesRequestNotificationsToSend, + ), + }).pipe( + T.Http({ + method: "PATCH", + uri: "/notification-settings/overrides/services/{serviceId}", + code: 200, + }), + ), +).annotate({ + identifier: "PatchServiceNotificationOverridesRequest", +}) as any as S.Schema; + +export interface Schema4 { + serviceId: string; + previewNotificationsEnabled: PreviewNotificationsEnabled; + notificationsToSend: NotificationsToSend2; +} +export const Schema4 = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String, + previewNotificationsEnabled: PreviewNotificationsEnabled, + notificationsToSend: NotificationsToSend2, + }), +).annotate({ identifier: "Schema4" }) as any as S.Schema; + +export interface PostJobRequest { + /** The ID of the service */ + serviceId: string; + startCommand: string; + planId?: string; +} +export const PostJobRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + startCommand: S.String, + planId: S.optional(S.String), + }).pipe( + T.Http({ method: "POST", uri: "/services/{serviceId}/jobs", code: 200 }), + ), +).annotate({ identifier: "PostJobRequest" }) as any as S.Schema; + +export interface PostJobResponse { + id: string; + serviceId: string; + startCommand: string; + planId: string; + status?: Items2; + createdAt: string; + startedAt?: string; + finishedAt?: string; +} +export const PostJobResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + serviceId: S.String, + startCommand: S.String, + planId: S.String, + status: S.optional(Items2), + createdAt: S.String, + startedAt: S.optional(S.String), + finishedAt: S.optional(S.String), + }), +).annotate({ + identifier: "PostJobResponse", +}) as any as S.Schema; + +export interface PreviewServiceRequest { + /** The ID of the service */ + serviceId: string; + /** Must be either a full URL or the relative path to an image. If a relative path, Render uses the base service's image URL as its root. For example, if the base service's image URL is `docker.io/library/nginx:latest`, then valid values are: `docker.io/library/nginx:`, `library/nginx:`, or `nginx:`. Note that the path must match (only the tag or SHA can vary). */ + imagePath: string; + /** A name for the service preview instance. If not specified, Render generates the name using the base service's name and the specified tag or SHA. */ + name?: string; + plan?: Plan | (string & {}); +} +export const PreviewServiceRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + imagePath: S.String, + name: S.optional(S.String), + plan: S.optional(Plan), + }).pipe( + T.Http({ method: "POST", uri: "/services/{serviceId}/preview", code: 200 }), + ), +).annotate({ + identifier: "PreviewServiceRequest", +}) as any as S.Schema; + +export interface PurgeCacheRequest { + /** The ID of the service */ + serviceId: string; +} +export const PurgeCacheRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "POST", + uri: "/services/{serviceId}/cache/purge", + code: 200, + }), + ), +).annotate({ + identifier: "PurgeCacheRequest", +}) as any as S.Schema; + +export interface PurgeCacheResponse {} +export const PurgeCacheResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "PurgeCacheResponse", +}) as any as S.Schema; + +export interface RoutePut { + type: RouteType | (string & {}); + source: string; + destination: string; +} +export const RoutePut = /*@__PURE__*/ S.suspend(() => + S.Struct({ + type: RouteType, + source: S.String, + destination: S.String, + }), +).annotate({ identifier: "RoutePut" }) as any as S.Schema; + +export type PutRoutesRequestBodyList = Array; +export const PutRoutesRequestBodyList = /*@__PURE__*/ S.Array( + RoutePut, +) as any as S.Schema; + +export interface PutRoutesRequest { + /** The ID of the service */ + serviceId: string; + body: PutRoutesRequestBodyList; +} +export const PutRoutesRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + body: PutRoutesRequestBodyList.pipe(T.HttpBody()), + }).pipe( + T.Http({ method: "PUT", uri: "/services/{serviceId}/routes", code: 200 }), + ), +).annotate({ + identifier: "PutRoutesRequest", +}) as any as S.Schema; + +export type PutRoutesResponseBodyList = Array; +export const PutRoutesResponseBodyList = /*@__PURE__*/ S.Array( + Route, +) as any as S.Schema; + +export type PutRoutesResponse = PutRoutesResponseBodyList; +export const PutRoutesResponse = /*@__PURE__*/ S.suspend(() => + PutRoutesResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "PutRoutesResponse", +}) as any as S.Schema; + +export interface RecoverPostgresRequest { + postgresId: string; + /** Name of the new database. */ + restoreName?: string; + /** The point in time to restore the database to. See `/recovery-info` for restore availability */ + restoreTime: string; + /** Datadog API key to use for monitoring the new database. Defaults to the API key of the original database. Use an empty string to prevent copying of the API key to the new database. */ + datadogApiKey?: string; + /** Datadog region code to use for monitoring the new database. Defaults to the region code of the original database. Use an empty string to prevent copying of the region code to the new database. */ + datadogSite?: string; + /** The plan to use for the new database. Defaults to the same plan as the original database. Cannot be a lower tier plan than the original database. */ + plan?: string; + /** The environment to create the new database in. Defaults to the environment of the original database. */ + environmentId?: string; +} +export const RecoverPostgresRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + postgresId: S.String.pipe(T.Label()), + restoreName: S.optional(S.String), + restoreTime: S.String, + datadogApiKey: S.optional(S.String), + datadogSite: S.optional(S.String), + plan: S.optional(S.String), + environmentId: S.optional(S.String), + }).pipe( + T.Http({ + method: "POST", + uri: "/postgres/{postgresId}/recovery", + code: 200, + }), + ), +).annotate({ + identifier: "RecoverPostgresRequest", +}) as any as S.Schema; + +export interface RefreshCustomDomainRequest { + /** The ID of the service */ + serviceId: string; + /** The ID or name of the custom domain */ + customDomainNameOrID: string; +} +export const RefreshCustomDomainRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + customDomainNameOrID: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "POST", + uri: "/services/{serviceId}/custom-domains/{customDomainNameOrID}/verify", + code: 200, + }), + ), +).annotate({ + identifier: "RefreshCustomDomainRequest", +}) as any as S.Schema; + +export interface RefreshCustomDomainResponse {} +export const RefreshCustomDomainResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "RefreshCustomDomainResponse", +}) as any as S.Schema; + +export type RemoveResourcesFromEnvironmentRequestResourceIdsList = + Array; +export const RemoveResourcesFromEnvironmentRequestResourceIdsList = + /*@__PURE__*/ S.Array( + S.String, + ) as any as S.Schema; + +export interface RemoveResourcesFromEnvironmentRequest { + environmentId: string; + resourceIds: RemoveResourcesFromEnvironmentRequestResourceIdsList; +} +export const RemoveResourcesFromEnvironmentRequest = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + environmentId: S.String.pipe(T.Label()), + resourceIds: RemoveResourcesFromEnvironmentRequestResourceIdsList.pipe( + T.Query(), + ), + }).pipe( + T.Http({ + method: "DELETE", + uri: "/environments/{environmentId}/resources", + code: 200, + }), + ), +).annotate({ + identifier: "RemoveResourcesFromEnvironmentRequest", +}) as any as S.Schema; + +export interface RemoveResourcesFromEnvironmentResponse {} +export const RemoveResourcesFromEnvironmentResponse = /*@__PURE__*/ S.suspend( + () => S.Struct({}), +).annotate({ + identifier: "RemoveResourcesFromEnvironmentResponse", +}) as any as S.Schema; + +export interface RemoveWorkspaceMemberRequest { + /** The ID of the workspace to return resources for */ + ownerId: string; + /** The ID of the user (Render object ID with a `usr-` prefix). */ + userId: string; +} +export const RemoveWorkspaceMemberRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.String.pipe(T.Label()), + userId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "DELETE", + uri: "/owners/{ownerId}/members/{userId}", + code: 200, + }), + ), +).annotate({ + identifier: "RemoveWorkspaceMemberRequest", +}) as any as S.Schema; + +export interface RemoveWorkspaceMemberResponse {} +export const RemoveWorkspaceMemberResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "RemoveWorkspaceMemberResponse", +}) as any as S.Schema; + +export interface RestartPostgresRequest { + postgresId: string; +} +export const RestartPostgresRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + postgresId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "POST", + uri: "/postgres/{postgresId}/restart", + code: 200, + }), + ), +).annotate({ + identifier: "RestartPostgresRequest", +}) as any as S.Schema; + +export interface RestartPostgresResponse {} +export const RestartPostgresResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "RestartPostgresResponse", +}) as any as S.Schema; + +export interface RestartServiceRequest { + /** The ID of the service */ + serviceId: string; +} +export const RestartServiceRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "POST", uri: "/services/{serviceId}/restart", code: 200 }), + ), +).annotate({ + identifier: "RestartServiceRequest", +}) as any as S.Schema; + +export interface RestartServiceResponse {} +export const RestartServiceResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "RestartServiceResponse", +}) as any as S.Schema; + +export interface RestoreSnapshotRequest { + /** The ID of the disk */ + diskId: string; + snapshotKey: string; + instanceId?: string; +} +export const RestoreSnapshotRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + diskId: S.String.pipe(T.Label()), + snapshotKey: S.String, + instanceId: S.optional(S.String), + }).pipe( + T.Http({ + method: "POST", + uri: "/disks/{diskId}/snapshots/restore", + code: 200, + }), + ), +).annotate({ + identifier: "RestoreSnapshotRequest", +}) as any as S.Schema; + +export interface ResumeKeyValueRequest { + redisId: string; +} +export const ResumeKeyValueRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + redisId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "POST", uri: "/key-value/{redisId}/resume", code: 200 }), + ), +).annotate({ + identifier: "ResumeKeyValueRequest", +}) as any as S.Schema; + +export interface ResumeKeyValueResponse {} +export const ResumeKeyValueResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "ResumeKeyValueResponse", +}) as any as S.Schema; + +export interface ResumePostgresRequest { + postgresId: string; +} +export const ResumePostgresRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + postgresId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "POST", uri: "/postgres/{postgresId}/resume", code: 200 }), + ), +).annotate({ + identifier: "ResumePostgresRequest", +}) as any as S.Schema; + +export interface ResumePostgresResponse {} +export const ResumePostgresResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "ResumePostgresResponse", +}) as any as S.Schema; + +export interface ResumeServiceRequest { + /** The ID of the service */ + serviceId: string; +} +export const ResumeServiceRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "POST", uri: "/services/{serviceId}/resume", code: 200 }), + ), +).annotate({ + identifier: "ResumeServiceRequest", +}) as any as S.Schema; + +export interface ResumeServiceResponse {} +export const ResumeServiceResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "ResumeServiceResponse", +}) as any as S.Schema; + +export interface RetrieveBlueprintRequest { + /** The ID of the Blueprint */ + blueprintId: string; +} +export const RetrieveBlueprintRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + blueprintId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "GET", uri: "/blueprints/{blueprintId}", code: 200 }), + ), +).annotate({ + identifier: "RetrieveBlueprintRequest", +}) as any as S.Schema; + +export type RetrieveBlueprintResponseStatus = + | "created" + | "paused" + | "in_sync" + | "syncing" + | "error"; +export const RetrieveBlueprintResponseStatus = /*@__PURE__*/ S.String; + +/** type of the resource (ex. web_service or postgres) */ +export type RetrieveBlueprintResponseResourcesItemType = + | "static_site" + | "web_service" + | "private_service" + | "background_worker" + | "cron_job" + | "redis" + | "key_value" + | "postgres" + | "environment_group" + | "artifact_source"; +export const RetrieveBlueprintResponseResourcesItemType = + /*@__PURE__*/ S.String; + +export interface RetrieveBlueprintResponseResourcesItem { + id: string; + name: string; + /** type of the resource (ex. web_service or postgres) */ + type: RetrieveBlueprintResponseResourcesItemType; +} +export const RetrieveBlueprintResponseResourcesItem = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + id: S.String, + name: S.String, + type: RetrieveBlueprintResponseResourcesItemType, + }), +).annotate({ + identifier: "RetrieveBlueprintResponseResourcesItem", +}) as any as S.Schema; + +export type RetrieveBlueprintResponseResourcesList = + Array; +export const RetrieveBlueprintResponseResourcesList = /*@__PURE__*/ S.Array( + RetrieveBlueprintResponseResourcesItem, +) as any as S.Schema; + +export interface RetrieveBlueprintResponse { + id: string; + name: string; + status: RetrieveBlueprintResponseStatus; + autoSync: boolean; + repo: string; + branch: string; + path: string; + lastSync?: string; + resources: RetrieveBlueprintResponseResourcesList; +} +export const RetrieveBlueprintResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + status: RetrieveBlueprintResponseStatus, + autoSync: S.Boolean, + repo: S.String, + branch: S.String, + path: S.String, + lastSync: S.optional(S.String), + resources: RetrieveBlueprintResponseResourcesList, + }), +).annotate({ + identifier: "RetrieveBlueprintResponse", +}) as any as S.Schema; + +export interface RetrieveCustomDomainRequest { + /** The ID of the service */ + serviceId: string; + /** The ID or name of the custom domain */ + customDomainNameOrID: string; +} +export const RetrieveCustomDomainRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + customDomainNameOrID: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/services/{serviceId}/custom-domains/{customDomainNameOrID}", + code: 200, + }), + ), +).annotate({ + identifier: "RetrieveCustomDomainRequest", +}) as any as S.Schema; + +export interface RetrieveDedicatedIpRequest { + /** The ID of the dedicated IP set */ + dedicatedIpId: string; +} +export const RetrieveDedicatedIpRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + dedicatedIpId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "GET", uri: "/dedicated-ips/{dedicatedIpId}", code: 200 }), + ), +).annotate({ + identifier: "RetrieveDedicatedIpRequest", +}) as any as S.Schema; + +export interface RetrieveDeployRequest { + /** The ID of the service */ + serviceId: string; + /** The ID of the deploy */ + deployId: string; +} +export const RetrieveDeployRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + deployId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/services/{serviceId}/deploys/{deployId}", + code: 200, + }), + ), +).annotate({ + identifier: "RetrieveDeployRequest", +}) as any as S.Schema; + +export interface RetrieveDiskRequest { + /** The ID of the disk */ + diskId: string; +} +export const RetrieveDiskRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + diskId: S.String.pipe(T.Label()), + }).pipe(T.Http({ method: "GET", uri: "/disks/{diskId}", code: 200 })), +).annotate({ + identifier: "RetrieveDiskRequest", +}) as any as S.Schema; + +export interface RetrieveEnvGroupRequest { + /** Filter for resources that belong to an environment group */ + envGroupId: string; +} +export const RetrieveEnvGroupRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + envGroupId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "GET", uri: "/env-groups/{envGroupId}", code: 200 }), + ), +).annotate({ + identifier: "RetrieveEnvGroupRequest", +}) as any as S.Schema; + +/** List of serviceIds linked to the envGroup */ +export type RetrieveEnvGroupResponseServiceLinksList = Array; +export const RetrieveEnvGroupResponseServiceLinksList = /*@__PURE__*/ S.Array( + EnvGroupLink, +) as any as S.Schema; + +export type RetrieveEnvGroupResponseEnvVarsList = Array; +export const RetrieveEnvGroupResponseEnvVarsList = /*@__PURE__*/ S.Array( + EnvVar, +) as any as S.Schema; + +export type RetrieveEnvGroupResponseSecretFilesList = Array; +export const RetrieveEnvGroupResponseSecretFilesList = /*@__PURE__*/ S.Array( + SecretFile, +) as any as S.Schema; + +export interface RetrieveEnvGroupResponse { + id: string; + name: string; + ownerId: string; + createdAt: string; + updatedAt: string; + /** List of serviceIds linked to the envGroup */ + serviceLinks: RetrieveEnvGroupResponseServiceLinksList; + environmentId?: string; + envVars: RetrieveEnvGroupResponseEnvVarsList; + secretFiles: RetrieveEnvGroupResponseSecretFilesList; +} +export const RetrieveEnvGroupResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + ownerId: S.String, + createdAt: S.String, + updatedAt: S.String, + serviceLinks: RetrieveEnvGroupResponseServiceLinksList, + environmentId: S.optional(S.String), + envVars: RetrieveEnvGroupResponseEnvVarsList, + secretFiles: RetrieveEnvGroupResponseSecretFilesList, + }), +).annotate({ + identifier: "RetrieveEnvGroupResponse", +}) as any as S.Schema; + +export interface RetrieveEnvGroupEnvVarRequest { + /** Filter for resources that belong to an environment group */ + envGroupId: string; + /** The name of the environment variable */ + envVarKey: string; +} +export const RetrieveEnvGroupEnvVarRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + envGroupId: S.String.pipe(T.Label()), + envVarKey: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/env-groups/{envGroupId}/env-vars/{envVarKey}", + code: 200, + }), + ), +).annotate({ + identifier: "RetrieveEnvGroupEnvVarRequest", +}) as any as S.Schema; + +export interface RetrieveEnvGroupSecretFileRequest { + /** Filter for resources that belong to an environment group */ + envGroupId: string; + /** The name of the secret file */ + envVarKey: string; +} +export const RetrieveEnvGroupSecretFileRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + envGroupId: S.String.pipe(T.Label()), + envVarKey: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/env-groups/{envGroupId}/secret-files/{envVarKey}", + code: 200, + }), + ), +).annotate({ + identifier: "RetrieveEnvGroupSecretFileRequest", +}) as any as S.Schema; + +export interface RetrieveEnvironmentRequest { + environmentId: string; +} +export const RetrieveEnvironmentRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + environmentId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "GET", uri: "/environments/{environmentId}", code: 200 }), + ), +).annotate({ + identifier: "RetrieveEnvironmentRequest", +}) as any as S.Schema; + +export interface RetrieveEnvVarRequest { + /** The ID of the service */ + serviceId: string; + /** The name of the environment variable */ + envVarKey: string; +} +export const RetrieveEnvVarRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + envVarKey: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/services/{serviceId}/env-vars/{envVarKey}", + code: 200, + }), + ), +).annotate({ + identifier: "RetrieveEnvVarRequest", +}) as any as S.Schema; + +export interface RetrieveEventRequest { + /** The ID of the event */ + eventId: string; +} +export const RetrieveEventRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + eventId: S.String.pipe(T.Label()), + }).pipe(T.Http({ method: "GET", uri: "/events/{eventId}", code: 200 })), +).annotate({ + identifier: "RetrieveEventRequest", +}) as any as S.Schema; + +export type RetrieveEventResponseType = + | "artifact_fetch_failed" + | "artifact_source_changed" + | "autoscaling_config_changed" + | "autoscaling_ended" + | "autoscaling_started" + | "branch_deleted" + | "build_ended" + | "build_started" + | "commit_ignored" + | "cron_job_run_ended" + | "cron_job_run_started" + | "deploy_ended" + | "deploy_started" + | "disk_created" + | "disk_updated" + | "disk_deleted" + | "image_pull_failed" + | "instance_count_changed" + | "job_run_ended" + | "maintenance_mode_enabled" + | "maintenance_mode_uri_updated" + | "maintenance_ended" + | "maintenance_started" + | "pipeline_minutes_exhausted" + | "plan_changed" + | "pre_deploy_ended" + | "pre_deploy_started" + | "server_available" + | "server_failed" + | "server_hardware_failure" + | "server_restarted" + | "service_resumed" + | "service_suspended" + | "zero_downtime_redeploy_ended" + | "zero_downtime_redeploy_started" + | "edge_cache_enabled" + | "edge_cache_disabled" + | "edge_cache_purged" + | "auto_deploy_disabled" + | "auto_deploy_enabled" + | "postgres_available" + | "postgres_backup_completed" + | "postgres_backup_failed" + | "postgres_backup_started" + | "postgres_cluster_leader_changed" + | "postgres_connection_pool_changed" + | "postgres_connection_pool_enabled_changed" + | "postgres_created" + | "postgres_disk_size_changed" + | "postgres_disk_autoscaling_enabled_changed" + | "postgres_ha_status_changed" + | "postgres_restarted" + | "postgres_unavailable" + | "postgres_upgrade_failed" + | "postgres_upgrade_started" + | "postgres_upgrade_succeeded" + | "postgres_restore_failed" + | "postgres_restore_succeeded" + | "postgres_read_replicas_changed" + | "postgres_pitr_checkpoint_started" + | "postgres_pitr_checkpoint_failed" + | "postgres_pitr_checkpoint_completed" + | "postgres_read_replica_stale" + | "postgres_wal_archive_failed" + | "key_value_available" + | "key_value_config_restart" + | "key_value_unhealthy"; +export const RetrieveEventResponseType = /*@__PURE__*/ S.String; + +export type RetrieveEventResponseDetailsCase0Case0 = _0Case0; +export const RetrieveEventResponseDetailsCase0Case0 = _0Case0; + +export type RetrieveEventResponseDetailsCase0Case1 = _0Case1; +export const RetrieveEventResponseDetailsCase0Case1 = _0Case1; + +export type RetrieveEventResponseDetailsCase0Case2 = _0Case2; +export const RetrieveEventResponseDetailsCase0Case2 = _0Case2; + +export type RetrieveEventResponseDetailsCase0Case3 = _0Case3; +export const RetrieveEventResponseDetailsCase0Case3 = _0Case3; + +export type RetrieveEventResponseDetailsCase0Case4 = _0Case4; +export const RetrieveEventResponseDetailsCase0Case4 = _0Case4; + +export type RetrieveEventResponseDetailsCase0Case5 = _0Case5; +export const RetrieveEventResponseDetailsCase0Case5 = _0Case5; + +export type RetrieveEventResponseDetailsCase0Case6BuildStatus = + | "succeeded" + | "failed" + | "canceled"; +export const RetrieveEventResponseDetailsCase0Case6BuildStatus = + /*@__PURE__*/ S.String; + +export type RetrieveEventResponseDetailsCase0Case6ReasonNewBuild = + SyncWithCursorSyncCommit; +export const RetrieveEventResponseDetailsCase0Case6ReasonNewBuild = + SyncWithCursorSyncCommit; + +export type RetrieveEventResponseDetailsCase0Case6Reason = _0Case6Reason; +export const RetrieveEventResponseDetailsCase0Case6Reason = _0Case6Reason; + +export interface RetrieveEventResponseDetailsCase0Case6 { + buildId: string; + buildStatus: RetrieveEventResponseDetailsCase0Case6BuildStatus; + reason: _0Case6Reason; + status: number; +} +export const RetrieveEventResponseDetailsCase0Case6 = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + buildId: S.String, + buildStatus: RetrieveEventResponseDetailsCase0Case6BuildStatus, + reason: _0Case6Reason, + status: S.Number, + }), +).annotate({ + identifier: "RetrieveEventResponseDetailsCase0Case6", +}) as any as S.Schema; + +export type RetrieveEventResponseDetailsCase0Case7Trigger = _0Case7Trigger; +export const RetrieveEventResponseDetailsCase0Case7Trigger = _0Case7Trigger; + +export type RetrieveEventResponseDetailsCase0Case7 = _0Case7; +export const RetrieveEventResponseDetailsCase0Case7 = _0Case7; + +export type RetrieveEventResponseDetailsCase0Case8 = _0Case8; +export const RetrieveEventResponseDetailsCase0Case8 = _0Case8; + +export type RetrieveEventResponseDetailsCase0Case9Status = + | "canceled" + | "pending" + | "successful" + | "unsuccessful"; +export const RetrieveEventResponseDetailsCase0Case9Status = + /*@__PURE__*/ S.String; + +export type RetrieveEventResponseDetailsCase0Case9ReasonOomKilled = + ReasonOomKilled; +export const RetrieveEventResponseDetailsCase0Case9ReasonOomKilled = + ReasonOomKilled; + +export type RetrieveEventResponseDetailsCase0Case9Reason = Reason; +export const RetrieveEventResponseDetailsCase0Case9Reason = Reason; + +/** User who triggered the action */ +export type RetrieveEventResponseDetailsCase0Case9User = User2; +export const RetrieveEventResponseDetailsCase0Case9User = User2; + +export interface RetrieveEventResponseDetailsCase0Case9 { + cronJobRunId: string; + status: RetrieveEventResponseDetailsCase0Case9Status; + reason?: Reason; + /** User who triggered the action */ + user?: User2; +} +export const RetrieveEventResponseDetailsCase0Case9 = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + cronJobRunId: S.String, + status: RetrieveEventResponseDetailsCase0Case9Status, + reason: S.optional(Reason), + user: S.optional(User2), + }), +).annotate({ + identifier: "RetrieveEventResponseDetailsCase0Case9", +}) as any as S.Schema; + +export type RetrieveEventResponseDetailsCase0Case10 = _0Case10; +export const RetrieveEventResponseDetailsCase0Case10 = _0Case10; + +export type RetrieveEventResponseDetailsCase0Case11 = _0Case11; +export const RetrieveEventResponseDetailsCase0Case11 = _0Case11; + +export type RetrieveEventResponseDetailsCase0Case12 = _0Case12; +export const RetrieveEventResponseDetailsCase0Case12 = _0Case12; + +export type RetrieveEventResponseDetailsCase0Case13 = _0Case13; +export const RetrieveEventResponseDetailsCase0Case13 = _0Case13; + +export type RetrieveEventResponseDetailsCase0Case14 = _0Case14; +export const RetrieveEventResponseDetailsCase0Case14 = _0Case14; + +export type RetrieveEventResponseDetailsCase0Case15 = _0Case15; +export const RetrieveEventResponseDetailsCase0Case15 = _0Case15; + +export type RetrieveEventResponseDetailsCase0Case16 = _0Case16; +export const RetrieveEventResponseDetailsCase0Case16 = _0Case16; + +export type RetrieveEventResponseDetailsCase0Case17 = _0Case16; +export const RetrieveEventResponseDetailsCase0Case17 = _0Case16; + +export type RetrieveEventResponseDetailsCase0Case18 = _0Case18; +export const RetrieveEventResponseDetailsCase0Case18 = _0Case18; + +export type RetrieveEventResponseDetailsCase0Case19 = _0Case19; +export const RetrieveEventResponseDetailsCase0Case19 = _0Case19; + +export type RetrieveEventResponseDetailsCase0Case20 = _0Case19; +export const RetrieveEventResponseDetailsCase0Case20 = _0Case19; + +export type RetrieveEventResponseDetailsCase0Case21 = _0Case3; +export const RetrieveEventResponseDetailsCase0Case21 = _0Case3; + +export type RetrieveEventResponseDetailsCase0Case22 = _0Case22; +export const RetrieveEventResponseDetailsCase0Case22 = _0Case22; + +export type RetrieveEventResponseDetailsCase0Case23 = _0Case23; +export const RetrieveEventResponseDetailsCase0Case23 = _0Case23; + +export type RetrieveEventResponseDetailsCase0Case24 = _0Case24; +export const RetrieveEventResponseDetailsCase0Case24 = _0Case24; + +export type RetrieveEventResponseDetailsCase0Case26Trigger = _0Case26Trigger; +export const RetrieveEventResponseDetailsCase0Case26Trigger = _0Case26Trigger; + +export type RetrieveEventResponseDetailsCase0Case26 = _0Case26; +export const RetrieveEventResponseDetailsCase0Case26 = _0Case26; + +export type RetrieveEventResponseDetailsCase0Case27 = _0Case7; +export const RetrieveEventResponseDetailsCase0Case27 = _0Case7; + +export type RetrieveEventResponseDetailsCase0Case28 = _0Case28; +export const RetrieveEventResponseDetailsCase0Case28 = _0Case28; + +export type RetrieveEventResponseDetailsCase0Case29 = _0Case29; +export const RetrieveEventResponseDetailsCase0Case29 = _0Case29; + +export type RetrieveEventResponseDetailsCase0Case30 = _0Case30; +export const RetrieveEventResponseDetailsCase0Case30 = _0Case30; + +export type RetrieveEventResponseDetailsCase0Case32 = _0Case32; +export const RetrieveEventResponseDetailsCase0Case32 = _0Case32; + +export type RetrieveEventResponseDetailsCase0Case34 = _0Case34; +export const RetrieveEventResponseDetailsCase0Case34 = _0Case34; + +export type RetrieveEventResponseDetailsCase0Case37 = _0Case37; +export const RetrieveEventResponseDetailsCase0Case37 = _0Case37; + +export type RetrieveEventResponseDetailsCase0Case38 = _0Case38; +export const RetrieveEventResponseDetailsCase0Case38 = _0Case38; + +export type RetrieveEventResponseDetailsCase0Case40 = _0Case40; +export const RetrieveEventResponseDetailsCase0Case40 = _0Case40; + +export type RetrieveEventResponseDetailsCase0Case41Trigger = _0Case41Trigger; +export const RetrieveEventResponseDetailsCase0Case41Trigger = _0Case41Trigger; + +export type RetrieveEventResponseDetailsCase0Case41 = _0Case41; +export const RetrieveEventResponseDetailsCase0Case41 = _0Case41; + +export type RetrieveEventResponseDetailsCase0Case42 = _0Case41; +export const RetrieveEventResponseDetailsCase0Case42 = _0Case41; + +export type RetrieveEventResponseDetailsCase0Case43 = _0Case41; +export const RetrieveEventResponseDetailsCase0Case43 = _0Case41; + +export type RetrieveEventResponseDetailsCase0Case44 = _0Case44; +export const RetrieveEventResponseDetailsCase0Case44 = _0Case44; + +/** The auto-deploy trigger value after it was re-enabled */ +export type RetrieveEventResponseDetailsCase0Case45NewTrigger = + | "commit" + | "off" + | "checksPass"; +export const RetrieveEventResponseDetailsCase0Case45NewTrigger = + /*@__PURE__*/ S.String; + +export interface RetrieveEventResponseDetailsCase0Case45 { + /** The auto-deploy trigger value after it was re-enabled */ + newTrigger?: RetrieveEventResponseDetailsCase0Case45NewTrigger; +} +export const RetrieveEventResponseDetailsCase0Case45 = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + newTrigger: S.optional(RetrieveEventResponseDetailsCase0Case45NewTrigger), + }), +).annotate({ + identifier: "RetrieveEventResponseDetailsCase0Case45", +}) as any as S.Schema; + +export type RetrieveEventResponseDetailsCase0 = + | _0Case0 + | _0Case1 + | _0Case2 + | _0Case3 + | _0Case4 + | _0Case5 + | RetrieveEventResponseDetailsCase0Case6 + | _0Case7 + | _0Case8 + | RetrieveEventResponseDetailsCase0Case9 + | _0Case10 + | _0Case11 + | _0Case12 + | _0Case13 + | _0Case14 + | _0Case15 + | _0Case16 + | _0Case16 + | _0Case18 + | _0Case19 + | _0Case19 + | _0Case3 + | _0Case22 + | _0Case23 + | _0Case24 + | unknown + | _0Case26 + | _0Case7 + | _0Case28 + | _0Case29 + | _0Case30 + | _0Case32 + | _0Case34 + | _0Case37 + | _0Case38 + | _0Case40 + | _0Case41 + | _0Case41 + | _0Case41 + | _0Case44 + | RetrieveEventResponseDetailsCase0Case45; +export const RetrieveEventResponseDetailsCase0 = + /*@__PURE__*/ S.Unknown as any as S.Schema; + +export interface RetrieveEventResponseDetailsCase1Case4 { + leaderId?: string; +} +export const RetrieveEventResponseDetailsCase1Case4 = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + leaderId: S.optional(S.String), + }), +).annotate({ + identifier: "RetrieveEventResponseDetailsCase1Case4", +}) as any as S.Schema; + +export interface RetrieveEventResponseDetailsCase1Case5 { + user?: User2; + from: string; + to: string; +} +export const RetrieveEventResponseDetailsCase1Case5 = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + user: S.optional(User2), + from: S.String, + to: S.String, + }), +).annotate({ + identifier: "RetrieveEventResponseDetailsCase1Case5", +}) as any as S.Schema; + +export interface RetrieveEventResponseDetailsCase1Case6 { + user?: User2; + enabled: boolean; +} +export const RetrieveEventResponseDetailsCase1Case6 = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + user: S.optional(User2), + enabled: S.Boolean, + }), +).annotate({ + identifier: "RetrieveEventResponseDetailsCase1Case6", +}) as any as S.Schema; + +export interface RetrieveEventResponseDetailsCase1Case7 { + user?: User2; +} +export const RetrieveEventResponseDetailsCase1Case7 = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + user: S.optional(User2), + }), +).annotate({ + identifier: "RetrieveEventResponseDetailsCase1Case7", +}) as any as S.Schema; + +export interface RetrieveEventResponseDetailsCase1Case8 { + user?: User2; + fromDiskSize: number; + toDiskSize: number; +} +export const RetrieveEventResponseDetailsCase1Case8 = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + user: S.optional(User2), + fromDiskSize: S.Number, + toDiskSize: S.Number, + }), +).annotate({ + identifier: "RetrieveEventResponseDetailsCase1Case8", +}) as any as S.Schema; + +export interface RetrieveEventResponseDetailsCase1Case9 { + fromStatus: string; + toStatus: string; +} +export const RetrieveEventResponseDetailsCase1Case9 = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + fromStatus: S.String, + toStatus: S.String, + }), +).annotate({ + identifier: "RetrieveEventResponseDetailsCase1Case9", +}) as any as S.Schema; + +export interface RetrieveEventResponseDetailsCase1Case10 { + fromReplicas: number; + toReplicas: number; +} +export const RetrieveEventResponseDetailsCase1Case10 = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + fromReplicas: S.Number, + toReplicas: S.Number, + }), +).annotate({ + identifier: "RetrieveEventResponseDetailsCase1Case10", +}) as any as S.Schema; + +export type RetrieveEventResponseDetailsCase1Case11 = + RetrieveEventResponseDetailsCase1Case7; +export const RetrieveEventResponseDetailsCase1Case11 = + RetrieveEventResponseDetailsCase1Case7; + +export interface RetrieveEventResponseDetailsCase1Case13 { + fromVersion: string; + toVersion: string; +} +export const RetrieveEventResponseDetailsCase1Case13 = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + fromVersion: S.String, + toVersion: S.String, + }), +).annotate({ + identifier: "RetrieveEventResponseDetailsCase1Case13", +}) as any as S.Schema; + +export interface RetrieveEventResponseDetailsCase1Case14 { + user?: User2; + fromVersion: string; + toVersion: string; +} +export const RetrieveEventResponseDetailsCase1Case14 = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + user: S.optional(User2), + fromVersion: S.String, + toVersion: S.String, + }), +).annotate({ + identifier: "RetrieveEventResponseDetailsCase1Case14", +}) as any as S.Schema; + +export type RetrieveEventResponseDetailsCase1Case15 = + RetrieveEventResponseDetailsCase1Case13; +export const RetrieveEventResponseDetailsCase1Case15 = + RetrieveEventResponseDetailsCase1Case13; + +export type RetrieveEventResponseDetailsCase1 = + | unknown + | RetrieveEventResponseDetailsCase1Case4 + | RetrieveEventResponseDetailsCase1Case5 + | RetrieveEventResponseDetailsCase1Case6 + | RetrieveEventResponseDetailsCase1Case7 + | RetrieveEventResponseDetailsCase1Case8 + | RetrieveEventResponseDetailsCase1Case9 + | RetrieveEventResponseDetailsCase1Case10 + | RetrieveEventResponseDetailsCase1Case7 + | RetrieveEventResponseDetailsCase1Case13 + | RetrieveEventResponseDetailsCase1Case14 + | RetrieveEventResponseDetailsCase1Case13; +export const RetrieveEventResponseDetailsCase1 = + /*@__PURE__*/ S.Unknown as any as S.Schema; + +export interface RetrieveEventResponseDetailsCase2Case1 { + reason: string; + message: string; +} +export const RetrieveEventResponseDetailsCase2Case1 = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + reason: S.String, + message: S.String, + }), +).annotate({ + identifier: "RetrieveEventResponseDetailsCase2Case1", +}) as any as S.Schema; + +export type RetrieveEventResponseDetailsCase2 = + | unknown + | RetrieveEventResponseDetailsCase2Case1; +export const RetrieveEventResponseDetailsCase2 = + /*@__PURE__*/ S.Unknown as any as S.Schema; + +export type RetrieveEventResponseDetails = + | RetrieveEventResponseDetailsCase0 + | RetrieveEventResponseDetailsCase1 + | RetrieveEventResponseDetailsCase2; +export const RetrieveEventResponseDetails = + /*@__PURE__*/ S.Unknown as any as S.Schema; + +export interface RetrieveEventResponse { + id: string; + timestamp: string; + serviceId: string; + type: RetrieveEventResponseType; + details: RetrieveEventResponseDetails; +} +export const RetrieveEventResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + timestamp: S.String, + serviceId: S.String, + type: RetrieveEventResponseType, + details: RetrieveEventResponseDetails, + }), +).annotate({ + identifier: "RetrieveEventResponse", +}) as any as S.Schema; + +export interface RetrieveJobRequest { + /** The ID of the service */ + serviceId: string; + /** The ID of the job */ + jobId: string; +} +export const RetrieveJobRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + jobId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/services/{serviceId}/jobs/{jobId}", + code: 200, + }), + ), +).annotate({ + identifier: "RetrieveJobRequest", +}) as any as S.Schema; + +export interface RetrieveKeyValueRequest { + redisId: string; +} +export const RetrieveKeyValueRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + redisId: S.String.pipe(T.Label()), + }).pipe(T.Http({ method: "GET", uri: "/key-value/{redisId}", code: 200 })), +).annotate({ + identifier: "RetrieveKeyValueRequest", +}) as any as S.Schema; + +export interface RetrieveKeyValueConnectionInfoRequest { + redisId: string; +} +export const RetrieveKeyValueConnectionInfoRequest = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + redisId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/key-value/{redisId}/connection-info", + code: 200, + }), + ), +).annotate({ + identifier: "RetrieveKeyValueConnectionInfoRequest", +}) as any as S.Schema; + +/** A Key Value instance */ +export interface KeyValueConnectionInfo { + /** The connection string to use from within Render */ + internalConnectionString: string; + /** The connection string to use from outside Render */ + externalConnectionString: string; + /** The CLI (redis-cli or valkey-cli) command to connect to the Key Value instance */ + cliCommand: string; +} +export const KeyValueConnectionInfo = /*@__PURE__*/ S.suspend(() => + S.Struct({ + internalConnectionString: S.String, + externalConnectionString: S.String, + cliCommand: S.String, + }), +).annotate({ + identifier: "KeyValueConnectionInfo", +}) as any as S.Schema; + +export interface RetrieveMaintenanceRequest { + maintenanceRunID: string; +} +export const RetrieveMaintenanceRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + maintenanceRunID: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/maintenance/{maintenanceRunID}", + code: 200, + }), + ), +).annotate({ + identifier: "RetrieveMaintenanceRequest", +}) as any as S.Schema; + +export interface RetrieveMaintenanceResponse { + id: string; + type: string; + scheduledAt: string; + /** If present, the maintenance run cannot be scheduled for later than this date-time. */ + pendingMaintenanceBy?: string; + state: Items4; + resourceId: string; +} +export const RetrieveMaintenanceResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + type: S.String, + scheduledAt: S.String, + pendingMaintenanceBy: S.optional(S.String), + state: Items4, + resourceId: S.String, + }), +).annotate({ + identifier: "RetrieveMaintenanceResponse", +}) as any as S.Schema; + +export interface RetrieveOwnerRequest { + /** The ID of the user or team */ + ownerId: string; +} +export const RetrieveOwnerRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.String.pipe(T.Label()), + }).pipe(T.Http({ method: "GET", uri: "/owners/{ownerId}", code: 200 })), +).annotate({ + identifier: "RetrieveOwnerRequest", +}) as any as S.Schema; + +export interface RetrieveOwnerMembersRequest { + /** The ID of the team */ + ownerId: string; +} +export const RetrieveOwnerMembersRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "GET", uri: "/owners/{ownerId}/members", code: 200 }), + ), +).annotate({ + identifier: "RetrieveOwnerMembersRequest", +}) as any as S.Schema; + +export type TeamMemberStatus = "active" | "inactive"; +export const TeamMemberStatus = /*@__PURE__*/ S.String; + +/** The member's workspace role. Values are always returned in uppercase. */ +export type TeamMemberRole = + | "ADMIN" + | "DEVELOPER" + | "WORKSPACE_CONTRIBUTOR" + | "WORKSPACE_BILLING" + | "WORKSPACE_VIEWER"; +export const TeamMemberRole = /*@__PURE__*/ S.String; + +export interface TeamMember { + userId: string; + name: string; + email: string; + status: TeamMemberStatus; + role: TeamMemberRole; + mfaEnabled: boolean; +} +export const TeamMember = /*@__PURE__*/ S.suspend(() => + S.Struct({ + userId: S.String, + name: S.String, + email: S.String, + status: TeamMemberStatus, + role: TeamMemberRole, + mfaEnabled: S.Boolean, + }), +).annotate({ identifier: "TeamMember" }) as any as S.Schema; + +export type TeamMembers = Array; +export const TeamMembers = /*@__PURE__*/ S.Array( + TeamMember, +) as any as S.Schema; + +export type RetrieveOwnerMembersResponse = TeamMembers; +export const RetrieveOwnerMembersResponse = /*@__PURE__*/ S.suspend(() => + TeamMembers.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "RetrieveOwnerMembersResponse", +}) as any as S.Schema; + +export interface RetrieveOwnerNotificationSettingsRequest { + /** The ID of the workspace to return resources for */ + ownerId: string; +} +export const RetrieveOwnerNotificationSettingsRequest = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + ownerId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/notification-settings/owners/{ownerId}", + code: 200, + }), + ), +).annotate({ + identifier: "RetrieveOwnerNotificationSettingsRequest", +}) as any as S.Schema; + +export interface RetrieveOwnerNotificationSettingsResponse { + ownerId: string; + slackEnabled: boolean; + emailEnabled: boolean; + previewNotificationsEnabled: boolean; + notificationsToSend: NotificationsToSend; +} +export const RetrieveOwnerNotificationSettingsResponse = + /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.String, + slackEnabled: S.Boolean, + emailEnabled: S.Boolean, + previewNotificationsEnabled: S.Boolean, + notificationsToSend: NotificationsToSend, + }), + ).annotate({ + identifier: "RetrieveOwnerNotificationSettingsResponse", + }) as any as S.Schema; + +export interface RetrievePostgresRequest { + postgresId: string; +} +export const RetrievePostgresRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + postgresId: S.String.pipe(T.Label()), + }).pipe(T.Http({ method: "GET", uri: "/postgres/{postgresId}", code: 200 })), +).annotate({ + identifier: "RetrievePostgresRequest", +}) as any as S.Schema; + +export interface RetrievePostgresConnectionInfoRequest { + postgresId: string; +} +export const RetrievePostgresConnectionInfoRequest = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + postgresId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/postgres/{postgresId}/connection-info", + code: 200, + }), + ), +).annotate({ + identifier: "RetrievePostgresConnectionInfoRequest", +}) as any as S.Schema; + +export interface PostgresConnectionInfo { + password: string | Redacted.Redacted; + internalConnectionString: string; + externalConnectionString: string; + internalConnectionPoolString?: string; + externalConnectionPoolString?: string; + psqlCommand: string; +} +export const PostgresConnectionInfo = /*@__PURE__*/ S.suspend(() => + S.Struct({ + password: S.String.pipe(T.SensitiveValue({})), + internalConnectionString: S.String, + externalConnectionString: S.String, + internalConnectionPoolString: S.optional(S.String), + externalConnectionPoolString: S.optional(S.String), + psqlCommand: S.String, + }), +).annotate({ + identifier: "PostgresConnectionInfo", +}) as any as S.Schema; + +export interface RetrievePostgresRecoveryInfoRequest { + postgresId: string; +} +export const RetrievePostgresRecoveryInfoRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + postgresId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/postgres/{postgresId}/recovery", + code: 200, + }), + ), +).annotate({ + identifier: "RetrievePostgresRecoveryInfoRequest", +}) as any as S.Schema; + +/** Availability of point-in-time recovery. */ +export type RetrievePostgresRecoveryInfoResponseRecoveryStatus = + | "AVAILABLE" + | "BACKUP_NOT_READY" + | "NOT_AVAILABLE"; +export const RetrievePostgresRecoveryInfoResponseRecoveryStatus = + /*@__PURE__*/ S.String; + +export interface RetrievePostgresRecoveryInfoResponse { + /** Availability of point-in-time recovery. */ + recoveryStatus: RetrievePostgresRecoveryInfoResponseRecoveryStatus; + startsAt?: string; +} +export const RetrievePostgresRecoveryInfoResponse = /*@__PURE__*/ S.suspend( + () => + S.Struct({ + recoveryStatus: RetrievePostgresRecoveryInfoResponseRecoveryStatus, + startsAt: S.optional(S.String), + }), +).annotate({ + identifier: "RetrievePostgresRecoveryInfoResponse", +}) as any as S.Schema; + +export interface RetrieveProjectRequest { + projectId: string; +} +export const RetrieveProjectRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + projectId: S.String.pipe(T.Label()), + }).pipe(T.Http({ method: "GET", uri: "/projects/{projectId}", code: 200 })), +).annotate({ + identifier: "RetrieveProjectRequest", +}) as any as S.Schema; + +export interface RetrieveRegistryCredentialRequest { + /** The ID of the registry credential */ + registryCredentialId: string; +} +export const RetrieveRegistryCredentialRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + registryCredentialId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/registrycredentials/{registryCredentialId}", + code: 200, + }), + ), +).annotate({ + identifier: "RetrieveRegistryCredentialRequest", +}) as any as S.Schema; + +export interface RetrieveSecretFileRequest { + /** The ID of the service */ + serviceId: string; + /** The file name of the secret file */ + envVarKey: string; +} +export const RetrieveSecretFileRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + envVarKey: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/services/{serviceId}/secret-files/{envVarKey}", + code: 200, + }), + ), +).annotate({ + identifier: "RetrieveSecretFileRequest", +}) as any as S.Schema; + +export interface RetrieveServiceRequest { + /** The ID of the service */ + serviceId: string; +} +export const RetrieveServiceRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + }).pipe(T.Http({ method: "GET", uri: "/services/{serviceId}", code: 200 })), +).annotate({ + identifier: "RetrieveServiceRequest", +}) as any as S.Schema; + +export interface RetrieveServiceNotificationOverridesRequest { + /** The ID of the service */ + serviceId: string; +} +export const RetrieveServiceNotificationOverridesRequest = + /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/notification-settings/overrides/services/{serviceId}", + code: 200, + }), + ), + ).annotate({ + identifier: "RetrieveServiceNotificationOverridesRequest", + }) as any as S.Schema; + +export interface RetrieveServiceNotificationOverridesResponse { + serviceId: string; + previewNotificationsEnabled: PreviewNotificationsEnabled; + notificationsToSend: NotificationsToSend2; +} +export const RetrieveServiceNotificationOverridesResponse = + /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String, + previewNotificationsEnabled: PreviewNotificationsEnabled, + notificationsToSend: NotificationsToSend2, + }), + ).annotate({ + identifier: "RetrieveServiceNotificationOverridesResponse", + }) as any as S.Schema; + +export interface RetrieveServiceOutboundIpsRequest { + /** The ID of the service */ + serviceId: string; +} +export const RetrieveServiceOutboundIpsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "GET", + uri: "/services/{serviceId}/outbound-ips", + code: 200, + }), + ), +).annotate({ + identifier: "RetrieveServiceOutboundIpsRequest", +}) as any as S.Schema; + +/** `dedicated` if a dedicated IP set applies to the resource, `shared` if its traffic originates from the shared Render IPs for its region. */ +export type OutboundIpsType = "shared" | "dedicated"; +export const OutboundIpsType = /*@__PURE__*/ S.String; + +/** The IP addresses the resource's outbound traffic originates from. */ +export type OutboundIpsIpsList = Array; +export const OutboundIpsIpsList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface OutboundIps { + /** `dedicated` if a dedicated IP set applies to the resource, `shared` if its traffic originates from the shared Render IPs for its region. */ + type: OutboundIpsType; + /** The dedicated IP set the traffic originates from. Only present when `type` is `dedicated`. */ + dedicatedIpId?: string; + /** The IP addresses the resource's outbound traffic originates from. */ + ips: OutboundIpsIpsList; +} +export const OutboundIps = /*@__PURE__*/ S.suspend(() => + S.Struct({ + type: OutboundIpsType, + dedicatedIpId: S.optional(S.String), + ips: OutboundIpsIpsList, + }), +).annotate({ identifier: "OutboundIps" }) as any as S.Schema; + +export interface RetrieveWebhookRequest { + /** Unique identifier for the webhook */ + webhookId: string; +} +export const RetrieveWebhookRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + webhookId: S.String.pipe(T.Label()), + }).pipe(T.Http({ method: "GET", uri: "/webhooks/{webhookId}", code: 200 })), +).annotate({ + identifier: "RetrieveWebhookRequest", +}) as any as S.Schema; + +export interface RollbackDeployRequest { + /** The ID of the service */ + serviceId: string; + /** The ID of the deploy to roll back to */ + deployId: string; +} +export const RollbackDeployRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + deployId: S.String, + }).pipe( + T.Http({ + method: "POST", + uri: "/services/{serviceId}/rollback", + code: 200, + }), + ), +).annotate({ + identifier: "RollbackDeployRequest", +}) as any as S.Schema; + +export interface RunCronJobRequest { + /** The ID of the cron job */ + cronJobId: string; +} +export const RunCronJobRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + cronJobId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "POST", uri: "/cron-jobs/{cronJobId}/runs", code: 200 }), + ), +).annotate({ + identifier: "RunCronJobRequest", +}) as any as S.Schema; + +export type CronJobRunStatus = + | "pending" + | "successful" + | "unsuccessful" + | "canceled"; +export const CronJobRunStatus = /*@__PURE__*/ S.String; + +/** A run of a cron job */ +export interface CronJobRun { + /** The ID of the run */ + id: string; + status: CronJobRunStatus; + startedAt?: string; + finishedAt?: string; + /** user who triggered the cron job run */ + triggeredBy?: string; + /** user who cancelled the cron job run */ + canceledBy?: string; +} +export const CronJobRun = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + status: CronJobRunStatus, + startedAt: S.optional(S.String), + finishedAt: S.optional(S.String), + triggeredBy: S.optional(S.String), + canceledBy: S.optional(S.String), + }), +).annotate({ identifier: "CronJobRun" }) as any as S.Schema; + +export interface ScaleServiceRequest { + /** The ID of the service */ + serviceId: string; + numInstances: number; +} +export const ScaleServiceRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + numInstances: S.Number, + }).pipe( + T.Http({ method: "POST", uri: "/services/{serviceId}/scale", code: 200 }), + ), +).annotate({ + identifier: "ScaleServiceRequest", +}) as any as S.Schema; + +export interface ScaleServiceResponse {} +export const ScaleServiceResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "ScaleServiceResponse", +}) as any as S.Schema; + +export type StreamTaskRunsEventsRequestTaskRunIdsList = Array; +export const StreamTaskRunsEventsRequestTaskRunIdsList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface StreamTaskRunsEventsRequest { + /** Filter to a subset of task run IDs. */ + taskRunIds: StreamTaskRunsEventsRequestTaskRunIdsList; +} +export const StreamTaskRunsEventsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + taskRunIds: StreamTaskRunsEventsRequestTaskRunIdsList.pipe(T.Query()), + }).pipe(T.Http({ method: "GET", uri: "/task-runs/events", code: 200 })), +).annotate({ + identifier: "StreamTaskRunsEventsRequest", +}) as any as S.Schema; + +export interface StreamTaskRunsEventsResponse {} +export const StreamTaskRunsEventsResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "StreamTaskRunsEventsResponse", +}) as any as S.Schema; + +export type SubscribeLogsRequestDirection = "forward" | "backward"; +export const SubscribeLogsRequestDirection = /*@__PURE__*/ S.String; + +export type SubscribeLogsRequestResourceList = Array; +export const SubscribeLogsRequestResourceList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type SubscribeLogsRequestInstanceList = Array; +export const SubscribeLogsRequestInstanceList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type SubscribeLogsRequestHostList = Array; +export const SubscribeLogsRequestHostList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type SubscribeLogsRequestStatusCodeList = Array; +export const SubscribeLogsRequestStatusCodeList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type SubscribeLogsRequestMethodList = Array; +export const SubscribeLogsRequestMethodList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type SubscribeLogsRequestTaskList = Array; +export const SubscribeLogsRequestTaskList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type SubscribeLogsRequestTaskRunList = Array; +export const SubscribeLogsRequestTaskRunList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type SubscribeLogsRequestSandboxList = Array; +export const SubscribeLogsRequestSandboxList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type SubscribeLogsRequestLevelList = Array; +export const SubscribeLogsRequestLevelList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type SubscribeLogsRequestTypeList = Array; +export const SubscribeLogsRequestTypeList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type SubscribeLogsRequestTextList = Array; +export const SubscribeLogsRequestTextList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export type SubscribeLogsRequestPathList = Array; +export const SubscribeLogsRequestPathList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface SubscribeLogsRequest { + /** The ID of the workspace to return logs for */ + ownerId: string; + /** Epoch/Unix timestamp of start of time range to return. Defaults to `now() - 1 hour`. */ + startTime?: string; + /** Epoch/Unix timestamp of end of time range to return. Defaults to `now()`. */ + endTime?: string; + /** The direction to query logs for. Backward will return most recent logs first. Forward will start with the oldest logs in the time range. */ + direction?: SubscribeLogsRequestDirection | (string & {}); + /** Filter logs by their resource. A resource is the id of a server, cronjob, job, postgres, redis, workflow, or sandbox group. */ + resource: SubscribeLogsRequestResourceList; + /** Filter logs by the instance they were emitted from. An instance is the id of a specific running server. */ + instance?: SubscribeLogsRequestInstanceList; + /** Filter request logs by their host. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported. */ + host?: SubscribeLogsRequestHostList; + /** Filter request logs by their status code. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported. */ + statusCode?: SubscribeLogsRequestStatusCodeList; + /** Filter request logs by their requests method. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported. */ + method?: SubscribeLogsRequestMethodList; + /** Filter logs by their task(s) */ + task?: SubscribeLogsRequestTaskList; + /** Filter logs by their task run id(s) */ + taskRun?: SubscribeLogsRequestTaskRunList; + /** Filter logs by sandbox ID. */ + sandbox?: SubscribeLogsRequestSandboxList; + /** Filter logs by their severity level. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported. */ + level?: SubscribeLogsRequestLevelList; + /** Filter logs by their type. Types include `app` for application logs, `request` for request logs, and `build` for build logs. You can find the full set of types available for a query by using the `GET /logs/values` endpoint. */ + type?: SubscribeLogsRequestTypeList; + /** Filter by the text of the logs. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported. */ + text?: SubscribeLogsRequestTextList; + /** Filter request logs by their path. [Wildcards and regex](https://render.com/docs/logging#wildcards-and-regular-expressions) are supported. */ + path?: SubscribeLogsRequestPathList; + /** The maximum number of items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination). */ + limit?: number; +} +export const SubscribeLogsRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.String.pipe(T.Query()), + startTime: S.optional(S.String.pipe(T.Query())), + endTime: S.optional(S.String.pipe(T.Query())), + direction: S.optional(SubscribeLogsRequestDirection.pipe(T.Query())), + resource: SubscribeLogsRequestResourceList.pipe(T.Query()), + instance: S.optional(SubscribeLogsRequestInstanceList.pipe(T.Query())), + host: S.optional(SubscribeLogsRequestHostList.pipe(T.Query())), + statusCode: S.optional(SubscribeLogsRequestStatusCodeList.pipe(T.Query())), + method: S.optional(SubscribeLogsRequestMethodList.pipe(T.Query())), + task: S.optional(SubscribeLogsRequestTaskList.pipe(T.Query())), + taskRun: S.optional(SubscribeLogsRequestTaskRunList.pipe(T.Query())), + sandbox: S.optional(SubscribeLogsRequestSandboxList.pipe(T.Query())), + level: S.optional(SubscribeLogsRequestLevelList.pipe(T.Query())), + type: S.optional(SubscribeLogsRequestTypeList.pipe(T.Query())), + text: S.optional(SubscribeLogsRequestTextList.pipe(T.Query())), + path: S.optional(SubscribeLogsRequestPathList.pipe(T.Query())), + limit: S.optional(S.Number.pipe(T.Query())), + }).pipe(T.Http({ method: "GET", uri: "/logs/subscribe", code: 200 })), +).annotate({ + identifier: "SubscribeLogsRequest", +}) as any as S.Schema; + +export interface SubscribeLogsResponse {} +export const SubscribeLogsResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "SubscribeLogsResponse", +}) as any as S.Schema; + +export interface SuspendKeyValueRequest { + redisId: string; +} +export const SuspendKeyValueRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + redisId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "POST", uri: "/key-value/{redisId}/suspend", code: 200 }), + ), +).annotate({ + identifier: "SuspendKeyValueRequest", +}) as any as S.Schema; + +export interface SuspendKeyValueResponse {} +export const SuspendKeyValueResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "SuspendKeyValueResponse", +}) as any as S.Schema; + +export interface SuspendPostgresRequest { + postgresId: string; +} +export const SuspendPostgresRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + postgresId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "POST", + uri: "/postgres/{postgresId}/suspend", + code: 200, + }), + ), +).annotate({ + identifier: "SuspendPostgresRequest", +}) as any as S.Schema; + +export interface SuspendPostgresResponse {} +export const SuspendPostgresResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "SuspendPostgresResponse", +}) as any as S.Schema; + +export interface SuspendServiceRequest { + /** The ID of the service */ + serviceId: string; +} +export const SuspendServiceRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ method: "POST", uri: "/services/{serviceId}/suspend", code: 200 }), + ), +).annotate({ + identifier: "SuspendServiceRequest", +}) as any as S.Schema; + +export interface SuspendServiceResponse {} +export const SuspendServiceResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "SuspendServiceResponse", +}) as any as S.Schema; + +export interface TriggerMaintenanceRequest { + maintenanceRunID: string; +} +export const TriggerMaintenanceRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + maintenanceRunID: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "POST", + uri: "/maintenance/{maintenanceRunID}/trigger", + code: 200, + }), + ), +).annotate({ + identifier: "TriggerMaintenanceRequest", +}) as any as S.Schema; + +export interface TriggerMaintenanceResponse {} +export const TriggerMaintenanceResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "TriggerMaintenanceResponse", +}) as any as S.Schema; + +export interface UnlinkServiceFromEnvGroupRequest { + envGroupId: string; + serviceId: string; +} +export const UnlinkServiceFromEnvGroupRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + envGroupId: S.String.pipe(T.Label()), + serviceId: S.String.pipe(T.Label()), + }).pipe( + T.Http({ + method: "DELETE", + uri: "/env-groups/{envGroupId}/services/{serviceId}", + code: 200, + }), + ), +).annotate({ + identifier: "UnlinkServiceFromEnvGroupRequest", +}) as any as S.Schema; + +export interface UnlinkServiceFromEnvGroupResponse {} +export const UnlinkServiceFromEnvGroupResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "UnlinkServiceFromEnvGroupResponse", +}) as any as S.Schema; + +export interface UpdateBlueprintRequest { + /** The ID of the Blueprint */ + blueprintId: string; + name?: string; + /** Automatically sync changes to render.yaml */ + autoSync?: boolean; + /** Path to the Blueprint file in the repository */ + path?: string; +} +export const UpdateBlueprintRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + blueprintId: S.String.pipe(T.Label()), + name: S.optional(S.String), + autoSync: S.optional(S.Boolean), + path: S.optional(S.String), + }).pipe( + T.Http({ method: "PATCH", uri: "/blueprints/{blueprintId}", code: 200 }), + ), +).annotate({ + identifier: "UpdateBlueprintRequest", +}) as any as S.Schema; + +export interface UpdateBlueprintResponse { + id: string; + name: string; + status: Status; + autoSync: boolean; + repo: string; + branch: string; + path: string; + lastSync?: string; +} +export const UpdateBlueprintResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + status: Status, + autoSync: S.Boolean, + repo: S.String, + branch: S.String, + path: S.String, + lastSync: S.optional(S.String), + }), +).annotate({ + identifier: "UpdateBlueprintResponse", +}) as any as S.Schema; + +export type UpdateDedicatedIpRequestEnvironmentIdsList = Array; +export const UpdateDedicatedIpRequestEnvironmentIdsList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +export interface UpdateDedicatedIpRequest { + /** The ID of the dedicated IP set */ + dedicatedIpId: string; + name?: string; + description?: string; + environmentIds?: UpdateDedicatedIpRequestEnvironmentIdsList; +} +export const UpdateDedicatedIpRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + dedicatedIpId: S.String.pipe(T.Label()), + name: S.optional(S.String), + description: S.optional(S.String), + environmentIds: S.optional(UpdateDedicatedIpRequestEnvironmentIdsList), + }).pipe( + T.Http({ + method: "PATCH", + uri: "/dedicated-ips/{dedicatedIpId}", + code: 200, + }), + ), +).annotate({ + identifier: "UpdateDedicatedIpRequest", +}) as any as S.Schema; + +export interface UpdateDiskRequest { + /** The ID of the disk */ + diskId: string; + name?: string; + sizeGB?: number; + mountPath?: string; +} +export const UpdateDiskRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + diskId: S.String.pipe(T.Label()), + name: S.optional(S.String), + sizeGB: S.optional(S.Number), + mountPath: S.optional(S.String), + }).pipe(T.Http({ method: "PATCH", uri: "/disks/{diskId}", code: 200 })), +).annotate({ + identifier: "UpdateDiskRequest", +}) as any as S.Schema; + +export interface UpdateEnvGroupRequest { + envGroupId: string; + name: string; +} +export const UpdateEnvGroupRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + envGroupId: S.String.pipe(T.Label()), + name: S.String, + }).pipe( + T.Http({ method: "PATCH", uri: "/env-groups/{envGroupId}", code: 200 }), + ), +).annotate({ + identifier: "UpdateEnvGroupRequest", +}) as any as S.Schema; + +/** List of serviceIds linked to the envGroup */ +export type UpdateEnvGroupResponseServiceLinksList = Array; +export const UpdateEnvGroupResponseServiceLinksList = /*@__PURE__*/ S.Array( + EnvGroupLink, +) as any as S.Schema; + +export type UpdateEnvGroupResponseEnvVarsList = Array; +export const UpdateEnvGroupResponseEnvVarsList = /*@__PURE__*/ S.Array( + EnvVar, +) as any as S.Schema; + +export type UpdateEnvGroupResponseSecretFilesList = Array; +export const UpdateEnvGroupResponseSecretFilesList = /*@__PURE__*/ S.Array( + SecretFile, +) as any as S.Schema; + +export interface UpdateEnvGroupResponse { + id: string; + name: string; + ownerId: string; + createdAt: string; + updatedAt: string; + /** List of serviceIds linked to the envGroup */ + serviceLinks: UpdateEnvGroupResponseServiceLinksList; + environmentId?: string; + envVars: UpdateEnvGroupResponseEnvVarsList; + secretFiles: UpdateEnvGroupResponseSecretFilesList; +} +export const UpdateEnvGroupResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + ownerId: S.String, + createdAt: S.String, + updatedAt: S.String, + serviceLinks: UpdateEnvGroupResponseServiceLinksList, + environmentId: S.optional(S.String), + envVars: UpdateEnvGroupResponseEnvVarsList, + secretFiles: UpdateEnvGroupResponseSecretFilesList, + }), +).annotate({ + identifier: "UpdateEnvGroupResponse", +}) as any as S.Schema; + +export interface EnvVarValue { + value: string; +} +export const EnvVarValue = /*@__PURE__*/ S.suspend(() => + S.Struct({ + value: S.String, + }), +).annotate({ identifier: "EnvVarValue" }) as any as S.Schema; + +export interface EnvVarGenerateValue { + generateValue: boolean; +} +export const EnvVarGenerateValue = /*@__PURE__*/ S.suspend(() => + S.Struct({ + generateValue: S.Boolean, + }), +).annotate({ + identifier: "EnvVarGenerateValue", +}) as any as S.Schema; + +export type AddUpdateEnvVarInput = EnvVarValue | EnvVarGenerateValue; +export const AddUpdateEnvVarInput = + /*@__PURE__*/ S.Unknown as any as S.Schema; + +export interface UpdateEnvGroupEnvVarRequest { + /** Filter for resources that belong to an environment group */ + envGroupId: string; + /** The name of the environment variable */ + envVarKey: string; + body: AddUpdateEnvVarInput; +} +export const UpdateEnvGroupEnvVarRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + envGroupId: S.String.pipe(T.Label()), + envVarKey: S.String.pipe(T.Label()), + body: AddUpdateEnvVarInput.pipe(T.HttpBody()), + }).pipe( + T.Http({ + method: "PUT", + uri: "/env-groups/{envGroupId}/env-vars/{envVarKey}", + code: 200, + }), + ), +).annotate({ + identifier: "UpdateEnvGroupEnvVarRequest", +}) as any as S.Schema; + +/** List of serviceIds linked to the envGroup */ +export type UpdateEnvGroupEnvVarResponseServiceLinksList = Array; +export const UpdateEnvGroupEnvVarResponseServiceLinksList = + /*@__PURE__*/ S.Array( + EnvGroupLink, + ) as any as S.Schema; + +export type UpdateEnvGroupEnvVarResponseEnvVarsList = Array; +export const UpdateEnvGroupEnvVarResponseEnvVarsList = /*@__PURE__*/ S.Array( + EnvVar, +) as any as S.Schema; + +export type UpdateEnvGroupEnvVarResponseSecretFilesList = Array; +export const UpdateEnvGroupEnvVarResponseSecretFilesList = + /*@__PURE__*/ S.Array( + SecretFile, + ) as any as S.Schema; + +export interface UpdateEnvGroupEnvVarResponse { + id: string; + name: string; + ownerId: string; + createdAt: string; + updatedAt: string; + /** List of serviceIds linked to the envGroup */ + serviceLinks: UpdateEnvGroupEnvVarResponseServiceLinksList; + environmentId?: string; + envVars: UpdateEnvGroupEnvVarResponseEnvVarsList; + secretFiles: UpdateEnvGroupEnvVarResponseSecretFilesList; +} +export const UpdateEnvGroupEnvVarResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + ownerId: S.String, + createdAt: S.String, + updatedAt: S.String, + serviceLinks: UpdateEnvGroupEnvVarResponseServiceLinksList, + environmentId: S.optional(S.String), + envVars: UpdateEnvGroupEnvVarResponseEnvVarsList, + secretFiles: UpdateEnvGroupEnvVarResponseSecretFilesList, + }), +).annotate({ + identifier: "UpdateEnvGroupEnvVarResponse", +}) as any as S.Schema; + +export interface UpdateEnvGroupSecretFileRequest { + envGroupId: string; + envVarKey: string; + content?: string; +} +export const UpdateEnvGroupSecretFileRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + envGroupId: S.String.pipe(T.Label()), + envVarKey: S.String.pipe(T.Label()), + content: S.optional(S.String), + }).pipe( + T.Http({ + method: "PUT", + uri: "/env-groups/{envGroupId}/secret-files/{envVarKey}", + code: 200, + }), + ), +).annotate({ + identifier: "UpdateEnvGroupSecretFileRequest", +}) as any as S.Schema; + +/** List of serviceIds linked to the envGroup */ +export type UpdateEnvGroupSecretFileResponseServiceLinksList = + Array; +export const UpdateEnvGroupSecretFileResponseServiceLinksList = + /*@__PURE__*/ S.Array( + EnvGroupLink, + ) as any as S.Schema; + +export type UpdateEnvGroupSecretFileResponseEnvVarsList = Array; +export const UpdateEnvGroupSecretFileResponseEnvVarsList = + /*@__PURE__*/ S.Array( + EnvVar, + ) as any as S.Schema; + +export type UpdateEnvGroupSecretFileResponseSecretFilesList = Array; +export const UpdateEnvGroupSecretFileResponseSecretFilesList = + /*@__PURE__*/ S.Array( + SecretFile, + ) as any as S.Schema; + +export interface UpdateEnvGroupSecretFileResponse { + id: string; + name: string; + ownerId: string; + createdAt: string; + updatedAt: string; + /** List of serviceIds linked to the envGroup */ + serviceLinks: UpdateEnvGroupSecretFileResponseServiceLinksList; + environmentId?: string; + envVars: UpdateEnvGroupSecretFileResponseEnvVarsList; + secretFiles: UpdateEnvGroupSecretFileResponseSecretFilesList; +} +export const UpdateEnvGroupSecretFileResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + id: S.String, + name: S.String, + ownerId: S.String, + createdAt: S.String, + updatedAt: S.String, + serviceLinks: UpdateEnvGroupSecretFileResponseServiceLinksList, + environmentId: S.optional(S.String), + envVars: UpdateEnvGroupSecretFileResponseEnvVarsList, + secretFiles: UpdateEnvGroupSecretFileResponseSecretFilesList, + }), +).annotate({ + identifier: "UpdateEnvGroupSecretFileResponse", +}) as any as S.Schema; + +export type UpdateEnvironmentRequestIpAllowListList = + Array; +export const UpdateEnvironmentRequestIpAllowListList = /*@__PURE__*/ S.Array( + CidrBlockAndDescription, +) as any as S.Schema; + +export interface UpdateEnvironmentRequest { + environmentId: string; + name?: string; + networkIsolationEnabled?: boolean; + protectedStatus?: ProtectedStatus | (string & {}); + ipAllowList?: UpdateEnvironmentRequestIpAllowListList; +} +export const UpdateEnvironmentRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + environmentId: S.String.pipe(T.Label()), + name: S.optional(S.String), + networkIsolationEnabled: S.optional(S.Boolean), + protectedStatus: S.optional(ProtectedStatus), + ipAllowList: S.optional(UpdateEnvironmentRequestIpAllowListList), + }).pipe( + T.Http({ + method: "PATCH", + uri: "/environments/{environmentId}", + code: 200, + }), + ), +).annotate({ + identifier: "UpdateEnvironmentRequest", +}) as any as S.Schema; + +export interface UpdateEnvVarRequest { + /** The ID of the service */ + serviceId: string; + /** The name of the environment variable */ + envVarKey: string; + body: AddUpdateEnvVarInput; +} +export const UpdateEnvVarRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + envVarKey: S.String.pipe(T.Label()), + body: AddUpdateEnvVarInput.pipe(T.HttpBody()), + }).pipe( + T.Http({ + method: "PUT", + uri: "/services/{serviceId}/env-vars/{envVarKey}", + code: 200, + }), + ), +).annotate({ + identifier: "UpdateEnvVarRequest", +}) as any as S.Schema; + +export type UpdateEnvVarsForServiceRequestBodyItemCase0 = SchemaItemCase0; +export const UpdateEnvVarsForServiceRequestBodyItemCase0 = SchemaItemCase0; + +export type UpdateEnvVarsForServiceRequestBodyItemCase1 = SchemaItemCase1; +export const UpdateEnvVarsForServiceRequestBodyItemCase1 = SchemaItemCase1; + +export type UpdateEnvVarsForServiceRequestBodyItem = + | SchemaItemCase0 + | SchemaItemCase1; +export const UpdateEnvVarsForServiceRequestBodyItem = + /*@__PURE__*/ S.Unknown as any as S.Schema; + +export type UpdateEnvVarsForServiceRequestBodyList = + Array; +export const UpdateEnvVarsForServiceRequestBodyList = /*@__PURE__*/ S.Array( + UpdateEnvVarsForServiceRequestBodyItem, +) as any as S.Schema; + +export interface UpdateEnvVarsForServiceRequest { + /** The ID of the service */ + serviceId: string; + body: UpdateEnvVarsForServiceRequestBodyList; +} +export const UpdateEnvVarsForServiceRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + body: UpdateEnvVarsForServiceRequestBodyList.pipe(T.HttpBody()), + }).pipe( + T.Http({ method: "PUT", uri: "/services/{serviceId}/env-vars", code: 200 }), + ), +).annotate({ + identifier: "UpdateEnvVarsForServiceRequest", +}) as any as S.Schema; + +export type UpdateEnvVarsForServiceResponseBodyList = Array; +export const UpdateEnvVarsForServiceResponseBodyList = /*@__PURE__*/ S.Array( + EnvVarWithCursor, +) as any as S.Schema; + +export type UpdateEnvVarsForServiceResponse = + UpdateEnvVarsForServiceResponseBodyList; +export const UpdateEnvVarsForServiceResponse = /*@__PURE__*/ S.suspend(() => + UpdateEnvVarsForServiceResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "UpdateEnvVarsForServiceResponse", +}) as any as S.Schema; + +export type UpdateHeadersRequestBodyList = Array; +export const UpdateHeadersRequestBodyList = /*@__PURE__*/ S.Array( + HeaderInput, +) as any as S.Schema; + +export interface UpdateHeadersRequest { + /** The ID of the service */ + serviceId: string; + body: UpdateHeadersRequestBodyList; +} +export const UpdateHeadersRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + body: UpdateHeadersRequestBodyList.pipe(T.HttpBody()), + }).pipe( + T.Http({ method: "PUT", uri: "/services/{serviceId}/headers", code: 200 }), + ), +).annotate({ + identifier: "UpdateHeadersRequest", +}) as any as S.Schema; + +export type UpdateHeadersResponseBodyList = Array
; +export const UpdateHeadersResponseBodyList = /*@__PURE__*/ S.Array( + Header, +) as any as S.Schema; + +export type UpdateHeadersResponse = UpdateHeadersResponseBodyList; +export const UpdateHeadersResponse = /*@__PURE__*/ S.suspend(() => + UpdateHeadersResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "UpdateHeadersResponse", +}) as any as S.Schema; + +export type UpdateKeyValueRequestIpAllowListList = + Array; +export const UpdateKeyValueRequestIpAllowListList = /*@__PURE__*/ S.Array( + CidrBlockAndDescription, +) as any as S.Schema; + +export interface UpdateKeyValueRequest { + redisId: string; + /** The name of the Key Value instance */ + name?: string; + plan?: KeyValuePlan | (string & {}); + maxmemoryPolicy?: MaxmemoryPolicy | (string & {}); + persistenceMode?: PersistenceMode | (string & {}); + ipAllowList?: UpdateKeyValueRequestIpAllowListList; +} +export const UpdateKeyValueRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + redisId: S.String.pipe(T.Label()), + name: S.optional(S.String), + plan: S.optional(KeyValuePlan), + maxmemoryPolicy: S.optional(MaxmemoryPolicy), + persistenceMode: S.optional(PersistenceMode), + ipAllowList: S.optional(UpdateKeyValueRequestIpAllowListList), + }).pipe(T.Http({ method: "PATCH", uri: "/key-value/{redisId}", code: 200 })), +).annotate({ + identifier: "UpdateKeyValueRequest", +}) as any as S.Schema; + +export interface UpdateMaintenanceRequest { + maintenanceRunID: string; + /** The date-time at which the maintenance is scheduled to start. This must be before the pendingMaintenanceBy date-time. */ + scheduledAt?: string; +} +export const UpdateMaintenanceRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + maintenanceRunID: S.String.pipe(T.Label()), + scheduledAt: S.optional(S.String), + }).pipe( + T.Http({ + method: "PATCH", + uri: "/maintenance/{maintenanceRunID}", + code: 200, + }), + ), +).annotate({ + identifier: "UpdateMaintenanceRequest", +}) as any as S.Schema; + +export interface UpdateMaintenanceResponse {} +export const UpdateMaintenanceResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({}), +).annotate({ + identifier: "UpdateMaintenanceResponse", +}) as any as S.Schema; + +/** Whether to send logs or drop them. */ +export type UpdateOwnerLogStreamRequestPreview = "send" | "drop"; +export const UpdateOwnerLogStreamRequestPreview = /*@__PURE__*/ S.String; + +export interface UpdateOwnerLogStreamRequest { + /** The ID of the workspace to update log stream information for */ + ownerId: string; + /** The endpoint to stream logs to. */ + endpoint?: string; + /** The optional token to authenticate the log stream. */ + token?: string; + /** Whether to send logs or drop them. */ + preview: UpdateOwnerLogStreamRequestPreview | (string & {}); +} +export const UpdateOwnerLogStreamRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.String.pipe(T.Label()), + endpoint: S.optional(S.String), + token: S.optional(S.String), + preview: UpdateOwnerLogStreamRequestPreview, + }).pipe( + T.Http({ method: "PUT", uri: "/logs/streams/owner/{ownerId}", code: 200 }), + ), +).annotate({ + identifier: "UpdateOwnerLogStreamRequest", +}) as any as S.Schema; + +export interface UpdateOwnerLogStreamResponse { + /** The ID of the owner. */ + ownerId?: string; + /** The endpoint to stream logs to. */ + endpoint?: string; + preview?: Preview; +} +export const UpdateOwnerLogStreamResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.optional(S.String), + endpoint: S.optional(S.String), + preview: S.optional(Preview), + }), +).annotate({ + identifier: "UpdateOwnerLogStreamResponse", +}) as any as S.Schema; + +export type UpdatePostgresRequestIpAllowListList = + Array; +export const UpdatePostgresRequestIpAllowListList = /*@__PURE__*/ S.Array( + CidrBlockAndDescription, +) as any as S.Schema; + +export interface UpdatePostgresRequest { + postgresId: string; + name?: string; + plan?: Plan2 | (string & {}); + /** The number of gigabytes of disk space to allocate for the database */ + diskSizeGB?: number; + enableDiskAutoscaling?: boolean; + /** What connection pool to use (if any) out of 'pgbouncer' and 'none' */ + connectionPool?: string; + enableHighAvailability?: boolean; + /** The Datadog API key for the Datadog agent to monitor the database. Pass empty string to remove. Restarts Postgres on change. */ + datadogAPIKey?: string; + /** Datadog region to use for monitoring the new database. Defaults to 'US1'. */ + datadogSite?: string; + ipAllowList?: UpdatePostgresRequestIpAllowListList; + parameterOverrides?: PostgresParameterOverrides; + readReplicas?: ReadReplicasInput; +} +export const UpdatePostgresRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + postgresId: S.String.pipe(T.Label()), + name: S.optional(S.String), + plan: S.optional(Plan2), + diskSizeGB: S.optional(S.Number), + enableDiskAutoscaling: S.optional(S.Boolean), + connectionPool: S.optional(S.String), + enableHighAvailability: S.optional(S.Boolean), + datadogAPIKey: S.optional(S.String), + datadogSite: S.optional(S.String), + ipAllowList: S.optional(UpdatePostgresRequestIpAllowListList), + parameterOverrides: S.optional(PostgresParameterOverrides), + readReplicas: S.optional(ReadReplicasInput), + }).pipe( + T.Http({ method: "PATCH", uri: "/postgres/{postgresId}", code: 200 }), + ), +).annotate({ + identifier: "UpdatePostgresRequest", +}) as any as S.Schema; + +export interface UpdateProjectRequest { + projectId: string; + name?: string; +} +export const UpdateProjectRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + projectId: S.String.pipe(T.Label()), + name: S.optional(S.String), + }).pipe(T.Http({ method: "PATCH", uri: "/projects/{projectId}", code: 200 })), +).annotate({ + identifier: "UpdateProjectRequest", +}) as any as S.Schema; + +export interface UpdateRegistryCredentialRequest { + /** The ID of the registry credential */ + registryCredentialId: string; + registry: RegistryCredentialRegistry | (string & {}); + name: string; + username: string; + authToken: string; +} +export const UpdateRegistryCredentialRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + registryCredentialId: S.String.pipe(T.Label()), + registry: RegistryCredentialRegistry, + name: S.String, + username: S.String, + authToken: S.String, + }).pipe( + T.Http({ + method: "PATCH", + uri: "/registrycredentials/{registryCredentialId}", + code: 200, + }), + ), +).annotate({ + identifier: "UpdateRegistryCredentialRequest", +}) as any as S.Schema; + +export interface UpdateResourceLogStreamRequest { + /** The ID of the resource (server, cron job, postgres, or redis) to update log stream override information for */ + resourceId: string; + endpoint?: string; + token?: string; + setting: Items3 | (string & {}); +} +export const UpdateResourceLogStreamRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + resourceId: S.String.pipe(T.Label()), + endpoint: S.optional(S.String), + token: S.optional(S.String), + setting: Items3, + }).pipe( + T.Http({ + method: "PUT", + uri: "/logs/streams/resource/{resourceId}", + code: 200, + }), + ), +).annotate({ + identifier: "UpdateResourceLogStreamRequest", +}) as any as S.Schema; + +export interface UpdateResourceLogStreamResponse { + /** The ID of the resource. */ + resourceId?: string; + /** The endpoint to stream logs to. Must be present if setting is send. Cannot be present if setting is drop. */ + endpoint?: string; + setting?: Items3; +} +export const UpdateResourceLogStreamResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + resourceId: S.optional(S.String), + endpoint: S.optional(S.String), + setting: S.optional(Items3), + }), +).annotate({ + identifier: "UpdateResourceLogStreamResponse", +}) as any as S.Schema; + +export type UpdateSecretFilesForServiceRequestBodyItem = Items; +export const UpdateSecretFilesForServiceRequestBodyItem = Items; + +export type UpdateSecretFilesForServiceRequestBodyList = Array; +export const UpdateSecretFilesForServiceRequestBodyList = /*@__PURE__*/ S.Array( + Items, +) as any as S.Schema; + +export interface UpdateSecretFilesForServiceRequest { + /** The ID of the service */ + serviceId: string; + body: UpdateSecretFilesForServiceRequestBodyList; +} +export const UpdateSecretFilesForServiceRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + body: UpdateSecretFilesForServiceRequestBodyList.pipe(T.HttpBody()), + }).pipe( + T.Http({ + method: "PUT", + uri: "/services/{serviceId}/secret-files", + code: 200, + }), + ), +).annotate({ + identifier: "UpdateSecretFilesForServiceRequest", +}) as any as S.Schema; + +export type UpdateSecretFilesForServiceResponseBodyList = + Array; +export const UpdateSecretFilesForServiceResponseBodyList = + /*@__PURE__*/ S.Array( + SecretFileWithCursor, + ) as any as S.Schema; + +export type UpdateSecretFilesForServiceResponse = + UpdateSecretFilesForServiceResponseBodyList; +export const UpdateSecretFilesForServiceResponse = /*@__PURE__*/ S.suspend(() => + UpdateSecretFilesForServiceResponseBodyList.pipe(T.RawResponseRoot()), +).annotate({ + identifier: "UpdateSecretFilesForServiceResponse", +}) as any as S.Schema; + +export type StaticSiteDetailsPATCHIpAllowListList = + Array; +export const StaticSiteDetailsPATCHIpAllowListList = /*@__PURE__*/ S.Array( + CidrBlockAndDescription, +) as any as S.Schema; + +export interface StaticSiteDetailsPATCH { + buildCommand?: string; + publishPath?: string; + pullRequestPreviewsEnabled?: PullRequestPreviewsEnabled | (string & {}); + previews?: Previews; + renderSubdomainPolicy?: RenderSubdomainPolicy | (string & {}); + ipAllowList?: StaticSiteDetailsPATCHIpAllowListList; +} +export const StaticSiteDetailsPATCH = /*@__PURE__*/ S.suspend(() => + S.Struct({ + buildCommand: S.optional(S.String), + publishPath: S.optional(S.String), + pullRequestPreviewsEnabled: S.optional(PullRequestPreviewsEnabled), + previews: S.optional(Previews), + renderSubdomainPolicy: S.optional(RenderSubdomainPolicy), + ipAllowList: S.optional(StaticSiteDetailsPATCHIpAllowListList), + }), +).annotate({ + identifier: "StaticSiteDetailsPATCH", +}) as any as S.Schema; + +export interface DockerDetailsPATCH { + dockerCommand?: string; + dockerContext?: string; + dockerfilePath?: string; + registryCredentialId?: string; +} +export const DockerDetailsPATCH = /*@__PURE__*/ S.suspend(() => + S.Struct({ + dockerCommand: S.optional(S.String), + dockerContext: S.optional(S.String), + dockerfilePath: S.optional(S.String), + registryCredentialId: S.optional(S.String), + }), +).annotate({ + identifier: "DockerDetailsPATCH", +}) as any as S.Schema; + +export interface NativeEnvironmentDetailsPATCH { + buildCommand?: string; + startCommand?: string; +} +export const NativeEnvironmentDetailsPATCH = /*@__PURE__*/ S.suspend(() => + S.Struct({ + buildCommand: S.optional(S.String), + startCommand: S.optional(S.String), + }), +).annotate({ + identifier: "NativeEnvironmentDetailsPATCH", +}) as any as S.Schema; + +export type EnvSpecificDetailsPATCH = + | DockerDetailsPATCH + | NativeEnvironmentDetailsPATCH; +export const EnvSpecificDetailsPATCH = + /*@__PURE__*/ S.Unknown as any as S.Schema; + +export type WebServiceDetailsPATCHIpAllowListList = + Array; +export const WebServiceDetailsPATCHIpAllowListList = /*@__PURE__*/ S.Array( + CidrBlockAndDescription, +) as any as S.Schema; + +export interface WebServiceDetailsPATCH { + envSpecificDetails?: EnvSpecificDetailsPATCH; + healthCheckPath?: string; + maintenanceMode?: MaintenanceMode; + plan?: Plan | (string & {}); + preDeployCommand?: string; + pullRequestPreviewsEnabled?: PullRequestPreviewsEnabled | (string & {}); + previews?: Previews; + runtime?: ServiceRuntime | (string & {}); + maxShutdownDelaySeconds?: number; + renderSubdomainPolicy?: RenderSubdomainPolicy | (string & {}); + ipAllowList?: WebServiceDetailsPATCHIpAllowListList; + cache?: Cache; +} +export const WebServiceDetailsPATCH = /*@__PURE__*/ S.suspend(() => + S.Struct({ + envSpecificDetails: S.optional(EnvSpecificDetailsPATCH), + healthCheckPath: S.optional(S.String), + maintenanceMode: S.optional(MaintenanceMode), + plan: S.optional(Plan), + preDeployCommand: S.optional(S.String), + pullRequestPreviewsEnabled: S.optional(PullRequestPreviewsEnabled), + previews: S.optional(Previews), + runtime: S.optional(ServiceRuntime), + maxShutdownDelaySeconds: S.optional(S.Number), + renderSubdomainPolicy: S.optional(RenderSubdomainPolicy), + ipAllowList: S.optional(WebServiceDetailsPATCHIpAllowListList), + cache: S.optional(Cache), + }), +).annotate({ + identifier: "WebServiceDetailsPATCH", +}) as any as S.Schema; + +export interface PrivateServiceDetailsPATCH { + envSpecificDetails?: EnvSpecificDetailsPATCH; + plan?: PaidPlan | (string & {}); + preDeployCommand?: string; + pullRequestPreviewsEnabled?: PullRequestPreviewsEnabled | (string & {}); + previews?: Previews; + runtime?: ServiceRuntime | (string & {}); + maxShutdownDelaySeconds?: number; +} +export const PrivateServiceDetailsPATCH = /*@__PURE__*/ S.suspend(() => + S.Struct({ + envSpecificDetails: S.optional(EnvSpecificDetailsPATCH), + plan: S.optional(PaidPlan), + preDeployCommand: S.optional(S.String), + pullRequestPreviewsEnabled: S.optional(PullRequestPreviewsEnabled), + previews: S.optional(Previews), + runtime: S.optional(ServiceRuntime), + maxShutdownDelaySeconds: S.optional(S.Number), + }), +).annotate({ + identifier: "PrivateServiceDetailsPATCH", +}) as any as S.Schema; + +export type BackgroundWorkerDetailsPATCH = PrivateServiceDetailsPATCH; +export const BackgroundWorkerDetailsPATCH = PrivateServiceDetailsPATCH; + +export interface CronJobDetailsPATCH { + envSpecificDetails?: EnvSpecificDetailsPATCH; + plan?: PaidPlan | (string & {}); + schedule?: string; + runtime?: ServiceRuntime | (string & {}); +} +export const CronJobDetailsPATCH = /*@__PURE__*/ S.suspend(() => + S.Struct({ + envSpecificDetails: S.optional(EnvSpecificDetailsPATCH), + plan: S.optional(PaidPlan), + schedule: S.optional(S.String), + runtime: S.optional(ServiceRuntime), + }), +).annotate({ + identifier: "CronJobDetailsPATCH", +}) as any as S.Schema; + +export type UpdateServiceRequestServiceDetails = + | StaticSiteDetailsPATCH + | WebServiceDetailsPATCH + | PrivateServiceDetailsPATCH + | PrivateServiceDetailsPATCH + | CronJobDetailsPATCH; +export const UpdateServiceRequestServiceDetails = + /*@__PURE__*/ S.Unknown as any as S.Schema; + +export interface UpdateServiceRequest { + /** The ID of the service */ + serviceId: string; + autoDeploy?: AutoDeploy | (string & {}); + repo?: string; + branch?: string; + image?: Image; + name?: string; + buildFilter?: BuildFilter; + rootDir?: string; + serviceDetails?: UpdateServiceRequestServiceDetails; +} +export const UpdateServiceRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + serviceId: S.String.pipe(T.Label()), + autoDeploy: S.optional(AutoDeploy), + repo: S.optional(S.String), + branch: S.optional(S.String), + image: S.optional(Image), + name: S.optional(S.String), + buildFilter: S.optional(BuildFilter), + rootDir: S.optional(S.String), + serviceDetails: S.optional(UpdateServiceRequestServiceDetails), + }).pipe(T.Http({ method: "PATCH", uri: "/services/{serviceId}", code: 200 })), +).annotate({ + identifier: "UpdateServiceRequest", +}) as any as S.Schema; + +export interface UpdateWebhookRequest { + /** Unique identifier for the webhook */ + webhookId: string; + name?: string; + url?: string; + enabled?: boolean; + eventFilter?: EventFilter; +} +export const UpdateWebhookRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + webhookId: S.String.pipe(T.Label()), + name: S.optional(S.String), + url: S.optional(S.String), + enabled: S.optional(S.Boolean), + eventFilter: S.optional(EventFilter), + }).pipe(T.Http({ method: "PATCH", uri: "/webhooks/{webhookId}", code: 200 })), +).annotate({ + identifier: "UpdateWebhookRequest", +}) as any as S.Schema; + +/** The runtime environment for the workflow (e.g., node, python, etc.). */ +export type UpdateWorkflowRequestBuildConfigRuntime = + | "elixir" + | "go" + | "node" + | "python" + | "ruby"; +export const UpdateWorkflowRequestBuildConfigRuntime = /*@__PURE__*/ S.String; + +/** A partial update to a workflow's build config. Every field is optional; omitted fields are left unchanged. */ +export interface UpdateWorkflowRequestBuildConfig { + /** The branch to use for the build, if applicable. */ + branch?: string; + /** The command to run to build the workflow. */ + buildCommand?: string; + /** The repository URL to use for the build. Cannot be blank. */ + repo?: string; + /** The root directory of the repository to use for the build, if applicable. */ + rootDir?: string; + /** The runtime environment for the workflow (e.g., node, python, etc.). */ + runtime?: UpdateWorkflowRequestBuildConfigRuntime | (string & {}); +} +export const UpdateWorkflowRequestBuildConfig = /*@__PURE__*/ S.suspend(() => + S.Struct({ + branch: S.optional(S.String), + buildCommand: S.optional(S.String), + repo: S.optional(S.String), + rootDir: S.optional(S.String), + runtime: S.optional(UpdateWorkflowRequestBuildConfigRuntime), + }), +).annotate({ + identifier: "UpdateWorkflowRequestBuildConfig", +}) as any as S.Schema; + +export interface UpdateWorkflowRequest { + /** The ID of the workflow */ + workflowId: string; + name?: string; + /** A partial update to a workflow's build config. Every field is optional; omitted fields are left unchanged. */ + buildConfig?: UpdateWorkflowRequestBuildConfig; + /** The command to run the workflow. Cannot be blank. */ + runCommand?: string; + autoDeployTrigger?: AutoDeployTrigger | (string & {}); +} +export const UpdateWorkflowRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + workflowId: S.String.pipe(T.Label()), + name: S.optional(S.String), + buildConfig: S.optional(UpdateWorkflowRequestBuildConfig), + runCommand: S.optional(S.String), + autoDeployTrigger: S.optional(AutoDeployTrigger), + }).pipe( + T.Http({ method: "PATCH", uri: "/workflows/{workflowId}", code: 200 }), + ), +).annotate({ + identifier: "UpdateWorkflowRequest", +}) as any as S.Schema; + +export interface UpdateWorkspaceMemberRequest { + /** The ID of the workspace to return resources for */ + ownerId: string; + /** The ID of the user (Render object ID with a `usr-` prefix). */ + userId: string; + role: TeamMemberRole | (string & {}); +} +export const UpdateWorkspaceMemberRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.String.pipe(T.Label()), + userId: S.String.pipe(T.Label()), + role: TeamMemberRole, + }).pipe( + T.Http({ + method: "PATCH", + uri: "/owners/{ownerId}/members/{userId}", + code: 200, + }), + ), +).annotate({ + identifier: "UpdateWorkspaceMemberRequest", +}) as any as S.Schema; + +/** Provider to send metrics to */ +export type UpsertOwnerMetricsStreamRequestProvider = + | "BETTER_STACK" + | "GRAFANA" + | "DATADOG" + | "NEW_RELIC" + | "HONEYCOMB" + | "SIGNOZ" + | "GROUNDCOVER" + | "LOGFIRE" + | "CUSTOM"; +export const UpsertOwnerMetricsStreamRequestProvider = /*@__PURE__*/ S.String; + +export interface UpsertOwnerMetricsStreamRequest { + /** The ID of the workspace to return metrics stream information for */ + ownerId: string; + /** Provider to send metrics to */ + provider?: UpsertOwnerMetricsStreamRequestProvider | (string & {}); + /** The endpoint URL to stream metrics to */ + url?: string; + /** Authentication token for the metrics stream */ + token?: string; +} +export const UpsertOwnerMetricsStreamRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.String.pipe(T.Label()), + provider: S.optional(UpsertOwnerMetricsStreamRequestProvider), + url: S.optional(S.String), + token: S.optional(S.String), + }).pipe( + T.Http({ method: "PUT", uri: "/metrics-stream/{ownerId}", code: 200 }), + ), +).annotate({ + identifier: "UpsertOwnerMetricsStreamRequest", +}) as any as S.Schema; + +export interface UpsertOwnerMetricsStreamResponse { + /** The ID of the owner */ + ownerId: string; + provider: Provider; + /** The endpoint URL to stream metrics to */ + url: string; +} +export const UpsertOwnerMetricsStreamResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.String, + provider: Provider, + url: S.String, + }), +).annotate({ + identifier: "UpsertOwnerMetricsStreamResponse", +}) as any as S.Schema; + +export interface ValidateBlueprintRequest { + /** The ID of the workspace to validate against. Obtain your workspace ID from its Settings page in the Render Dashboard. */ + ownerId: string; + /** The render.yaml file to validate, as a binary file. */ + file: string; +} +export const ValidateBlueprintRequest = /*@__PURE__*/ S.suspend(() => + S.Struct({ + ownerId: S.String, + file: S.String, + }).pipe( + T.Http({ + method: "POST", + uri: "/blueprints/validate", + code: 200, + contentType: "multipart", + }), + ), +).annotate({ + identifier: "ValidateBlueprintRequest", +}) as any as S.Schema; + +export interface ValidateBlueprintResponseErrorsItem { + /** The path to the field with the error (e.g., `services[0].plan`) */ + path?: string; + /** The error message */ + error: string; + /** The line number in the YAML file (1-indexed) */ + line?: number; + /** The column number in the YAML file (1-indexed) */ + column?: number; +} +export const ValidateBlueprintResponseErrorsItem = /*@__PURE__*/ S.suspend(() => + S.Struct({ + path: S.optional(S.String), + error: S.String, + line: S.optional(S.Number), + column: S.optional(S.Number), + }), +).annotate({ + identifier: "ValidateBlueprintResponseErrorsItem", +}) as any as S.Schema; + +/** A list of validation errors. Only present if `valid` is `false`. */ +export type ValidateBlueprintResponseErrorsList = + Array; +export const ValidateBlueprintResponseErrorsList = /*@__PURE__*/ S.Array( + ValidateBlueprintResponseErrorsItem, +) as any as S.Schema; + +/** The names of services that would be created as part of the Blueprint. */ +export type ValidateBlueprintResponsePlanServicesList = Array; +export const ValidateBlueprintResponsePlanServicesList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +/** The names of Render Postgres databases that would be created as part of the Blueprint. */ +export type ValidateBlueprintResponsePlanDatabasesList = Array; +export const ValidateBlueprintResponsePlanDatabasesList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +/** The names of Render Key Value instances that would be created as part of the Blueprint. */ +export type ValidateBlueprintResponsePlanKeyValueList = Array; +export const ValidateBlueprintResponsePlanKeyValueList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +/** The names of environment groups that would be created as part of the Blueprint. */ +export type ValidateBlueprintResponsePlanEnvGroupsList = Array; +export const ValidateBlueprintResponsePlanEnvGroupsList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +/** The names of workflows that would be created as part of the Blueprint. */ +export type ValidateBlueprintResponsePlanWorkflowsList = Array; +export const ValidateBlueprintResponsePlanWorkflowsList = /*@__PURE__*/ S.Array( + S.String, +) as any as S.Schema; + +/** A summary of the resources that would be created as part of the Blueprint. Only present if `valid` is `true`. */ +export interface ValidateBlueprintResponsePlan { + /** The names of services that would be created as part of the Blueprint. */ + services?: ValidateBlueprintResponsePlanServicesList; + /** The names of Render Postgres databases that would be created as part of the Blueprint. */ + databases?: ValidateBlueprintResponsePlanDatabasesList; + /** The names of Render Key Value instances that would be created as part of the Blueprint. */ + keyValue?: ValidateBlueprintResponsePlanKeyValueList; + /** The names of environment groups that would be created as part of the Blueprint. */ + envGroups?: ValidateBlueprintResponsePlanEnvGroupsList; + /** The names of workflows that would be created as part of the Blueprint. */ + workflows?: ValidateBlueprintResponsePlanWorkflowsList; + /** The total number of actions that would be performed by the Blueprint. In addition to created resources, this includes modifications to individual configuration fields. */ + totalActions?: number; +} +export const ValidateBlueprintResponsePlan = /*@__PURE__*/ S.suspend(() => + S.Struct({ + services: S.optional(ValidateBlueprintResponsePlanServicesList), + databases: S.optional(ValidateBlueprintResponsePlanDatabasesList), + keyValue: S.optional(ValidateBlueprintResponsePlanKeyValueList), + envGroups: S.optional(ValidateBlueprintResponsePlanEnvGroupsList), + workflows: S.optional(ValidateBlueprintResponsePlanWorkflowsList), + totalActions: S.optional(S.Number), + }), +).annotate({ + identifier: "ValidateBlueprintResponsePlan", +}) as any as S.Schema; + +export interface ValidateBlueprintResponse { + /** If `true`, the Blueprint validated successfully. If `false`, at least one validation error occurred. */ + valid: boolean; + /** A list of validation errors. Only present if `valid` is `false`. */ + errors?: ValidateBlueprintResponseErrorsList; + /** A summary of the resources that would be created as part of the Blueprint. Only present if `valid` is `true`. */ + plan?: ValidateBlueprintResponsePlan; +} +export const ValidateBlueprintResponse = /*@__PURE__*/ S.suspend(() => + S.Struct({ + valid: S.Boolean, + errors: S.optional(ValidateBlueprintResponseErrorsList), + plan: S.optional(ValidateBlueprintResponsePlan), + }), +).annotate({ + identifier: "ValidateBlueprintResponse", +}) as any as S.Schema; + +export type AddDiskError = BadRequest | Forbidden | NotFound | RenderOpError; +/** Add disk Attach a persistent disk to a web service, private service, or background worker. The service must be redeployed for the disk to be attached. */ +export const addDisk: API.OperationMethod< + AddDiskRequest, + AddDiskResponse, + AddDiskError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: AddDiskRequest, + output: AddDiskResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type AddHeadersError = Forbidden | NotFound | RenderOpError; +/** Add header rule Add a response header rule to the service with the provided ID. */ +export const addHeaders: API.OperationMethod< + AddHeadersRequest, + AddHeadersResponse, + AddHeadersError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: AddHeadersRequest, + output: AddHeadersResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type AddOrUpdateSecretFileError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Add or update secret file Add or update a particular secret file for a particular service. This only applies to secret files set directly on the service, not to secret files in a linked environment group. */ +export const addOrUpdateSecretFile: API.OperationMethod< + AddOrUpdateSecretFileRequest, + SecretFile, + AddOrUpdateSecretFileError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: AddOrUpdateSecretFileRequest, + output: SecretFile, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type AddResourcesToEnvironmentError = + | BadRequest + | NotFound + | RenderOpError; +/** Add resources to environment Add resources to the environment with the provided ID. */ +export const addResourcesToEnvironment: API.OperationMethod< + AddResourcesToEnvironmentRequest, + Environment, + AddResourcesToEnvironmentError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: AddResourcesToEnvironmentRequest, + output: Environment, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type AddRouteError = BadRequest | Forbidden | NotFound | RenderOpError; +/** Add redirect/rewrite rules Add redirect/rewrite rules to the service with the provided ID. */ +export const addRoute: API.OperationMethod< + AddRouteRequest, + Route, + AddRouteError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: AddRouteRequest, + output: Route, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type AutoscaleServiceError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Update autoscaling config Update the [autoscaling](https://render.com/docs/scaling#autoscaling) config for the service with the provided ID. */ +export const autoscaleService: API.OperationMethod< + AutoscaleServiceRequest, + Schema5, + AutoscaleServiceError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: AutoscaleServiceRequest, + output: Schema5, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type CancelCronJobRunError = RenderOpError; +/** Cancel running cron job Cancel a currently running cron job. */ +export const cancelCronJobRun: API.OperationMethod< + CancelCronJobRunRequest, + CancelCronJobRunResponse, + CancelCronJobRunError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: CancelCronJobRunRequest, + output: CancelCronJobRunResponse, + errors: [UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type CancelDeployError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Cancel deploy Cancel an in-progress deploy for a service. Not supported for cron jobs. */ +export const cancelDeploy: API.OperationMethod< + CancelDeployRequest, + Deploy, + CancelDeployError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: CancelDeployRequest, + output: Deploy, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type CancelJobError = BadRequest | NotFound | RenderOpError; +/** Cancel running job Cancel a particular one-off job for a particular service. */ +export const cancelJob: API.OperationMethod< + CancelJobRequest, + Schema7, + CancelJobError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: CancelJobRequest, + output: Schema7, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type CancelTaskRunError = Forbidden | NotFound | RenderOpError; +/** Cancel task run Cancel a running task run with the provided ID. */ +export const cancelTaskRun: API.OperationMethod< + CancelTaskRunRequest, + CancelTaskRunResponse, + CancelTaskRunError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: CancelTaskRunRequest, + output: CancelTaskRunResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type CreateCustomDomainError = + | BadRequest + | Forbidden + | NotFound + | Conflict + | RenderOpError; +/** Add custom domain Add a custom domain to the service with the provided ID. */ +export const createCustomDomain: API.OperationMethod< + CreateCustomDomainRequest, + CreateCustomDomainResponse, + CreateCustomDomainError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: CreateCustomDomainRequest, + output: CreateCustomDomainResponse, + errors: [BadRequest, Forbidden, NotFound, Conflict, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type CreateDedicatedIpError = + | BadRequest + | Forbidden + | Conflict + | RenderOpError; +/** Create dedicated IP set Create a dedicated IP set. Provisioning an IP set is asynchronous. The response returns immediately with `status: CREATING` and `ips: []`. When provisioning completes, status changes to `RUNNING` and `ips` contains your assigned addresses. If `environmentIds` is omitted or empty, this IP set applies to all services in the workspace in the selected region. Otherwise, it applies only to services in the listed environments in that region. */ +export const createDedicatedIp: API.OperationMethod< + CreateDedicatedIpRequest, + DedicatedIP, + CreateDedicatedIpError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: CreateDedicatedIpRequest, + output: DedicatedIP, + errors: [BadRequest, Forbidden, Conflict, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type CreateDeployError = + | BadRequest + | NotFound + | Conflict + | RenderOpError; +/** Trigger deploy Trigger a deploy for the service with the provided ID. */ +export const createDeploy: API.OperationMethod< + CreateDeployRequest, + Deploy, + CreateDeployError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: CreateDeployRequest, + output: Deploy, + errors: [BadRequest, NotFound, Conflict, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type CreateEnvGroupError = BadRequest | NotFound | RenderOpError; +/** Create environment group Create a new environment group. */ +export const createEnvGroup: API.OperationMethod< + CreateEnvGroupRequest, + CreateEnvGroupResponse, + CreateEnvGroupError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: CreateEnvGroupRequest, + output: CreateEnvGroupResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type CreateEnvironmentError = BadRequest | NotFound | RenderOpError; +/** Create environment Create a new environment belonging to the project with the provided ID. */ +export const createEnvironment: API.OperationMethod< + CreateEnvironmentRequest, + Environment, + CreateEnvironmentError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: CreateEnvironmentRequest, + output: Environment, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type CreateKeyValueError = BadRequest | NotFound | RenderOpError; +/** Create Key Value instance Create a new Key Value instance. */ +export const createKeyValue: API.OperationMethod< + CreateKeyValueRequest, + KeyValueDetail, + CreateKeyValueError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: CreateKeyValueRequest, + output: KeyValueDetail, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type CreatePostgresError = BadRequest | NotFound | RenderOpError; +/** Create Postgres instance Create a new Postgres instance. */ +export const createPostgres: API.OperationMethod< + CreatePostgresRequest, + PostgresDetail, + CreatePostgresError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: CreatePostgresRequest, + output: PostgresDetail, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type CreatePostgresExportError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Create Postgres export Create an [export](https://render.com/docs/postgresql-backups#logical-backups) of a Postgres instance by ID. */ +export const createPostgresExport: API.OperationMethod< + CreatePostgresExportRequest, + CreatePostgresExportResponse, + CreatePostgresExportError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: CreatePostgresExportRequest, + output: CreatePostgresExportResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type CreatePostgresUserError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Create PostgreSQL User Create a new PostgreSQL user for the Render Postgres instance with the provided ID. This becomes the database's new "default" user. */ +export const createPostgresUser: API.OperationMethod< + CreatePostgresUserRequest, + CreatePostgresUserResponse, + CreatePostgresUserError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: CreatePostgresUserRequest, + output: CreatePostgresUserResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type CreateProjectError = BadRequest | NotFound | RenderOpError; +/** Create project Create a new project. */ +export const createProject: API.OperationMethod< + CreateProjectRequest, + Project, + CreateProjectError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: CreateProjectRequest, + output: Project, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type CreateRegistryCredentialError = + | BadRequest + | Conflict + | RenderOpError; +/** Create registry credential Create a new registry credential. */ +export const createRegistryCredential: API.OperationMethod< + CreateRegistryCredentialRequest, + RegistryCredential, + CreateRegistryCredentialError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: CreateRegistryCredentialRequest, + output: RegistryCredential, + errors: [BadRequest, Conflict, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type CreateServiceError = + | BadRequest + | NotFound + | Conflict + | RenderOpError; +/** Create service Creates a new Render service in the specified workspace with the specified configuration. */ +export const createService: API.OperationMethod< + CreateServiceRequest, + ServiceAndDeploy, + CreateServiceError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: CreateServiceRequest, + output: ServiceAndDeploy, + errors: [BadRequest, NotFound, Conflict, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type CreateTaskError = BadRequest | Forbidden | NotFound | RenderOpError; +/** Run task Kicks off a run of the workflow task with the provided ID, passing the provided input data. */ +export const createTask: API.OperationMethod< + CreateTaskRequest, + CreateTaskResponse, + CreateTaskError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: CreateTaskRequest, + output: CreateTaskResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type CreateWebhookError = BadRequest | NotFound | RenderOpError; +/** Create a webhook Create a new webhook. */ +export const createWebhook: API.OperationMethod< + CreateWebhookRequest, + CreateWebhookResponse, + CreateWebhookError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: CreateWebhookRequest, + output: CreateWebhookResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type CreateWorkflowError = Forbidden | NotFound | RenderOpError; +/** Create a workflow Create a new workflow service with the specified configuration. */ +export const createWorkflow: API.OperationMethod< + CreateWorkflowRequest, + CreateWorkflowResponse, + CreateWorkflowError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: CreateWorkflowRequest, + output: CreateWorkflowResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type CreateWorkflowVersionError = Forbidden | NotFound | RenderOpError; +/** Deploy a workflow version Creates and deploys a new version of a workflow. */ +export const createWorkflowVersion: API.OperationMethod< + CreateWorkflowVersionRequest, + CreateWorkflowVersionResponse, + CreateWorkflowVersionError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: CreateWorkflowVersionRequest, + output: CreateWorkflowVersionResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeleteAutoscalingConfigError = Forbidden | NotFound | RenderOpError; +/** Delete autoscaling config Delete the autoscaling config for a service given the service id. */ +export const deleteAutoscalingConfig: API.OperationMethod< + DeleteAutoscalingConfigRequest, + DeleteAutoscalingConfigResponse, + DeleteAutoscalingConfigError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeleteAutoscalingConfigRequest, + output: DeleteAutoscalingConfigResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeleteCustomDomainError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Delete custom domain Delete a custom domain for a service given the service id and custom domain id or name. */ +export const deleteCustomDomain: API.OperationMethod< + DeleteCustomDomainRequest, + DeleteCustomDomainResponse, + DeleteCustomDomainError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeleteCustomDomainRequest, + output: DeleteCustomDomainResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeleteDedicatedIpError = Forbidden | NotFound | RenderOpError; +/** Delete dedicated IP set Delete the dedicated IP set with the provided ID. */ +export const deleteDedicatedIp: API.OperationMethod< + DeleteDedicatedIpRequest, + DeleteDedicatedIpResponse, + DeleteDedicatedIpError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeleteDedicatedIpRequest, + output: DeleteDedicatedIpResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeleteDiskError = Forbidden | NotFound | RenderOpError; +/** Delete disk Delete a persistent disk attached to a service. **All data on the disk will be lost.** The disk's associated service will immediately lose access to it. */ +export const deleteDisk: API.OperationMethod< + DeleteDiskRequest, + DeleteDiskResponse, + DeleteDiskError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeleteDiskRequest, + output: DeleteDiskResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeleteEnvGroupError = BadRequest | NotFound | RenderOpError; +/** Delete environment group Delete the environment group with the provided ID, including all environment variables and secret files it contains. */ +export const deleteEnvGroup: API.OperationMethod< + DeleteEnvGroupRequest, + DeleteEnvGroupResponse, + DeleteEnvGroupError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeleteEnvGroupRequest, + output: DeleteEnvGroupResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeleteEnvGroupEnvVarError = BadRequest | NotFound | RenderOpError; +/** Remove environment variable Remove a particular environment variable from a particular environment group. */ +export const deleteEnvGroupEnvVar: API.OperationMethod< + DeleteEnvGroupEnvVarRequest, + DeleteEnvGroupEnvVarResponse, + DeleteEnvGroupEnvVarError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeleteEnvGroupEnvVarRequest, + output: DeleteEnvGroupEnvVarResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeleteEnvGroupSecretFileError = + | BadRequest + | NotFound + | RenderOpError; +/** Remove secret file Remove a particular secret file from a particular environment group. */ +export const deleteEnvGroupSecretFile: API.OperationMethod< + DeleteEnvGroupSecretFileRequest, + DeleteEnvGroupSecretFileResponse, + DeleteEnvGroupSecretFileError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeleteEnvGroupSecretFileRequest, + output: DeleteEnvGroupSecretFileResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeleteEnvironmentError = BadRequest | NotFound | RenderOpError; +/** Delete environment Delete the environment with the provided ID. Requires the environment to be empty (i.e., it must contain no services or other resources). Otherwise, deletion fails with a `409` response. To delete a non-empty environment, do one of the following: - First move or delete all contained services and other resources. - Delete the environment in the [Render Dashboard](https://dashboard.render.com). */ +export const deleteEnvironment: API.OperationMethod< + DeleteEnvironmentRequest, + DeleteEnvironmentResponse, + DeleteEnvironmentError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeleteEnvironmentRequest, + output: DeleteEnvironmentResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeleteEnvVarError = Forbidden | NotFound | RenderOpError; +/** Delete environment variable Delete a particular environment variable from a particular service. This only applies to environment variables set directly on the service, not to environment variables in a linked environment group. */ +export const deleteEnvVar: API.OperationMethod< + DeleteEnvVarRequest, + DeleteEnvVarResponse, + DeleteEnvVarError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeleteEnvVarRequest, + output: DeleteEnvVarResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeleteHeaderError = Forbidden | NotFound | RenderOpError; +/** Delete header rule Delete a particular response header rule for a particular service. */ +export const deleteHeader: API.OperationMethod< + DeleteHeaderRequest, + DeleteHeaderResponse, + DeleteHeaderError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeleteHeaderRequest, + output: DeleteHeaderResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeleteKeyValueError = BadRequest | NotFound | RenderOpError; +/** Delete Key Value instance Delete a Key Value instance by ID. */ +export const deleteKeyValue: API.OperationMethod< + DeleteKeyValueRequest, + DeleteKeyValueResponse, + DeleteKeyValueError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeleteKeyValueRequest, + output: DeleteKeyValueResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeleteOwnerLogStreamError = BadRequest | NotFound | RenderOpError; +/** Delete log stream Removes the log stream for the specified workspace. */ +export const deleteOwnerLogStream: API.OperationMethod< + DeleteOwnerLogStreamRequest, + DeleteOwnerLogStreamResponse, + DeleteOwnerLogStreamError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeleteOwnerLogStreamRequest, + output: DeleteOwnerLogStreamResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeleteOwnerMetricsStreamError = + | BadRequest + | NotFound + | RenderOpError; +/** Delete metrics stream Deletes the metrics stream for the specified workspace. */ +export const deleteOwnerMetricsStream: API.OperationMethod< + DeleteOwnerMetricsStreamRequest, + DeleteOwnerMetricsStreamResponse, + DeleteOwnerMetricsStreamError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeleteOwnerMetricsStreamRequest, + output: DeleteOwnerMetricsStreamResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeletePostgresError = BadRequest | NotFound | RenderOpError; +/** Delete Postgres instance Delete a Postgres instance by ID. This operation is irreversible, and all data will be lost. */ +export const deletePostgres: API.OperationMethod< + DeletePostgresRequest, + DeletePostgresResponse, + DeletePostgresError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeletePostgresRequest, + output: DeletePostgresResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeletePostgresUserError = BadRequest | NotFound | RenderOpError; +/** Delete PostgreSQL User Delete a PostgreSQL user from the Render Postgres instance with the provided ID. */ +export const deletePostgresUser: API.OperationMethod< + DeletePostgresUserRequest, + DeletePostgresUserResponse, + DeletePostgresUserError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeletePostgresUserRequest, + output: DeletePostgresUserResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeleteProjectError = BadRequest | NotFound | RenderOpError; +/** Delete project Delete the project with the provided ID. Requires _all_ of the project's environments to be empty (i.e., they must contain no services or other resources). Otherwise, deletion fails with a `409` response. To delete a non-empty project, do one of the following: - First move or delete all contained services and other resources. - Delete the project in the [Render Dashboard](https://dashboard.render.com). */ +export const deleteProject: API.OperationMethod< + DeleteProjectRequest, + DeleteProjectResponse, + DeleteProjectError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeleteProjectRequest, + output: DeleteProjectResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeleteRegistryCredentialError = + | Forbidden + | NotFound + | RenderOpError; +/** Delete registry credential Delete the registry credential with the provided ID. */ +export const deleteRegistryCredential: API.OperationMethod< + DeleteRegistryCredentialRequest, + DeleteRegistryCredentialResponse, + DeleteRegistryCredentialError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeleteRegistryCredentialRequest, + output: DeleteRegistryCredentialResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeleteResourceLogStreamError = + | BadRequest + | NotFound + | RenderOpError; +/** Delete log stream override Removes the log stream override for the specified resource. After deletion, the resource will use the workspace's default log stream setting. */ +export const deleteResourceLogStream: API.OperationMethod< + DeleteResourceLogStreamRequest, + DeleteResourceLogStreamResponse, + DeleteResourceLogStreamError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeleteResourceLogStreamRequest, + output: DeleteResourceLogStreamResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeleteRouteError = Forbidden | NotFound | RenderOpError; +/** Delete redirect/rewrite rule Delete a particular redirect/rewrite rule for a particular service. */ +export const deleteRoute: API.OperationMethod< + DeleteRouteRequest, + DeleteRouteResponse, + DeleteRouteError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeleteRouteRequest, + output: DeleteRouteResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeleteSecretFileError = Forbidden | NotFound | RenderOpError; +/** Delete secret file Delete a particular secret file from a particular service. This only applies to secret files set directly on the service, not to secret files in a linked environment group. */ +export const deleteSecretFile: API.OperationMethod< + DeleteSecretFileRequest, + DeleteSecretFileResponse, + DeleteSecretFileError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeleteSecretFileRequest, + output: DeleteSecretFileResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeleteServiceError = Forbidden | NotFound | RenderOpError; +/** Delete service Delete the service with the provided ID. */ +export const deleteService: API.OperationMethod< + DeleteServiceRequest, + DeleteServiceResponse, + DeleteServiceError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeleteServiceRequest, + output: DeleteServiceResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeleteWebhookError = NotFound | RenderOpError; +/** Delete a webhook Delete the webhook with the provided ID. */ +export const deleteWebhook: API.OperationMethod< + DeleteWebhookRequest, + DeleteWebhookResponse, + DeleteWebhookError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeleteWebhookRequest, + output: DeleteWebhookResponse, + errors: [NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DeleteWorkflowError = Forbidden | NotFound | RenderOpError; +/** Delete workflow Delete the workflow service with the provided ID. */ +export const deleteWorkflow: API.OperationMethod< + DeleteWorkflowRequest, + DeleteWorkflowResponse, + DeleteWorkflowError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DeleteWorkflowRequest, + output: DeleteWorkflowResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type DisconnectBlueprintError = Forbidden | NotFound | RenderOpError; +/** Disconnect Blueprint Disconnect the Blueprint with the provided ID. Disconnecting a Blueprint stops automatic resource syncing via the associated `render.yaml` file. It does not _delete_ any services or other resources that were managed by the blueprint. */ +export const disconnectBlueprint: API.OperationMethod< + DisconnectBlueprintRequest, + DisconnectBlueprintResponse, + DisconnectBlueprintError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: DisconnectBlueprintRequest, + output: DisconnectBlueprintResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type FailoverPostgresError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Failover Postgres instance Failover a [highly available Postgres](https://render.com/docs/postgresql-high-availability) instance. */ +export const failoverPostgres: API.OperationMethod< + FailoverPostgresRequest, + FailoverPostgresResponse, + FailoverPostgresError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: FailoverPostgresRequest, + output: FailoverPostgresResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetActiveConnectionsError = BadRequest | RenderOpError; +/** Get active connection count Get the number of active connections for one or more Postgres databases or Redis instances. */ +export const getActiveConnections: API.OperationMethod< + GetActiveConnectionsRequest, + GetActiveConnectionsResponse, + GetActiveConnectionsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetActiveConnectionsRequest, + output: GetActiveConnectionsResponse, + errors: [BadRequest, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetBandwidthError = BadRequest | RenderOpError; +/** Get bandwidth usage Get bandwidth usage for one or more resources. */ +export const getBandwidth: API.OperationMethod< + GetBandwidthRequest, + GetBandwidthResponse, + GetBandwidthError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetBandwidthRequest, + output: GetBandwidthResponse, + errors: [BadRequest, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetBandwidthSourcesError = BadRequest | RenderOpError; +/** Get bandwidth usage breakdown by traffic source Get bandwidth usage for one or more resources broken down by traffic source (HTTP, WebSocket, NAT, PrivateLink). Returns hourly data points with traffic source breakdown. Traffic source data is available from March 9, 2025 onwards. Queries for earlier dates will return a 400 Bad Request error. */ +export const getBandwidthSources: API.OperationMethod< + GetBandwidthSourcesRequest, + GetBandwidthSourcesResponse, + GetBandwidthSourcesError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetBandwidthSourcesRequest, + output: GetBandwidthSourcesResponse, + errors: [BadRequest, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetCpuError = BadRequest | RenderOpError; +/** Get CPU usage Get CPU usage for one or more resources. */ +export const getCpu: API.OperationMethod< + GetCpuRequest, + GetCpuResponse, + GetCpuError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetCpuRequest, + output: GetCpuResponse, + errors: [BadRequest, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetCpuLimitError = BadRequest | RenderOpError; +/** Get CPU limit Get the CPU limit for one or more resources. */ +export const getCpuLimit: API.OperationMethod< + GetCpuLimitRequest, + GetCpuLimitResponse, + GetCpuLimitError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetCpuLimitRequest, + output: GetCpuLimitResponse, + errors: [BadRequest, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetCpuTargetError = BadRequest | RenderOpError; +/** Get CPU target Get CPU target for one or more resources. */ +export const getCpuTarget: API.OperationMethod< + GetCpuTargetRequest, + GetCpuTargetResponse, + GetCpuTargetError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetCpuTargetRequest, + output: GetCpuTargetResponse, + errors: [BadRequest, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetDiskCapacityError = BadRequest | RenderOpError; +/** Get disk capacity Get persistent disk capacity for one or more resources. */ +export const getDiskCapacity: API.OperationMethod< + GetDiskCapacityRequest, + GetDiskCapacityResponse, + GetDiskCapacityError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetDiskCapacityRequest, + output: GetDiskCapacityResponse, + errors: [BadRequest, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetDiskUsageError = BadRequest | RenderOpError; +/** Get disk usage Get persistent disk usage for one or more resources. */ +export const getDiskUsage: API.OperationMethod< + GetDiskUsageRequest, + GetDiskUsageResponse, + GetDiskUsageError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetDiskUsageRequest, + output: GetDiskUsageResponse, + errors: [BadRequest, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetEnvVarsForServiceError = Forbidden | NotFound | RenderOpError; +/** List environment variables List all environment variables for the service with the provided ID. */ +export const getEnvVarsForService: API.OperationMethod< + GetEnvVarsForServiceRequest, + GetEnvVarsForServiceResponse, + GetEnvVarsForServiceError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetEnvVarsForServiceRequest, + output: GetEnvVarsForServiceResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetHttpLatencyError = BadRequest | RenderOpError; +/** Get HTTP latency Get HTTP latency metrics for one or more resources. */ +export const getHttpLatency: API.OperationMethod< + GetHttpLatencyRequest, + GetHttpLatencyResponse, + GetHttpLatencyError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetHttpLatencyRequest, + output: GetHttpLatencyResponse, + errors: [BadRequest, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetHttpRequestsError = BadRequest | RenderOpError; +/** Get HTTP request count Get the HTTP request count for one or more resources. */ +export const getHttpRequests: API.OperationMethod< + GetHttpRequestsRequest, + GetHttpRequestsResponse, + GetHttpRequestsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetHttpRequestsRequest, + output: GetHttpRequestsResponse, + errors: [BadRequest, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetInstanceCountError = BadRequest | RenderOpError; +/** Get instance count Get the instance count for one or more resources. */ +export const getInstanceCount: API.OperationMethod< + GetInstanceCountRequest, + GetInstanceCountResponse, + GetInstanceCountError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetInstanceCountRequest, + output: GetInstanceCountResponse, + errors: [BadRequest, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetMemoryError = BadRequest | RenderOpError; +/** Get memory usage Get memory usage for one or more resources. */ +export const getMemory: API.OperationMethod< + GetMemoryRequest, + GetMemoryResponse, + GetMemoryError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetMemoryRequest, + output: GetMemoryResponse, + errors: [BadRequest, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetMemoryLimitError = BadRequest | RenderOpError; +/** Get memory limit Get the memory limit for one or more resources. */ +export const getMemoryLimit: API.OperationMethod< + GetMemoryLimitRequest, + GetMemoryLimitResponse, + GetMemoryLimitError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetMemoryLimitRequest, + output: GetMemoryLimitResponse, + errors: [BadRequest, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetMemoryTargetError = BadRequest | RenderOpError; +/** Get memory target Get memory target for one or more resources. */ +export const getMemoryTarget: API.OperationMethod< + GetMemoryTargetRequest, + GetMemoryTargetResponse, + GetMemoryTargetError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetMemoryTargetRequest, + output: GetMemoryTargetResponse, + errors: [BadRequest, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetOwnerLogStreamError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Retrieve log stream Returns log stream information for the specified workspace. */ +export const getOwnerLogStream: API.OperationMethod< + GetOwnerLogStreamRequest, + GetOwnerLogStreamResponse, + GetOwnerLogStreamError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetOwnerLogStreamRequest, + output: GetOwnerLogStreamResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetOwnerMetricsStreamError = BadRequest | NotFound | RenderOpError; +/** Retrieve metrics stream Returns metrics stream information for the specified workspace. */ +export const getOwnerMetricsStream: API.OperationMethod< + GetOwnerMetricsStreamRequest, + Schema10, + GetOwnerMetricsStreamError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetOwnerMetricsStreamRequest, + output: Schema10, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetReplicationLagError = BadRequest | RenderOpError; +/** Get replica lag Get seconds of replica lag of a Postgres replica. */ +export const getReplicationLag: API.OperationMethod< + GetReplicationLagRequest, + GetReplicationLagResponse, + GetReplicationLagError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetReplicationLagRequest, + output: GetReplicationLagResponse, + errors: [BadRequest, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetResourceLogStreamError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Retrieve log stream override Returns log stream override information for the specified resource. A log stream override takes precedence over a workspace's default log stream. */ +export const getResourceLogStream: API.OperationMethod< + GetResourceLogStreamRequest, + GetResourceLogStreamResponse, + GetResourceLogStreamError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetResourceLogStreamRequest, + output: GetResourceLogStreamResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetTaskError = Forbidden | NotFound | RenderOpError; +/** Retrieve task Retrieve the workflow task with the provided ID. */ +export const getTask: API.OperationMethod< + GetTaskRequest, + GetTaskResponse, + GetTaskError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetTaskRequest, + output: GetTaskResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetTaskRunError = Forbidden | NotFound | RenderOpError; +/** Retrieve task run Retrieve the workflow task run with the provided ID. */ +export const getTaskRun: API.OperationMethod< + GetTaskRunRequest, + GetTaskRunResponse, + GetTaskRunError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetTaskRunRequest, + output: GetTaskRunResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetTaskRunsCompletedError = BadRequest | RenderOpError; +/** Get task runs completed count Get the total number of task runs completed for one or more tasks. Optionally filter by state (succeeded/failed) or aggregate by state. */ +export const getTaskRunsCompleted: API.OperationMethod< + GetTaskRunsCompletedRequest, + GetTaskRunsCompletedResponse, + GetTaskRunsCompletedError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetTaskRunsCompletedRequest, + output: GetTaskRunsCompletedResponse, + errors: [BadRequest, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetTaskRunsQueuedError = BadRequest | RenderOpError; +/** Get task runs queued count Get the total number of task runs queued for one or more tasks. */ +export const getTaskRunsQueued: API.OperationMethod< + GetTaskRunsQueuedRequest, + GetTaskRunsQueuedResponse, + GetTaskRunsQueuedError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetTaskRunsQueuedRequest, + output: GetTaskRunsQueuedResponse, + errors: [BadRequest, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetUserError = RenderOpError; +/** Get the authenticated user Retrieve the user associated with the provided API key. */ +export const getUser: API.OperationMethod< + GetUserRequest, + User, + GetUserError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetUserRequest, + output: User, + errors: [UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetWorkflowError = Forbidden | NotFound | RenderOpError; +/** Retrieve workflow Retrieve the workflow service with the provided ID. */ +export const getWorkflow: API.OperationMethod< + GetWorkflowRequest, + Schema13, + GetWorkflowError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetWorkflowRequest, + output: Schema13, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type GetWorkflowVersionError = Forbidden | NotFound | RenderOpError; +/** Retrieve workflow version Retrieve the specific workflow service version with the provided ID. */ +export const getWorkflowVersion: API.OperationMethod< + GetWorkflowVersionRequest, + GetWorkflowVersionResponse, + GetWorkflowVersionError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: GetWorkflowVersionRequest, + output: GetWorkflowVersionResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type LinkServiceToEnvGroupError = BadRequest | NotFound | RenderOpError; +/** Link service Link a particular service to a particular environment group. The linked service will have access to the environment variables and secret files in the group. */ +export const linkServiceToEnvGroup: API.OperationMethod< + LinkServiceToEnvGroupRequest, + LinkServiceToEnvGroupResponse, + LinkServiceToEnvGroupError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: LinkServiceToEnvGroupRequest, + output: LinkServiceToEnvGroupResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListApplicationFilterValuesError = BadRequest | RenderOpError; +/** List queryable instance values List instance values to filter by for one or more resources. */ +export const listApplicationFilterValues: API.OperationMethod< + ListApplicationFilterValuesRequest, + ListApplicationFilterValuesResponse, + ListApplicationFilterValuesError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListApplicationFilterValuesRequest, + output: ListApplicationFilterValuesResponse, + errors: [BadRequest, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListBlueprintsError = Forbidden | NotFound | RenderOpError; +/** List Blueprints List Blueprints for the specified workspaces. If no workspaces are provided, returns all Blueprints the API key has access to. */ +export const listBlueprints: API.OperationMethod< + ListBlueprintsRequest, + ListBlueprintsResponse, + ListBlueprintsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListBlueprintsRequest, + output: ListBlueprintsResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListBlueprintSyncsError = Forbidden | NotFound | RenderOpError; +/** List Blueprint syncs List syncs for the Blueprint with the provided ID. */ +export const listBlueprintSyncs: API.OperationMethod< + ListBlueprintSyncsRequest, + ListBlueprintSyncsResponse, + ListBlueprintSyncsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListBlueprintSyncsRequest, + output: ListBlueprintSyncsResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListCustomDomainsError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** List custom domains List a particular service's custom domains that match the provided filters. If no filters are provided, all custom domains for the service are returned. */ +export const listCustomDomains: API.OperationMethod< + ListCustomDomainsRequest, + ListCustomDomainsResponse, + ListCustomDomainsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListCustomDomainsRequest, + output: ListCustomDomainsResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListDedicatedIpsError = BadRequest | Forbidden | RenderOpError; +/** List dedicated IPs List dedicated IP sets for a workspace. */ +export const listDedicatedIps: API.OperationMethod< + ListDedicatedIpsRequest, + ListDedicatedIpsResponse, + ListDedicatedIpsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListDedicatedIpsRequest, + output: ListDedicatedIpsResponse, + errors: [BadRequest, Forbidden, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListDeploysError = Forbidden | NotFound | RenderOpError; +/** List deploys List deploys matching the provided filters. If no filters are provided, all deploys for the service are returned. */ +export const listDeploys: API.OperationMethod< + ListDeploysRequest, + ListDeploysResponse, + ListDeploysError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListDeploysRequest, + output: ListDeploysResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListDisksError = Forbidden | NotFound | RenderOpError; +/** List disks List persistent disks matching the provided filters. If no filters are provided, returns all disks you have permissions to view. */ +export const listDisks: API.OperationMethod< + ListDisksRequest, + ListDisksResponse, + ListDisksError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListDisksRequest, + output: ListDisksResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListEnvGroupsError = BadRequest | NotFound | RenderOpError; +/** List environment groups List environment groups matching the provided filters. If no filters are provided, all environment groups are returned. */ +export const listEnvGroups: API.OperationMethod< + ListEnvGroupsRequest, + ListEnvGroupsResponse, + ListEnvGroupsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListEnvGroupsRequest, + output: ListEnvGroupsResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListEnvironmentsError = BadRequest | NotFound | RenderOpError; +/** List environments List a particular project's environments matching the provided filters. If no filters are provided, all environments are returned. */ +export const listEnvironments: API.OperationMethod< + ListEnvironmentsRequest, + ListEnvironmentsResponse, + ListEnvironmentsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListEnvironmentsRequest, + output: ListEnvironmentsResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListEventsError = BadRequest | NotFound | RenderOpError; +/** List events List recent events that occurred for the service with the provided ID. */ +export const listEvents: API.OperationMethod< + ListEventsRequest, + ListEventsResponse, + ListEventsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListEventsRequest, + output: ListEventsResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListHeadersError = Forbidden | NotFound | RenderOpError; +/** List header rules List a particular service's response header rules that match the provided filters. If no filters are provided, all rules for the service are returned. */ +export const listHeaders: API.OperationMethod< + ListHeadersRequest, + ListHeadersResponse, + ListHeadersError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListHeadersRequest, + output: ListHeadersResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListHttpFilterValuesError = BadRequest | RenderOpError; +/** List queryable status codes and host values List status codes and host values to filter by for one or more resources. */ +export const listHttpFilterValues: API.OperationMethod< + ListHttpFilterValuesRequest, + ListHttpFilterValuesResponse, + ListHttpFilterValuesError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListHttpFilterValuesRequest, + output: ListHttpFilterValuesResponse, + errors: [BadRequest, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListInstancesError = NotFound | RenderOpError; +/** List instances List instances for the provided service. */ +export const listInstances: API.OperationMethod< + ListInstancesRequest, + ListInstancesResponse, + ListInstancesError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListInstancesRequest, + output: ListInstancesResponse, + errors: [NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListJobError = BadRequest | NotFound | RenderOpError; +/** List jobs List jobs for the provided service that match the provided filters. If no filters are provided, all jobs for the service are returned. */ +export const listJob: API.OperationMethod< + ListJobRequest, + ListJobResponse, + ListJobError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListJobRequest, + output: ListJobResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListKeyValueError = + | BadRequest + | NotFound + | Conflict + | RenderOpError; +/** List Key Value instances List Key Value instances matching the provided filters. If no filters are provided, all Key Value instances are returned. */ +export const listKeyValue: API.OperationMethod< + ListKeyValueRequest, + ListKeyValueResponse, + ListKeyValueError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListKeyValueRequest, + output: ListKeyValueResponse, + errors: [BadRequest, NotFound, Conflict, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListLogsError = BadRequest | Forbidden | NotFound | RenderOpError; +/** List logs List logs matching the provided filters. Logs are paginated by start and end timestamps. There are more logs to fetch if `hasMore` is true in the response. Provide the `nextStartTime` and `nextEndTime` timestamps as the `startTime` and `endTime` query parameters to fetch the next page of logs. You can query for logs across multiple resources, but all resources must be in the same region and belong to the same owner. */ +export const listLogs: API.OperationMethod< + ListLogsRequest, + ListLogsResponse, + ListLogsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListLogsRequest, + output: ListLogsResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListLogsValuesError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** List log label values List all values for a given log label in the logs matching the provided filters. */ +export const listLogsValues: API.OperationMethod< + ListLogsValuesRequest, + ListLogsValuesResponse, + ListLogsValuesError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListLogsValuesRequest, + output: ListLogsValuesResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListMaintenanceError = BadRequest | NotFound | RenderOpError; +/** List maintenance runs List scheduled and/or recent maintenance runs for specified resources. */ +export const listMaintenance: API.OperationMethod< + ListMaintenanceRequest, + ListMaintenanceResponse, + ListMaintenanceError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListMaintenanceRequest, + output: ListMaintenanceResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListNotificationOverridesError = RenderOpError; +/** List notification overrides List notification overrides matching the provided filters. If no filters are provided, returns all notification overrides for all workspaces the user belongs to. */ +export const listNotificationOverrides: API.OperationMethod< + ListNotificationOverridesRequest, + ListNotificationOverridesResponse, + ListNotificationOverridesError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListNotificationOverridesRequest, + output: ListNotificationOverridesResponse, + errors: [UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListOrganizationAuditLogsError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** List organization audit logs Retrieve audit logs for a specific organization with optional filtering and pagination. */ +export const listOrganizationAuditLogs: API.OperationMethod< + ListOrganizationAuditLogsRequest, + ListOrganizationAuditLogsResponse, + ListOrganizationAuditLogsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListOrganizationAuditLogsRequest, + output: ListOrganizationAuditLogsResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListOwnerAuditLogsError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** List workspace audit logs Retrieve audit logs for a specific workspace with optional filtering and pagination. */ +export const listOwnerAuditLogs: API.OperationMethod< + ListOwnerAuditLogsRequest, + ListOwnerAuditLogsResponse, + ListOwnerAuditLogsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListOwnerAuditLogsRequest, + output: ListOwnerAuditLogsResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListOwnersError = RenderOpError; +/** List workspaces List the workspaces that your API key has access to, optionally filtered by name or owner email address. */ +export const listOwners: API.OperationMethod< + ListOwnersRequest, + ListOwnersResponse, + ListOwnersError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListOwnersRequest, + output: ListOwnersResponse, + errors: [UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListPathFilterValuesError = BadRequest | RenderOpError; +/** List queryable paths The path suggestions are based on the most recent 5000 log lines as filtered by the provided filters */ +export const listPathFilterValues: API.OperationMethod< + ListPathFilterValuesRequest, + ListPathFilterValuesResponse, + ListPathFilterValuesError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListPathFilterValuesRequest, + output: ListPathFilterValuesResponse, + errors: [BadRequest, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListPostgresError = + | BadRequest + | NotFound + | Conflict + | RenderOpError; +/** List Postgres instances List Postgres instances matching the provided filters. If no filters are provided, all Postgres instances are returned. */ +export const listPostgres: API.OperationMethod< + ListPostgresRequest, + ListPostgresResponse, + ListPostgresError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListPostgresRequest, + output: ListPostgresResponse, + errors: [BadRequest, NotFound, Conflict, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListPostgresExportError = BadRequest | NotFound | RenderOpError; +/** List Postgres exports List [exports](https://render.com/docs/postgresql-backups#logical-backups) for a Postgres instance by ID. Returns a URL to download the export. */ +export const listPostgresExport: API.OperationMethod< + ListPostgresExportRequest, + ListPostgresExportResponse, + ListPostgresExportError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListPostgresExportRequest, + output: ListPostgresExportResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListPostgresProcessesError = BadRequest | NotFound | RenderOpError; +/** List live queries List currently running queries (from `pg_stat_activity`) on a Postgres instance by ID. */ +export const listPostgresProcesses: API.OperationMethod< + ListPostgresProcessesRequest, + ListPostgresProcessesResponse, + ListPostgresProcessesError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListPostgresProcessesRequest, + output: ListPostgresProcessesResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListPostgresSizesError = BadRequest | NotFound | RenderOpError; +/** List database, table, and index sizes List the sizes of databases, tables, and indexes on a Postgres instance by ID. */ +export const listPostgresSizes: API.OperationMethod< + ListPostgresSizesRequest, + ListPostgresSizesResponse, + ListPostgresSizesError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListPostgresSizesRequest, + output: ListPostgresSizesResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListPostgresTableScansError = BadRequest | NotFound | RenderOpError; +/** List table scans List the number of sequential scans performed against each table on a Postgres instance by ID. */ +export const listPostgresTableScans: API.OperationMethod< + ListPostgresTableScansRequest, + ListPostgresTableScansResponse, + ListPostgresTableScansError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListPostgresTableScansRequest, + output: ListPostgresTableScansResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListPostgresTopQueriesError = BadRequest | NotFound | RenderOpError; +/** List top queries List the top 50 queries by total execution time (from `pg_stat_statements`) on a Postgres instance by ID. */ +export const listPostgresTopQueries: API.OperationMethod< + ListPostgresTopQueriesRequest, + ListPostgresTopQueriesResponse, + ListPostgresTopQueriesError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListPostgresTopQueriesRequest, + output: ListPostgresTopQueriesResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListPostgresUsersError = BadRequest | NotFound | RenderOpError; +/** List PostgreSQL Users List PostgreSQL users for the Render Postgres instance with the provided ID. */ +export const listPostgresUsers: API.OperationMethod< + ListPostgresUsersRequest, + ListPostgresUsersResponse, + ListPostgresUsersError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListPostgresUsersRequest, + output: ListPostgresUsersResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListProjectsError = BadRequest | NotFound | RenderOpError; +/** List projects List projects matching the provided filters. If no filters are provided, all projects are returned. */ +export const listProjects: API.OperationMethod< + ListProjectsRequest, + ListProjectsResponse, + ListProjectsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListProjectsRequest, + output: ListProjectsResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListRegistryCredentialsError = RenderOpError; +/** List registry credentials List registry credentials matching the provided filters. If no filters are provided, returns all registry credentials you have permissions to view. */ +export const listRegistryCredentials: API.OperationMethod< + ListRegistryCredentialsRequest, + ListRegistryCredentialsResponse, + ListRegistryCredentialsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListRegistryCredentialsRequest, + output: ListRegistryCredentialsResponse, + errors: [UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListResourceLogStreamsError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** List log stream overrides Lists log stream overrides for the provided workspace that match the provided filters. These overrides take precedence over the workspace's default log stream. */ +export const listResourceLogStreams: API.OperationMethod< + ListResourceLogStreamsRequest, + ListResourceLogStreamsResponse, + ListResourceLogStreamsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListResourceLogStreamsRequest, + output: ListResourceLogStreamsResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListRoutesError = Forbidden | NotFound | RenderOpError; +/** List redirect/rewrite rules List a particular service's redirect/rewrite rules that match the provided filters. If no filters are provided, all rules for the service are returned. */ +export const listRoutes: API.OperationMethod< + ListRoutesRequest, + ListRoutesResponse, + ListRoutesError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListRoutesRequest, + output: ListRoutesResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListSecretFilesForServiceError = + | Forbidden + | NotFound + | RenderOpError; +/** List secret files List all secret files for the service with the provided ID. */ +export const listSecretFilesForService: API.OperationMethod< + ListSecretFilesForServiceRequest, + ListSecretFilesForServiceResponse, + ListSecretFilesForServiceError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListSecretFilesForServiceRequest, + output: ListSecretFilesForServiceResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListServicesError = RenderOpError; +/** List services List services matching the provided filters. If no filters are provided, returns all services you have permissions to view. */ +export const listServices: API.OperationMethod< + ListServicesRequest, + ListServicesResponse, + ListServicesError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListServicesRequest, + output: ListServicesResponse, + errors: [UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListSnapshotsError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** List snapshots List snapshots for the persistent disk with the provided ID. Each snapshot is a point-in-time copy of the disk's data. */ +export const listSnapshots: API.OperationMethod< + ListSnapshotsRequest, + ListSnapshotsResponse, + ListSnapshotsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListSnapshotsRequest, + output: ListSnapshotsResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListTaskRunsError = Forbidden | NotFound | RenderOpError; +/** List task runs List task runs that match the provided filters. If no filters are provided, all task runs accessible by the authenticated user are returned. */ +export const listTaskRuns: API.OperationMethod< + ListTaskRunsRequest, + ListTaskRunsResponse, + ListTaskRunsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListTaskRunsRequest, + output: ListTaskRunsResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListTasksError = Forbidden | NotFound | RenderOpError; +/** List tasks List workflow tasks that match the provided filters. If no filters are provided, all task definitions accessible by the authenticated user are returned. */ +export const listTasks: API.OperationMethod< + ListTasksRequest, + ListTasksResponse, + ListTasksError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListTasksRequest, + output: ListTasksResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListWebhookEventsError = BadRequest | NotFound | RenderOpError; +/** List webhook events Retrieve a list of events that have been sent to this webhook, with optional filtering by timestamp. */ +export const listWebhookEvents: API.OperationMethod< + ListWebhookEventsRequest, + ListWebhookEventsResponse, + ListWebhookEventsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListWebhookEventsRequest, + output: ListWebhookEventsResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListWebhooksError = BadRequest | NotFound | RenderOpError; +/** List webhooks List webhooks */ +export const listWebhooks: API.OperationMethod< + ListWebhooksRequest, + ListWebhooksResponse, + ListWebhooksError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListWebhooksRequest, + output: ListWebhooksResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListWorkflowsError = Forbidden | NotFound | RenderOpError; +/** List workflows List workflows that match the provided filters. If no filters are provided, all workflows accessible by the authenticated user are returned. */ +export const listWorkflows: API.OperationMethod< + ListWorkflowsRequest, + ListWorkflowsResponse, + ListWorkflowsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListWorkflowsRequest, + output: ListWorkflowsResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ListWorkflowVersionsError = Forbidden | NotFound | RenderOpError; +/** List workflow versions List known versions of the workflow service with the provided ID. */ +export const listWorkflowVersions: API.OperationMethod< + ListWorkflowVersionsRequest, + ListWorkflowVersionsResponse, + ListWorkflowVersionsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ListWorkflowVersionsRequest, + output: ListWorkflowVersionsResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type PatchOwnerNotificationSettingsError = RenderOpError; +/** Update notification settings Update notification settings for the owner with the provided ID. */ +export const patchOwnerNotificationSettings: API.OperationMethod< + PatchOwnerNotificationSettingsRequest, + Schema3, + PatchOwnerNotificationSettingsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: PatchOwnerNotificationSettingsRequest, + output: Schema3, + errors: [UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type PatchRouteError = Forbidden | NotFound | RenderOpError; +/** Update redirect/rewrite rule priority Update the priority for a particular redirect/rewrite rule. To apply redirect/rewrite rules to an incoming request, Render starts from the rule with priority `0` and applies the first encountered rule that matches the request's path (if any). Render increments the priority of other rules by `1` as necessary to make space for the updated rule. */ +export const patchRoute: API.OperationMethod< + PatchRouteRequest, + PatchRouteResponse, + PatchRouteError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: PatchRouteRequest, + output: PatchRouteResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type PatchServiceNotificationOverridesError = RenderOpError; +/** Update notification override Update the notification override for the service with the provided ID. */ +export const patchServiceNotificationOverrides: API.OperationMethod< + PatchServiceNotificationOverridesRequest, + Schema4, + PatchServiceNotificationOverridesError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: PatchServiceNotificationOverridesRequest, + output: Schema4, + errors: [UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type PostJobError = BadRequest | NotFound | RenderOpError; +/** Create job Create a one-off job using the provided service. For details, see [One-Off Jobs](https://render.com/docs/one-off-jobs). */ +export const postJob: API.OperationMethod< + PostJobRequest, + PostJobResponse, + PostJobError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: PostJobRequest, + output: PostJobResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type PreviewServiceError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Create service preview (image-backed) Create a preview instance for an image-backed service. The preview uses the settings of the base service (referenced by `serviceId`), except settings overridden via provided parameters. View all active previews from your service's Previews tab in the Render Dashboard. Note that you can't create previews for Git-backed services using the Render API. */ +export const previewService: API.OperationMethod< + PreviewServiceRequest, + ServiceAndDeploy, + PreviewServiceError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: PreviewServiceRequest, + output: ServiceAndDeploy, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type PurgeCacheError = BadRequest | NotFound | Conflict | RenderOpError; +/** Purge Web Service Cache Trigger cache purge for the web service if caching is enabled. */ +export const purgeCache: API.OperationMethod< + PurgeCacheRequest, + PurgeCacheResponse, + PurgeCacheError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: PurgeCacheRequest, + output: PurgeCacheResponse, + errors: [BadRequest, NotFound, Conflict, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type PutRoutesError = BadRequest | Forbidden | NotFound | RenderOpError; +/** Update redirect/rewrite rules Replace all redirect/rewrite rules for a particular service with the provided list. **This deletes all existing redirect/rewrite rules for the service that aren't included in the request.** Rule priority is assigned according to list order (the first rule in the list has the highest priority). */ +export const putRoutes: API.OperationMethod< + PutRoutesRequest, + PutRoutesResponse, + PutRoutesError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: PutRoutesRequest, + output: PutRoutesResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RecoverPostgresError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Trigger point-in-time recovery Trigger [point-in-time recovery](https://render.com/docs/postgresql-backups) on the Postgres instance with the provided ID. */ +export const recoverPostgres: API.OperationMethod< + RecoverPostgresRequest, + PostgresDetail, + RecoverPostgresError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RecoverPostgresRequest, + output: PostgresDetail, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RefreshCustomDomainError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Verify DNS configuration Verify the DNS configuration for a custom domain. */ +export const refreshCustomDomain: API.OperationMethod< + RefreshCustomDomainRequest, + RefreshCustomDomainResponse, + RefreshCustomDomainError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RefreshCustomDomainRequest, + output: RefreshCustomDomainResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RemoveResourcesFromEnvironmentError = + | BadRequest + | NotFound + | RenderOpError; +/** Remove resources from environment Remove resources from the environment with the provided ID. */ +export const removeResourcesFromEnvironment: API.OperationMethod< + RemoveResourcesFromEnvironmentRequest, + RemoveResourcesFromEnvironmentResponse, + RemoveResourcesFromEnvironmentError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RemoveResourcesFromEnvironmentRequest, + output: RemoveResourcesFromEnvironmentResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RemoveWorkspaceMemberError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Remove workspace member Remove a user from the specified workspace. */ +export const removeWorkspaceMember: API.OperationMethod< + RemoveWorkspaceMemberRequest, + RemoveWorkspaceMemberResponse, + RemoveWorkspaceMemberError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RemoveWorkspaceMemberRequest, + output: RemoveWorkspaceMemberResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RestartPostgresError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Restart Postgres instance Restart a Postgres instance by ID. */ +export const restartPostgres: API.OperationMethod< + RestartPostgresRequest, + RestartPostgresResponse, + RestartPostgresError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RestartPostgresRequest, + output: RestartPostgresResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RestartServiceError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Restart service Restart the service with the provided ID. Not supported for cron jobs. */ +export const restartService: API.OperationMethod< + RestartServiceRequest, + RestartServiceResponse, + RestartServiceError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RestartServiceRequest, + output: RestartServiceResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RestoreSnapshotError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Restore snapshot Restore a persistent disk to an available snapshot. **This operation is irreversible.** It will overwrite the current disk data. It might also trigger a service deploy. Snapshot keys returned from the [List snapshots](https://api-docs.render.com/reference/list-snapshots) endpoint expire after 24 hours. If a snapshot key has expired, query the endpoint again for a new key. */ +export const restoreSnapshot: API.OperationMethod< + RestoreSnapshotRequest, + Schema2, + RestoreSnapshotError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RestoreSnapshotRequest, + output: Schema2, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ResumeKeyValueError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Resume Key Value instance Resume a Key Value instance by ID. */ +export const resumeKeyValue: API.OperationMethod< + ResumeKeyValueRequest, + ResumeKeyValueResponse, + ResumeKeyValueError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ResumeKeyValueRequest, + output: ResumeKeyValueResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ResumePostgresError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Resume Postgres instance Resume a Postgres instance by ID. */ +export const resumePostgres: API.OperationMethod< + ResumePostgresRequest, + ResumePostgresResponse, + ResumePostgresError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ResumePostgresRequest, + output: ResumePostgresResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ResumeServiceError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Resume service Resume the service with the provided ID (if it's currently suspended). */ +export const resumeService: API.OperationMethod< + ResumeServiceRequest, + ResumeServiceResponse, + ResumeServiceError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ResumeServiceRequest, + output: ResumeServiceResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveBlueprintError = Forbidden | NotFound | RenderOpError; +/** Retrieve Blueprint Retrieve the Blueprint with the provided ID. */ +export const retrieveBlueprint: API.OperationMethod< + RetrieveBlueprintRequest, + RetrieveBlueprintResponse, + RetrieveBlueprintError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveBlueprintRequest, + output: RetrieveBlueprintResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveCustomDomainError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Retrieve custom domain Retrieve a particular custom domain for a particular service. */ +export const retrieveCustomDomain: API.OperationMethod< + RetrieveCustomDomainRequest, + CustomDomain, + RetrieveCustomDomainError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveCustomDomainRequest, + output: CustomDomain, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveDedicatedIpError = Forbidden | NotFound | RenderOpError; +/** Retrieve dedicated IP set Retrieve the dedicated IP set with the provided ID. */ +export const retrieveDedicatedIp: API.OperationMethod< + RetrieveDedicatedIpRequest, + DedicatedIP, + RetrieveDedicatedIpError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveDedicatedIpRequest, + output: DedicatedIP, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveDeployError = Forbidden | NotFound | RenderOpError; +/** Retrieve deploy Retrieve the details of a particular deploy for a particular service. */ +export const retrieveDeploy: API.OperationMethod< + RetrieveDeployRequest, + Deploy, + RetrieveDeployError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveDeployRequest, + output: Deploy, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveDiskError = Forbidden | NotFound | RenderOpError; +/** Retrieve disk Retrieve the persistent disk with the provided ID. */ +export const retrieveDisk: API.OperationMethod< + RetrieveDiskRequest, + Schema2, + RetrieveDiskError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveDiskRequest, + output: Schema2, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveEnvGroupError = BadRequest | NotFound | RenderOpError; +/** Retrieve environment group Retrieve an environment group by ID. */ +export const retrieveEnvGroup: API.OperationMethod< + RetrieveEnvGroupRequest, + RetrieveEnvGroupResponse, + RetrieveEnvGroupError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveEnvGroupRequest, + output: RetrieveEnvGroupResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveEnvGroupEnvVarError = BadRequest | NotFound | RenderOpError; +/** Retrieve environment variable Retrieve a particular environment variable in a particular environment group. */ +export const retrieveEnvGroupEnvVar: API.OperationMethod< + RetrieveEnvGroupEnvVarRequest, + EnvVar, + RetrieveEnvGroupEnvVarError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveEnvGroupEnvVarRequest, + output: EnvVar, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveEnvGroupSecretFileError = + | BadRequest + | NotFound + | RenderOpError; +/** Retrieve secret file Retrieve a particular secret file in a particular environment group. */ +export const retrieveEnvGroupSecretFile: API.OperationMethod< + RetrieveEnvGroupSecretFileRequest, + SecretFile, + RetrieveEnvGroupSecretFileError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveEnvGroupSecretFileRequest, + output: SecretFile, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveEnvironmentError = BadRequest | NotFound | RenderOpError; +/** Retrieve environment Retrieve the environment with the provided ID. */ +export const retrieveEnvironment: API.OperationMethod< + RetrieveEnvironmentRequest, + Environment, + RetrieveEnvironmentError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveEnvironmentRequest, + output: Environment, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveEnvVarError = Forbidden | NotFound | RenderOpError; +/** Retrieve environment variable Retrieve a particular environment variable for a particular service. This only applies to environment variables set directly on the service, not to environment variables in a linked environment group. */ +export const retrieveEnvVar: API.OperationMethod< + RetrieveEnvVarRequest, + EnvVar, + RetrieveEnvVarError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveEnvVarRequest, + output: EnvVar, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveEventError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Retrieve event Retrieve the details of a particular event */ +export const retrieveEvent: API.OperationMethod< + RetrieveEventRequest, + RetrieveEventResponse, + RetrieveEventError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveEventRequest, + output: RetrieveEventResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveJobError = BadRequest | NotFound | RenderOpError; +/** Retrieve job Retrieve the details of a particular one-off job for a particular service. */ +export const retrieveJob: API.OperationMethod< + RetrieveJobRequest, + Schema7, + RetrieveJobError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveJobRequest, + output: Schema7, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveKeyValueError = BadRequest | NotFound | RenderOpError; +/** Retrieve Key Value instance Retrieve a Key Value instance by ID. */ +export const retrieveKeyValue: API.OperationMethod< + RetrieveKeyValueRequest, + KeyValueDetail, + RetrieveKeyValueError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveKeyValueRequest, + output: KeyValueDetail, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveKeyValueConnectionInfoError = + | BadRequest + | NotFound + | RenderOpError; +/** Retrieve Key Value connection info Retrieve connection info for a Key Value instance by ID. Connection info includes sensitive information. */ +export const retrieveKeyValueConnectionInfo: API.OperationMethod< + RetrieveKeyValueConnectionInfoRequest, + KeyValueConnectionInfo, + RetrieveKeyValueConnectionInfoError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveKeyValueConnectionInfoRequest, + output: KeyValueConnectionInfo, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveMaintenanceError = BadRequest | NotFound | RenderOpError; +/** Retrieve maintenance run Retrieve the maintenance run with the provided ID. */ +export const retrieveMaintenance: API.OperationMethod< + RetrieveMaintenanceRequest, + RetrieveMaintenanceResponse, + RetrieveMaintenanceError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveMaintenanceRequest, + output: RetrieveMaintenanceResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveOwnerError = NotFound | RenderOpError; +/** Retrieve workspace Retrieve the workspace with the provided ID. Workspace IDs start with `tea-`. If you provide a user ID (starts with `own-`), this endpoint returns the user's default workspace. */ +export const retrieveOwner: API.OperationMethod< + RetrieveOwnerRequest, + Owner, + RetrieveOwnerError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveOwnerRequest, + output: Owner, + errors: [NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveOwnerMembersError = NotFound | RenderOpError; +/** List workspace members Retrieves the list of users belonging to the workspace with the provided ID. */ +export const retrieveOwnerMembers: API.OperationMethod< + RetrieveOwnerMembersRequest, + RetrieveOwnerMembersResponse, + RetrieveOwnerMembersError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveOwnerMembersRequest, + output: RetrieveOwnerMembersResponse, + errors: [NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveOwnerNotificationSettingsError = RenderOpError; +/** Retrieve notification settings Retrieve notification settings for the owner with the provided ID. Note that you provide an owner ID to this endpoint, not the ID for a particular resource. */ +export const retrieveOwnerNotificationSettings: API.OperationMethod< + RetrieveOwnerNotificationSettingsRequest, + RetrieveOwnerNotificationSettingsResponse, + RetrieveOwnerNotificationSettingsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveOwnerNotificationSettingsRequest, + output: RetrieveOwnerNotificationSettingsResponse, + errors: [UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrievePostgresError = BadRequest | NotFound | RenderOpError; +/** Retrieve Postgres instance Retrieve a Postgres instance by ID. */ +export const retrievePostgres: API.OperationMethod< + RetrievePostgresRequest, + PostgresDetail, + RetrievePostgresError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrievePostgresRequest, + output: PostgresDetail, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrievePostgresConnectionInfoError = + | BadRequest + | NotFound + | RenderOpError; +/** Retrieve Postgres connection info Retrieve connection info for a Postgres instance by ID. Connection info includes sensitive information. */ +export const retrievePostgresConnectionInfo: API.OperationMethod< + RetrievePostgresConnectionInfoRequest, + PostgresConnectionInfo, + RetrievePostgresConnectionInfoError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrievePostgresConnectionInfoRequest, + output: PostgresConnectionInfo, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrievePostgresRecoveryInfoError = + | BadRequest + | NotFound + | RenderOpError; +/** Retrieve point-in-time recovery status Retrieve information on the availability of Postgres point-in-time recovery for a Postgres instance by ID. */ +export const retrievePostgresRecoveryInfo: API.OperationMethod< + RetrievePostgresRecoveryInfoRequest, + RetrievePostgresRecoveryInfoResponse, + RetrievePostgresRecoveryInfoError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrievePostgresRecoveryInfoRequest, + output: RetrievePostgresRecoveryInfoResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveProjectError = BadRequest | NotFound | RenderOpError; +/** Retrieve Project Retrieve the project with the provided ID. */ +export const retrieveProject: API.OperationMethod< + RetrieveProjectRequest, + Project, + RetrieveProjectError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveProjectRequest, + output: Project, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveRegistryCredentialError = + | Forbidden + | NotFound + | RenderOpError; +/** Retrieve registry credential Retrieve the registry credential with the provided ID. */ +export const retrieveRegistryCredential: API.OperationMethod< + RetrieveRegistryCredentialRequest, + RegistryCredential, + RetrieveRegistryCredentialError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveRegistryCredentialRequest, + output: RegistryCredential, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveSecretFileError = Forbidden | NotFound | RenderOpError; +/** Retrieve secret file Retrieve a particular secret file for a particular service. This only applies to secret files set directly on the service, not to secret files in a linked environment group. */ +export const retrieveSecretFile: API.OperationMethod< + RetrieveSecretFileRequest, + SecretFile, + RetrieveSecretFileError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveSecretFileRequest, + output: SecretFile, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveServiceError = Forbidden | NotFound | RenderOpError; +/** Retrieve service Retrieve the service with the provided ID. */ +export const retrieveService: API.OperationMethod< + RetrieveServiceRequest, + Service, + RetrieveServiceError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveServiceRequest, + output: Service, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveServiceNotificationOverridesError = RenderOpError; +/** Retrieve notification override Retrieve the notification override for the service with the provided ID. Note that you provide a service ID to this endpoint, not the ID for a particular override. */ +export const retrieveServiceNotificationOverrides: API.OperationMethod< + RetrieveServiceNotificationOverridesRequest, + RetrieveServiceNotificationOverridesResponse, + RetrieveServiceNotificationOverridesError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveServiceNotificationOverridesRequest, + output: RetrieveServiceNotificationOverridesResponse, + errors: [UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveServiceOutboundIpsError = + | Forbidden + | NotFound + | RenderOpError; +/** Retrieve service outbound IPs Retrieve the IP addresses the service's outbound traffic originates from. A service uses either a dedicated IP set that applies to it, or the shared Render IPs for its region. */ +export const retrieveServiceOutboundIps: API.OperationMethod< + RetrieveServiceOutboundIpsRequest, + OutboundIps, + RetrieveServiceOutboundIpsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveServiceOutboundIpsRequest, + output: OutboundIps, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RetrieveWebhookError = NotFound | RenderOpError; +/** Retrieve a webhook Retrieve the webhook with the provided ID */ +export const retrieveWebhook: API.OperationMethod< + RetrieveWebhookRequest, + Schema12, + RetrieveWebhookError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RetrieveWebhookRequest, + output: Schema12, + errors: [NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RollbackDeployError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Roll back deploy Trigger a rollback to a previous deploy of the specified service. Triggering a rollback with this endpoint does not disable autodeploys for the service. This means an autodeploy might restore changes you had intentionally rolled back. You can toggle autodeploys for your service with the [Update service](https://api-docs.render.com/reference/update-service) endpoint or in the Render Dashboard. */ +export const rollbackDeploy: API.OperationMethod< + RollbackDeployRequest, + Deploy, + RollbackDeployError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RollbackDeployRequest, + output: Deploy, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type RunCronJobError = RenderOpError; +/** Trigger cron job run Trigger a run for a cron job and cancel any active runs. */ +export const runCronJob: API.OperationMethod< + RunCronJobRequest, + CronJobRun, + RunCronJobError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: RunCronJobRequest, + output: CronJobRun, + errors: [UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ScaleServiceError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Scale instance count [Scale](https://render.com/docs/scaling#manual-scaling) the service with the provided ID to a fixed number of instances. Render ignores this value as long as autoscaling is enabled for the service. */ +export const scaleService: API.OperationMethod< + ScaleServiceRequest, + ScaleServiceResponse, + ScaleServiceError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ScaleServiceRequest, + output: ScaleServiceResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type StreamTaskRunsEventsError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Stream realtime events (SSE) Establishes a unidirectional event stream. The server sends events as lines formatted per the SSE spec. Clients SHOULD set `Accept: text/event-stream` and keep the connection open. */ +export const streamTaskRunsEvents: API.OperationMethod< + StreamTaskRunsEventsRequest, + StreamTaskRunsEventsResponse, + StreamTaskRunsEventsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: StreamTaskRunsEventsRequest, + output: StreamTaskRunsEventsResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type SubscribeLogsError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Subscribe to new logs Open a websocket connection to subscribe to logs matching the provided filters. Logs are streamed in real-time as they are generated. You can query for logs across multiple resources, but all resources must be in the same region and belong to the same owner. */ +export const subscribeLogs: API.OperationMethod< + SubscribeLogsRequest, + SubscribeLogsResponse, + SubscribeLogsError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: SubscribeLogsRequest, + output: SubscribeLogsResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type SuspendKeyValueError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Suspend Key Value instance Suspend a Key Value instance by ID. */ +export const suspendKeyValue: API.OperationMethod< + SuspendKeyValueRequest, + SuspendKeyValueResponse, + SuspendKeyValueError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: SuspendKeyValueRequest, + output: SuspendKeyValueResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type SuspendPostgresError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Suspend Postgres instance Suspend a Postgres instance by ID. */ +export const suspendPostgres: API.OperationMethod< + SuspendPostgresRequest, + SuspendPostgresResponse, + SuspendPostgresError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: SuspendPostgresRequest, + output: SuspendPostgresResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type SuspendServiceError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Suspend service Suspend the service with the provided ID. */ +export const suspendService: API.OperationMethod< + SuspendServiceRequest, + SuspendServiceResponse, + SuspendServiceError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: SuspendServiceRequest, + output: SuspendServiceResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type TriggerMaintenanceError = BadRequest | NotFound | RenderOpError; +/** Trigger maintenance run Trigger the scheduled maintenance run with the provided ID. Triggering maintenance is asynchronous. To check whether maintenance has started, use the [Retrieve maintenance run](https://api-docs.render.com/reference/retrieve-maintenance) endpoint. As maintenance progresses, the run's `state` will change from `scheduled` to other values, such as `in_progress` and `succeeded`. */ +export const triggerMaintenance: API.OperationMethod< + TriggerMaintenanceRequest, + TriggerMaintenanceResponse, + TriggerMaintenanceError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: TriggerMaintenanceRequest, + output: TriggerMaintenanceResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UnlinkServiceFromEnvGroupError = + | BadRequest + | NotFound + | RenderOpError; +/** Unlink service Unlink a particular service from a particular environment group. The service will lose access to the environment variables and secret files in the group. */ +export const unlinkServiceFromEnvGroup: API.OperationMethod< + UnlinkServiceFromEnvGroupRequest, + UnlinkServiceFromEnvGroupResponse, + UnlinkServiceFromEnvGroupError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UnlinkServiceFromEnvGroupRequest, + output: UnlinkServiceFromEnvGroupResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpdateBlueprintError = Forbidden | NotFound | RenderOpError; +/** Update Blueprint Update the Blueprint with the provided ID. */ +export const updateBlueprint: API.OperationMethod< + UpdateBlueprintRequest, + UpdateBlueprintResponse, + UpdateBlueprintError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpdateBlueprintRequest, + output: UpdateBlueprintResponse, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpdateDedicatedIpError = + | BadRequest + | Forbidden + | NotFound + | Conflict + | RenderOpError; +/** Update dedicated IP set Update the dedicated IP set with the provided ID. All fields are optional. Omitted fields are left unchanged. To switch from environment-scoped to workspace-scoped, provide `environmentIds: []`. */ +export const updateDedicatedIp: API.OperationMethod< + UpdateDedicatedIpRequest, + DedicatedIP, + UpdateDedicatedIpError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpdateDedicatedIpRequest, + output: DedicatedIP, + errors: [BadRequest, Forbidden, NotFound, Conflict, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpdateDiskError = BadRequest | Forbidden | NotFound | RenderOpError; +/** Update disk Update the persistent disk with the provided ID. The disk's associated service must be deployed and active for updates to take effect. When resizing a disk, the new size must be greater than the current size. */ +export const updateDisk: API.OperationMethod< + UpdateDiskRequest, + Schema2, + UpdateDiskError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpdateDiskRequest, + output: Schema2, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpdateEnvGroupError = BadRequest | NotFound | RenderOpError; +/** Update environment group Update the attributes of an environment group. */ +export const updateEnvGroup: API.OperationMethod< + UpdateEnvGroupRequest, + UpdateEnvGroupResponse, + UpdateEnvGroupError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpdateEnvGroupRequest, + output: UpdateEnvGroupResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpdateEnvGroupEnvVarError = BadRequest | NotFound | RenderOpError; +/** Add or update environment variable Add or update a particular environment variable in a particular environment group. */ +export const updateEnvGroupEnvVar: API.OperationMethod< + UpdateEnvGroupEnvVarRequest, + UpdateEnvGroupEnvVarResponse, + UpdateEnvGroupEnvVarError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpdateEnvGroupEnvVarRequest, + output: UpdateEnvGroupEnvVarResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpdateEnvGroupSecretFileError = + | BadRequest + | NotFound + | RenderOpError; +/** Add or update secret file Add or update a particular secret file in an particular environment group. */ +export const updateEnvGroupSecretFile: API.OperationMethod< + UpdateEnvGroupSecretFileRequest, + UpdateEnvGroupSecretFileResponse, + UpdateEnvGroupSecretFileError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpdateEnvGroupSecretFileRequest, + output: UpdateEnvGroupSecretFileResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpdateEnvironmentError = BadRequest | NotFound | RenderOpError; +/** Update environment Update the details of the environment with the provided ID. */ +export const updateEnvironment: API.OperationMethod< + UpdateEnvironmentRequest, + Environment, + UpdateEnvironmentError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpdateEnvironmentRequest, + output: Environment, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpdateEnvVarError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Add or update environment variable Add or update a particular environment variable for a particular service. This only applies to environment variables set directly on the service, not to environment variables in a linked environment group. */ +export const updateEnvVar: API.OperationMethod< + UpdateEnvVarRequest, + EnvVar, + UpdateEnvVarError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpdateEnvVarRequest, + output: EnvVar, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpdateEnvVarsForServiceError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Update environment variables Replace all environment variables for a service with the provided list of environment variables. */ +export const updateEnvVarsForService: API.OperationMethod< + UpdateEnvVarsForServiceRequest, + UpdateEnvVarsForServiceResponse, + UpdateEnvVarsForServiceError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpdateEnvVarsForServiceRequest, + output: UpdateEnvVarsForServiceResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpdateHeadersError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Replace header rules Replace all header rules for a particular service with the provided list. **This deletes all existing header rules for the service that aren't included in the request.** */ +export const updateHeaders: API.OperationMethod< + UpdateHeadersRequest, + UpdateHeadersResponse, + UpdateHeadersError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpdateHeadersRequest, + output: UpdateHeadersResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpdateKeyValueError = + | BadRequest + | NotFound + | Conflict + | RenderOpError; +/** Update Key Value instance Update a Key Value instance by ID. Note that changing your plan, max memory policy, or persistence mode will restart your Key Value instance. */ +export const updateKeyValue: API.OperationMethod< + UpdateKeyValueRequest, + KeyValueDetail, + UpdateKeyValueError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpdateKeyValueRequest, + output: KeyValueDetail, + errors: [BadRequest, NotFound, Conflict, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpdateMaintenanceError = BadRequest | NotFound | RenderOpError; +/** Update maintenance run Update the maintenance run with the provided ID. Updates from this endpoint are asynchronous. To check your update's status, use the [Retrieve maintenance run](https://api-docs.render.com/reference/retrieve-maintenance) endpoint. */ +export const updateMaintenance: API.OperationMethod< + UpdateMaintenanceRequest, + UpdateMaintenanceResponse, + UpdateMaintenanceError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpdateMaintenanceRequest, + output: UpdateMaintenanceResponse, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpdateOwnerLogStreamError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Update log stream Updates log stream information for the specified workspace. All logs for resources owned by this workspace will be sent to this log stream unless overridden by individual resources. */ +export const updateOwnerLogStream: API.OperationMethod< + UpdateOwnerLogStreamRequest, + UpdateOwnerLogStreamResponse, + UpdateOwnerLogStreamError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpdateOwnerLogStreamRequest, + output: UpdateOwnerLogStreamResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpdatePostgresError = + | BadRequest + | NotFound + | Conflict + | RenderOpError; +/** Update Postgres instance Update a Postgres instance by ID. */ +export const updatePostgres: API.OperationMethod< + UpdatePostgresRequest, + PostgresDetail, + UpdatePostgresError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpdatePostgresRequest, + output: PostgresDetail, + errors: [BadRequest, NotFound, Conflict, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpdateProjectError = BadRequest | NotFound | RenderOpError; +/** Update project Update the details of a project. To update the details of a particular _environment_ in the project, instead use the [Update environment](https://api-docs.render.com/reference/update-environment) endpoint. */ +export const updateProject: API.OperationMethod< + UpdateProjectRequest, + Project, + UpdateProjectError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpdateProjectRequest, + output: Project, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpdateRegistryCredentialError = + | BadRequest + | Forbidden + | NotFound + | Conflict + | RenderOpError; +/** Update registry credential Update the registry credential with the provided ID. Services that use this credential must be redeployed to use updated values. */ +export const updateRegistryCredential: API.OperationMethod< + UpdateRegistryCredentialRequest, + RegistryCredential, + UpdateRegistryCredentialError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpdateRegistryCredentialRequest, + output: RegistryCredential, + errors: [BadRequest, Forbidden, NotFound, Conflict, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpdateResourceLogStreamError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Update log stream override Updates log stream override information for the specified resource. A log stream override takes precedence over a workspace's default log stream. */ +export const updateResourceLogStream: API.OperationMethod< + UpdateResourceLogStreamRequest, + UpdateResourceLogStreamResponse, + UpdateResourceLogStreamError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpdateResourceLogStreamRequest, + output: UpdateResourceLogStreamResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpdateSecretFilesForServiceError = + | BadRequest + | Forbidden + | NotFound + | RenderOpError; +/** Update secret files Replace all secret files for a service with the provided list of secret files. **Any of the service's existing secret files not included in this request will be deleted.** This only applies to secret files set directly on the service, not to secret files in a linked environment group. */ +export const updateSecretFilesForService: API.OperationMethod< + UpdateSecretFilesForServiceRequest, + UpdateSecretFilesForServiceResponse, + UpdateSecretFilesForServiceError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpdateSecretFilesForServiceRequest, + output: UpdateSecretFilesForServiceResponse, + errors: [BadRequest, Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpdateServiceError = + | BadRequest + | Forbidden + | NotFound + | Conflict + | RenderOpError; +/** Update service Update the service with the provided ID. */ +export const updateService: API.OperationMethod< + UpdateServiceRequest, + Service, + UpdateServiceError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpdateServiceRequest, + output: Service, + errors: [BadRequest, Forbidden, NotFound, Conflict, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpdateWebhookError = BadRequest | NotFound | RenderOpError; +/** Update a webhook Update the webhook with the provided ID. */ +export const updateWebhook: API.OperationMethod< + UpdateWebhookRequest, + Schema12, + UpdateWebhookError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpdateWebhookRequest, + output: Schema12, + errors: [BadRequest, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpdateWorkflowError = Forbidden | NotFound | RenderOpError; +/** Update workflow Update the workflow service with the provided ID. */ +export const updateWorkflow: API.OperationMethod< + UpdateWorkflowRequest, + Schema13, + UpdateWorkflowError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpdateWorkflowRequest, + output: Schema13, + errors: [Forbidden, NotFound, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpdateWorkspaceMemberError = + | BadRequest + | Forbidden + | NotFound + | Conflict + | RenderOpError; +/** Update workspace member role Update the role of an existing workspace member. */ +export const updateWorkspaceMember: API.OperationMethod< + UpdateWorkspaceMemberRequest, + TeamMember, + UpdateWorkspaceMemberError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpdateWorkspaceMemberRequest, + output: TeamMember, + errors: [BadRequest, Forbidden, NotFound, Conflict, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type UpsertOwnerMetricsStreamError = BadRequest | RenderOpError; +/** Create or update metrics stream Creates or updates the metrics stream for the specified workspace. */ +export const upsertOwnerMetricsStream: API.OperationMethod< + UpsertOwnerMetricsStreamRequest, + UpsertOwnerMetricsStreamResponse, + UpsertOwnerMetricsStreamError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: UpsertOwnerMetricsStreamRequest, + output: UpsertOwnerMetricsStreamResponse, + errors: [BadRequest, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); + +export type ValidateBlueprintError = BadRequest | Forbidden | RenderOpError; +/** Validate Blueprint Validate a `render.yaml` Blueprint file without creating or modifying any resources. This endpoint checks the syntax and structure of the Blueprint, validates that all required fields are present, and returns a plan indicating the resources that would be created. Requests to this endpoint use `Content-Type: multipart/form-data`. The request body (including the Blueprint file) cannot exceed 10MB in size. */ +export const validateBlueprint: API.OperationMethod< + ValidateBlueprintRequest, + ValidateBlueprintResponse, + ValidateBlueprintError, + RenderOpContext +> = /*@__PURE__*/ API.make(() => ({ + input: ValidateBlueprintRequest, + output: ValidateBlueprintResponse, + errors: [BadRequest, Forbidden, UnknownRenderError], + protocol: RenderProtocol, + retry: Retry.Retry, +})); diff --git a/packages/render/src/traits.ts b/packages/render/src/traits.ts new file mode 100644 index 000000000..a88740e2f --- /dev/null +++ b/packages/render/src/traits.ts @@ -0,0 +1,44 @@ +/** + * Render SDK trait surface — hand-written. + * + * Re-exports the generic protocol traits from core (so generated operations + * import everything from one place). Render has no envelope of its own; the + * REST-protocol traits (SensitiveValue / RawResponse) come from + * `core/protocol-rest`. + */ +export { + Body, + Header, + Query, + Label, + Http, + ResponseCode, + HttpBody, + FormDataFile, + KeyDictionary, + UnionCases, + applyErrorMatchers, + getErrorMatchers, + type HttpTrait, + type ErrorMatcher, + bodySymbol, + headerSymbol, + querySymbol, + labelSymbol, + httpSymbol, + responseCodeSymbol, + httpBodySymbol, + formDataFileSymbol, + keyDictionarySymbol, + unionCasesSymbol, + errorMatchersSymbol, +} from "@distilled.cloud/core/trait"; + +export { + SensitiveValue, + RawResponse, + RawResponseRoot, + sensitiveValueSymbol, + rawResponseSymbol, + rawResponseRootSymbol, +} from "@distilled.cloud/core/protocol-rest"; diff --git a/packages/render/tsconfig.json b/packages/render/tsconfig.json new file mode 100644 index 000000000..56b16e575 --- /dev/null +++ b/packages/render/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["src/**/*.ts"], + "compilerOptions": { + "composite": true, + "noEmit": false, + "outDir": "./lib", + "rootDir": "./src", + "paths": { + "@distilled.cloud/core/*": ["../core/src/*"] + } + }, + "references": [{ "path": "../core" }] +} diff --git a/packages/render/tsconfig.scripts.json b/packages/render/tsconfig.scripts.json new file mode 100644 index 000000000..be37c3474 --- /dev/null +++ b/packages/render/tsconfig.scripts.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.base.json", + "include": ["scripts/**/*.ts"], + "compilerOptions": { + "composite": true, + "noEmit": false, + "emitDeclarationOnly": true, + "outDir": "./.scripts-types", + "rootDir": "./scripts", + "tsBuildInfoFile": "./.scripts-types/tsconfig.scripts.tsbuildinfo", + // Resolve @distilled.cloud/core/* to src (the bun condition), matching + // how the scripts actually run under bun. + "rewriteRelativeImportExtensions": false, + "customConditions": ["bun"] + }, + "references": [{ "path": "../core" }] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6a5b177f1..ad8ed32d6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -522,6 +522,25 @@ importers: specifier: catalog:tooling version: 26.4.0 + packages/render: + dependencies: + '@distilled.cloud/core': + specifier: workspace:* + version: link:../core + effect: + specifier: catalog:effect + version: 4.0.0-rc.112 + devDependencies: + '@effect/platform-bun': + specifier: catalog:effect + version: 4.0.0-rc.112(effect@4.0.0-rc.112) + '@types/bun': + specifier: catalog:tooling + version: 1.4.0 + '@types/node': + specifier: catalog:tooling + version: 26.4.0 + packages/stripe: dependencies: '@distilled.cloud/core': diff --git a/stacks/distilled-submodules/SpecRepos.ts b/stacks/distilled-submodules/SpecRepos.ts index 97e991a7b..278691831 100644 --- a/stacks/distilled-submodules/SpecRepos.ts +++ b/stacks/distilled-submodules/SpecRepos.ts @@ -69,6 +69,7 @@ export const SPEC_REPOS: readonly SpecRepo[] = [ { package: "posthog" }, { package: "prisma-postgres" }, { package: "railway" }, + { package: "render" }, { package: "stripe" }, { package: "supabase" }, { package: "turso" }, diff --git a/stacks/distilled-submodules/spec-repos/render/fetch-specs.ts b/stacks/distilled-submodules/spec-repos/render/fetch-specs.ts new file mode 100644 index 000000000..57ea4c92d --- /dev/null +++ b/stacks/distilled-submodules/spec-repos/render/fetch-specs.ts @@ -0,0 +1,98 @@ +#!/usr/bin/env bun +/** + * Fetches the Render Public API OpenAPI spec (and a snapshot of the vendor + * API docs page) to ../specs/. + * + * Render publishes ONE OpenAPI 3.0.2 document — the same file its API + * reference (api-docs.render.com) and docs (render.com/docs/api) point at. + * There is no git repo and no versioned URL, so the mirror snapshots it. + * + * Usage: + * bun run fetch-specs.ts + * + * Written to: + * ../specs/openapi.json + * ../specs/api-docs.html + */ + +const OPENAPI_SPEC_URL = + "https://api-docs.render.com/openapi/render-public-api-1.json"; +const DOCS_URL = "https://render.com/docs/api"; +const SPECS_DIR = "../specs"; +const OUTPUT_PATH = `${SPECS_DIR}/openapi.json`; +const DOCS_PATH = `${SPECS_DIR}/api-docs.html`; + +import { existsSync, mkdirSync } from "fs"; + +if (!existsSync(SPECS_DIR)) { + mkdirSync(SPECS_DIR, { recursive: true }); +} + +async function fetchJson(url: string): Promise> { + const response = await fetch(url, { + headers: { + accept: "application/json", + "user-agent": "distilled.cloud-render-spec-mirror", + }, + }); + + if (!response.ok) { + throw new Error( + `Failed to fetch ${url}: ${response.status} ${response.statusText}`, + ); + } + + return (await response.json()) as Record; +} + +async function fetchText(url: string): Promise { + const response = await fetch(url, { + headers: { + accept: "text/html, text/markdown;q=0.9, */*;q=0.8", + "user-agent": "distilled.cloud-render-spec-mirror", + }, + }); + + if (!response.ok) { + throw new Error( + `Failed to fetch ${url}: ${response.status} ${response.statusText}`, + ); + } + + return await response.text(); +} + +async function main() { + console.log(`Fetching OpenAPI spec from ${OPENAPI_SPEC_URL}...`); + + const spec = await fetchJson(OPENAPI_SPEC_URL); + + // Fail here rather than three steps later in the generator: a login page or + // a gutted response is still valid JSON, but it is not an OpenAPI document. + if (typeof spec.openapi !== "string" || spec.paths === undefined) { + throw new Error( + `${OPENAPI_SPEC_URL} returned JSON without \`openapi\`/\`paths\` — not an OpenAPI document`, + ); + } + + console.log(`Writing spec to ${OUTPUT_PATH}...`); + // 2-space indent + trailing newline so a whitespace-only change upstream + // produces no diff. + await Bun.write(OUTPUT_PATH, JSON.stringify(spec, null, 2) + "\n"); + + console.log(`Fetching vendor docs from ${DOCS_URL}...`); + const docs = await fetchText(DOCS_URL); + if (docs.trim().length === 0) { + throw new Error(`${DOCS_URL} returned an empty document`); + } + await Bun.write(DOCS_PATH, docs.endsWith("\n") ? docs : docs + "\n"); + + console.log( + `Done! OpenAPI ${spec.openapi} — ${Object.keys(spec.paths as object).length} paths`, + ); +} + +main().catch((err) => { + console.error("Fatal error:", err); + process.exit(1); +}); diff --git a/stacks/distilled-submodules/spec-repos/render/package.json b/stacks/distilled-submodules/spec-repos/render/package.json new file mode 100644 index 000000000..3563b5e60 --- /dev/null +++ b/stacks/distilled-submodules/spec-repos/render/package.json @@ -0,0 +1,27 @@ +{ + "name": "render-spec", + "private": true, + "type": "module", + "scripts": { + "fetch-specs": "bun run fetch-specs.ts", + "tsc": "tsc --noEmit", + "lint": "oxlint .", + "fmt": "oxfmt --write .", + "fmt:check": "oxfmt --check .", + "check": "bun run tsc && bun run lint && bun run fmt:check" + }, + "workspaces": { + "catalog": { + "@typescript/native-preview": "latest", + "oxfmt": "0.21.0", + "oxlint": "1.36.0" + } + }, + "dependencies": { + "@typescript/native-preview": "catalog:" + }, + "devDependencies": { + "oxfmt": "catalog:", + "oxlint": "catalog:" + } +} diff --git a/stacks/distilled-submodules/spec-repos/render/readme.md b/stacks/distilled-submodules/spec-repos/render/readme.md new file mode 100644 index 000000000..fa7b4feaa --- /dev/null +++ b/stacks/distilled-submodules/spec-repos/render/readme.md @@ -0,0 +1,26 @@ +# spec-mirror-render + +A git mirror of Render's [OpenAPI spec](https://api-docs.render.com/openapi/render-public-api-1.json). The spec is fetched and committed as a JSON file so the repo serves as a versioned snapshot. The vendor API docs page at [render.com/docs/api](https://render.com/docs/api) is snapshotted alongside it. + +The mirror is updated every 24 hours and is designed to be used as a stable git submodule. + +## Usage as a submodule + +```sh +git submodule add https://github.com/distilled-mirror/spec-mirror-render.git +``` + +## Updating specs + +From `.meta/`: + +```sh +bun install +bun run fetch-specs +``` + +--- + +This repository is managed by the `distilled-submodules` Alchemy stack in +[alchemy-run/distilled](https://github.com/alchemy-run/distilled) (`stacks/distilled-submodules`). +Its scaffolding is generated — edit it there, not here. diff --git a/tsconfig.json b/tsconfig.json index 7289e61be..36b8083e1 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,60 +1,176 @@ { "files": [], "references": [ - { "path": "./packages/core/tsconfig.json" }, - { "path": "./packages/cloudflare/tsconfig.json" }, - { "path": "./packages/cloudflare/tsconfig.scripts.json" }, - { "path": "./packages/aws/tsconfig.json" }, - { "path": "./packages/aws/tsconfig.scripts.json" }, - { "path": "./packages/axiom/tsconfig.json" }, - { "path": "./packages/axiom/tsconfig.scripts.json" }, - { "path": "./packages/azure/tsconfig.json" }, - { "path": "./packages/azure/tsconfig.scripts.json" }, - { "path": "./packages/coinbase/tsconfig.json" }, - { "path": "./packages/coinbase/tsconfig.scripts.json" }, - { "path": "./packages/discord/tsconfig.json" }, - { "path": "./packages/discord/tsconfig.scripts.json" }, - { "path": "./packages/expo-eas/tsconfig.json" }, - { "path": "./packages/expo-eas/tsconfig.scripts.json" }, - { "path": "./packages/fly-io/tsconfig.json" }, - { "path": "./packages/fly-io/tsconfig.scripts.json" }, - { "path": "./packages/gcp/tsconfig.json" }, - { "path": "./packages/gcp/tsconfig.scripts.json" }, - { "path": "./packages/github/tsconfig.json" }, - { "path": "./packages/github/tsconfig.scripts.json" }, - { "path": "./packages/hetzner/tsconfig.json" }, - { "path": "./packages/hetzner/tsconfig.scripts.json" }, - { "path": "./packages/huggingface/tsconfig.json" }, - { "path": "./packages/huggingface/tsconfig.scripts.json" }, - { "path": "./packages/kubernetes/tsconfig.json" }, - { "path": "./packages/kubernetes/tsconfig.scripts.json" }, - { "path": "./packages/mongodb-atlas/tsconfig.json" }, - { "path": "./packages/mongodb-atlas/tsconfig.scripts.json" }, - { "path": "./packages/modal/tsconfig.json" }, - { "path": "./packages/modal/tsconfig.scripts.json" }, - { "path": "./packages/neon/tsconfig.json" }, - { "path": "./packages/neon/tsconfig.scripts.json" }, - { "path": "./packages/planetscale/tsconfig.json" }, - { "path": "./packages/planetscale/tsconfig.scripts.json" }, - { "path": "./packages/posthog/tsconfig.json" }, - { "path": "./packages/posthog/tsconfig.scripts.json" }, - { "path": "./packages/prisma-postgres/tsconfig.json" }, - { "path": "./packages/prisma-postgres/tsconfig.scripts.json" }, - { "path": "./packages/railway/tsconfig.json" }, - { "path": "./packages/railway/tsconfig.scripts.json" }, - { "path": "./packages/stripe/tsconfig.json" }, - { "path": "./packages/stripe/tsconfig.scripts.json" }, - { "path": "./packages/supabase/tsconfig.json" }, - { "path": "./packages/supabase/tsconfig.scripts.json" }, - { "path": "./packages/turso/tsconfig.json" }, - { "path": "./packages/turso/tsconfig.scripts.json" }, - { "path": "./packages/typesense/tsconfig.json" }, - { "path": "./packages/typesense/tsconfig.scripts.json" }, - { "path": "./packages/vercel/tsconfig.json" }, - { "path": "./packages/vercel/tsconfig.scripts.json" }, - { "path": "./packages/whop/tsconfig.json" }, - { "path": "./packages/whop/tsconfig.scripts.json" }, - { "path": "./packages/workos/tsconfig.json" }, - { "path": "./packages/workos/tsconfig.scripts.json" } + { + "path": "./packages/core/tsconfig.json" + }, + { + "path": "./packages/cloudflare/tsconfig.json" + }, + { + "path": "./packages/cloudflare/tsconfig.scripts.json" + }, + { + "path": "./packages/aws/tsconfig.json" + }, + { + "path": "./packages/aws/tsconfig.scripts.json" + }, + { + "path": "./packages/axiom/tsconfig.json" + }, + { + "path": "./packages/axiom/tsconfig.scripts.json" + }, + { + "path": "./packages/azure/tsconfig.json" + }, + { + "path": "./packages/azure/tsconfig.scripts.json" + }, + { + "path": "./packages/coinbase/tsconfig.json" + }, + { + "path": "./packages/coinbase/tsconfig.scripts.json" + }, + { + "path": "./packages/discord/tsconfig.json" + }, + { + "path": "./packages/discord/tsconfig.scripts.json" + }, + { + "path": "./packages/expo-eas/tsconfig.json" + }, + { + "path": "./packages/expo-eas/tsconfig.scripts.json" + }, + { + "path": "./packages/fly-io/tsconfig.json" + }, + { + "path": "./packages/fly-io/tsconfig.scripts.json" + }, + { + "path": "./packages/gcp/tsconfig.json" + }, + { + "path": "./packages/gcp/tsconfig.scripts.json" + }, + { + "path": "./packages/github/tsconfig.json" + }, + { + "path": "./packages/github/tsconfig.scripts.json" + }, + { + "path": "./packages/hetzner/tsconfig.json" + }, + { + "path": "./packages/hetzner/tsconfig.scripts.json" + }, + { + "path": "./packages/huggingface/tsconfig.json" + }, + { + "path": "./packages/huggingface/tsconfig.scripts.json" + }, + { + "path": "./packages/kubernetes/tsconfig.json" + }, + { + "path": "./packages/kubernetes/tsconfig.scripts.json" + }, + { + "path": "./packages/modal/tsconfig.json" + }, + { + "path": "./packages/modal/tsconfig.scripts.json" + }, + { + "path": "./packages/mongodb-atlas/tsconfig.json" + }, + { + "path": "./packages/mongodb-atlas/tsconfig.scripts.json" + }, + { + "path": "./packages/neon/tsconfig.json" + }, + { + "path": "./packages/neon/tsconfig.scripts.json" + }, + { + "path": "./packages/planetscale/tsconfig.json" + }, + { + "path": "./packages/planetscale/tsconfig.scripts.json" + }, + { + "path": "./packages/posthog/tsconfig.json" + }, + { + "path": "./packages/posthog/tsconfig.scripts.json" + }, + { + "path": "./packages/prisma-postgres/tsconfig.json" + }, + { + "path": "./packages/prisma-postgres/tsconfig.scripts.json" + }, + { + "path": "./packages/railway/tsconfig.json" + }, + { + "path": "./packages/railway/tsconfig.scripts.json" + }, + { + "path": "./packages/render/tsconfig.json" + }, + { + "path": "./packages/render/tsconfig.scripts.json" + }, + { + "path": "./packages/stripe/tsconfig.json" + }, + { + "path": "./packages/stripe/tsconfig.scripts.json" + }, + { + "path": "./packages/supabase/tsconfig.json" + }, + { + "path": "./packages/supabase/tsconfig.scripts.json" + }, + { + "path": "./packages/turso/tsconfig.json" + }, + { + "path": "./packages/turso/tsconfig.scripts.json" + }, + { + "path": "./packages/typesense/tsconfig.json" + }, + { + "path": "./packages/typesense/tsconfig.scripts.json" + }, + { + "path": "./packages/vercel/tsconfig.json" + }, + { + "path": "./packages/vercel/tsconfig.scripts.json" + }, + { + "path": "./packages/whop/tsconfig.json" + }, + { + "path": "./packages/whop/tsconfig.scripts.json" + }, + { + "path": "./packages/workos/tsconfig.json" + }, + { + "path": "./packages/workos/tsconfig.scripts.json" + } ] }