{
  "components": {
    "schemas": {
      "AcceptIn": {
        "properties": {
          "full_name": {
            "default": "",
            "maxLength": 150,
            "title": "Full Name",
            "type": "string"
          },
          "password": {
            "anyOf": [
              {
                "maxLength": 4096,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Password"
          }
        },
        "title": "AcceptIn",
        "type": "object"
      },
      "AcceptOut": {
        "properties": {
          "created_account": {
            "title": "Created Account",
            "type": "boolean"
          },
          "email": {
            "title": "Email",
            "type": "string"
          },
          "organization_id": {
            "title": "Organization Id",
            "type": "string"
          },
          "user_id": {
            "title": "User Id",
            "type": "string"
          }
        },
        "required": [
          "organization_id",
          "user_id",
          "email",
          "created_account"
        ],
        "title": "AcceptOut",
        "type": "object"
      },
      "AccessKeyCreatedOut": {
        "properties": {
          "allowed_cidrs": {
            "items": {
              "type": "string"
            },
            "title": "Allowed Cidrs",
            "type": "array"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "disables_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Disables At"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "last_used_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Used At"
          },
          "last_used_ip": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Used Ip"
          },
          "owner": {
            "title": "Owner",
            "type": "string"
          },
          "secret": {
            "title": "Secret",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "status_reason": {
            "title": "Status Reason",
            "type": "string"
          },
          "token": {
            "title": "Token",
            "type": "string"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "owner",
          "description",
          "status",
          "status_reason",
          "expires_at",
          "allowed_cidrs",
          "created_at",
          "last_used_at",
          "last_used_ip",
          "disables_at",
          "secret",
          "token"
        ],
        "title": "AccessKeyCreatedOut",
        "type": "object"
      },
      "AccessKeyIn": {
        "properties": {
          "allowed_cidrs": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "title": "Allowed Cidrs",
            "type": "array"
          },
          "description": {
            "default": "",
            "maxLength": 255,
            "title": "Description",
            "type": "string"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "never_expires": {
            "default": false,
            "title": "Never Expires",
            "type": "boolean"
          }
        },
        "title": "AccessKeyIn",
        "type": "object"
      },
      "AccessKeyOut": {
        "properties": {
          "allowed_cidrs": {
            "items": {
              "type": "string"
            },
            "title": "Allowed Cidrs",
            "type": "array"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "disables_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Disables At"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "last_used_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Used At"
          },
          "last_used_ip": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Used Ip"
          },
          "owner": {
            "title": "Owner",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "status_reason": {
            "title": "Status Reason",
            "type": "string"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "owner",
          "description",
          "status",
          "status_reason",
          "expires_at",
          "allowed_cidrs",
          "created_at",
          "last_used_at",
          "last_used_ip",
          "disables_at"
        ],
        "title": "AccessKeyOut",
        "type": "object"
      },
      "AccessKeyPatch": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "status": {
            "anyOf": [
              {
                "pattern": "^(active|inactive)$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          }
        },
        "title": "AccessKeyPatch",
        "type": "object"
      },
      "ActivityEventOut": {
        "properties": {
          "action": {
            "title": "Action",
            "type": "string"
          },
          "at": {
            "format": "date-time",
            "title": "At",
            "type": "string"
          },
          "decision": {
            "additionalProperties": true,
            "title": "Decision",
            "type": "object"
          },
          "details": {
            "additionalProperties": true,
            "title": "Details",
            "type": "object"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "outcome": {
            "title": "Outcome",
            "type": "string"
          },
          "principal": {
            "title": "Principal",
            "type": "string"
          },
          "principal_name": {
            "title": "Principal Name",
            "type": "string"
          },
          "principal_type": {
            "title": "Principal Type",
            "type": "string"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "request_id": {
            "title": "Request Id",
            "type": "string"
          },
          "resource": {
            "title": "Resource",
            "type": "string"
          },
          "resource_id": {
            "title": "Resource Id",
            "type": "string"
          },
          "resource_type": {
            "title": "Resource Type",
            "type": "string"
          },
          "source_ip": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Ip"
          },
          "user_agent": {
            "title": "User Agent",
            "type": "string"
          }
        },
        "required": [
          "id",
          "at",
          "principal",
          "principal_name",
          "principal_type",
          "action",
          "resource",
          "resource_type",
          "resource_id",
          "project_id",
          "outcome",
          "details",
          "decision",
          "source_ip",
          "user_agent",
          "request_id"
        ],
        "title": "ActivityEventOut",
        "type": "object"
      },
      "ActivityPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/ActivityEventOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "ActivityPage",
        "type": "object"
      },
      "ActivityQuery": {
        "properties": {
          "cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cursor"
          },
          "limit": {
            "default": 50,
            "maximum": 200,
            "minimum": 1,
            "title": "Limit",
            "type": "integer"
          }
        },
        "title": "ActivityQuery",
        "type": "object"
      },
      "AlertOut": {
        "properties": {
          "body": {
            "title": "Body",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "link": {
            "title": "Link",
            "type": "string"
          },
          "severity": {
            "enum": [
              "critical",
              "warning",
              "info"
            ],
            "title": "Severity",
            "type": "string"
          },
          "since": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Since"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "id",
          "kind",
          "severity",
          "title",
          "body",
          "link",
          "since"
        ],
        "title": "AlertOut",
        "type": "object"
      },
      "AlertsOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/AlertOut"
            },
            "title": "Items",
            "type": "array"
          }
        },
        "required": [
          "items"
        ],
        "title": "AlertsOut",
        "type": "object"
      },
      "AssistantCheckOut": {
        "properties": {
          "label": {
            "title": "Label",
            "type": "string"
          },
          "ok": {
            "title": "Ok",
            "type": "boolean"
          }
        },
        "required": [
          "label",
          "ok"
        ],
        "title": "AssistantCheckOut",
        "type": "object"
      },
      "AssistantChecksMessageOut": {
        "properties": {
          "checks": {
            "items": {
              "$ref": "#/components/schemas/AssistantCheckOut"
            },
            "title": "Checks",
            "type": "array"
          },
          "kind": {
            "const": "checks",
            "title": "Kind",
            "type": "string"
          },
          "note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Note"
          },
          "proposal": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AssistantProposalOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "title",
          "checks",
          "note",
          "proposal"
        ],
        "title": "AssistantChecksMessageOut",
        "type": "object"
      },
      "AssistantConfirmIn": {
        "description": "No fields: the proposal already says everything.",
        "properties": {},
        "title": "AssistantConfirmIn",
        "type": "object"
      },
      "AssistantDoneMessageOut": {
        "properties": {
          "kind": {
            "const": "done",
            "title": "Kind",
            "type": "string"
          },
          "link": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AssistantLinkOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "text": {
            "title": "Text",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "text",
          "link"
        ],
        "title": "AssistantDoneMessageOut",
        "type": "object"
      },
      "AssistantLinkOut": {
        "properties": {
          "label": {
            "title": "Label",
            "type": "string"
          },
          "resource_id": {
            "title": "Resource Id",
            "type": "string"
          },
          "resource_kind": {
            "enum": [
              "vm",
              "security_group",
              "ticket",
              "project"
            ],
            "title": "Resource Kind",
            "type": "string"
          }
        },
        "required": [
          "label",
          "resource_kind",
          "resource_id"
        ],
        "title": "AssistantLinkOut",
        "type": "object"
      },
      "AssistantMessageIn": {
        "properties": {
          "text": {
            "maxLength": 2000,
            "minLength": 1,
            "title": "Text",
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "title": "AssistantMessageIn",
        "type": "object"
      },
      "AssistantMessagesOut": {
        "properties": {
          "messages": {
            "items": {
              "discriminator": {
                "mapping": {
                  "checks": "#/components/schemas/AssistantChecksMessageOut",
                  "done": "#/components/schemas/AssistantDoneMessageOut",
                  "text": "#/components/schemas/AssistantTextMessageOut"
                },
                "propertyName": "kind"
              },
              "oneOf": [
                {
                  "$ref": "#/components/schemas/AssistantTextMessageOut"
                },
                {
                  "$ref": "#/components/schemas/AssistantChecksMessageOut"
                },
                {
                  "$ref": "#/components/schemas/AssistantDoneMessageOut"
                }
              ]
            },
            "title": "Messages",
            "type": "array"
          }
        },
        "required": [
          "messages"
        ],
        "title": "AssistantMessagesOut",
        "type": "object"
      },
      "AssistantProposalOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "string"
          },
          "label": {
            "description": "What the confirm button says",
            "title": "Label",
            "type": "string"
          },
          "summary": {
            "description": "Exactly what confirming does",
            "title": "Summary",
            "type": "string"
          }
        },
        "required": [
          "id",
          "label",
          "summary"
        ],
        "title": "AssistantProposalOut",
        "type": "object"
      },
      "AssistantTextMessageOut": {
        "properties": {
          "kind": {
            "const": "text",
            "title": "Kind",
            "type": "string"
          },
          "text": {
            "title": "Text",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "text"
        ],
        "title": "AssistantTextMessageOut",
        "type": "object"
      },
      "AssociateIn": {
        "properties": {
          "nat_gateway_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Nat Gateway Id"
          },
          "vm_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Vm Id"
          }
        },
        "title": "AssociateIn",
        "type": "object"
      },
      "AssumeRoleIn": {
        "properties": {
          "duration_seconds": {
            "anyOf": [
              {
                "minimum": 900,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Duration Seconds"
          },
          "policy": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Policy"
          },
          "session_name": {
            "maxLength": 64,
            "minLength": 2,
            "title": "Session Name",
            "type": "string"
          }
        },
        "required": [
          "session_name"
        ],
        "title": "AssumeRoleIn",
        "type": "object"
      },
      "AttachVolumeIn": {
        "properties": {
          "vm_id": {
            "title": "Vm Id",
            "type": "string"
          }
        },
        "required": [
          "vm_id"
        ],
        "title": "AttachVolumeIn",
        "type": "object"
      },
      "BillingOut": {
        "properties": {
          "account_reference": {
            "title": "Account Reference",
            "type": "string"
          },
          "available": {
            "title": "Available",
            "type": "string"
          },
          "available_micro": {
            "title": "Available Micro",
            "type": "integer"
          },
          "contacts": {
            "items": {
              "type": "string"
            },
            "title": "Contacts",
            "type": "array"
          },
          "credit_limit_micro": {
            "title": "Credit Limit Micro",
            "type": "integer"
          },
          "currency": {
            "default": "USD",
            "title": "Currency",
            "type": "string"
          },
          "organization_id": {
            "title": "Organization Id",
            "type": "string"
          },
          "payment_methods": {
            "items": {
              "$ref": "#/components/schemas/PaymentMethodOut"
            },
            "title": "Payment Methods",
            "type": "array"
          },
          "promo": {
            "title": "Promo",
            "type": "string"
          },
          "promo_micro": {
            "title": "Promo Micro",
            "type": "integer"
          },
          "run_rate_micro_per_hour": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Run Rate Micro Per Hour"
          },
          "runway_hours": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Runway Hours"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "state_since": {
            "format": "date-time",
            "title": "State Since",
            "type": "string"
          },
          "wallet": {
            "title": "Wallet",
            "type": "string"
          },
          "wallet_micro": {
            "title": "Wallet Micro",
            "type": "integer"
          }
        },
        "required": [
          "organization_id",
          "wallet_micro",
          "promo_micro",
          "available_micro",
          "wallet",
          "promo",
          "available",
          "state",
          "state_since",
          "credit_limit_micro",
          "contacts",
          "account_reference",
          "payment_methods"
        ],
        "title": "BillingOut",
        "type": "object"
      },
      "BillingPatch": {
        "properties": {
          "contacts": {
            "items": {
              "maxLength": 254,
              "type": "string"
            },
            "maxItems": 10,
            "title": "Contacts",
            "type": "array"
          }
        },
        "required": [
          "contacts"
        ],
        "title": "BillingPatch",
        "type": "object"
      },
      "BucketIn": {
        "properties": {
          "description": {
            "default": "",
            "maxLength": 255,
            "title": "Description",
            "type": "string"
          },
          "max_size_gib": {
            "anyOf": [
              {
                "maximum": 100000,
                "minimum": 1,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Size Gib"
          },
          "name": {
            "description": "The S3 bucket name: 3-63 lowercase letters, digits and '-', unique in the region",
            "title": "Name",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "default": {},
            "title": "Tags",
            "type": "object"
          },
          "visibility": {
            "default": "private",
            "enum": [
              "private",
              "public-read"
            ],
            "title": "Visibility",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "BucketIn",
        "type": "object"
      },
      "BucketOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "endpoint": {
            "title": "Endpoint",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "max_size_gib": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Size Gib"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "object_count": {
            "title": "Object Count",
            "type": "integer"
          },
          "observed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Observed At"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "status_message": {
            "title": "Status Message",
            "type": "string"
          },
          "stored_bytes": {
            "description": "As the controller last observed it (about 1 min)",
            "title": "Stored Bytes",
            "type": "integer"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Tags",
            "type": "object"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "url": {
            "description": "Path-style URL of the bucket",
            "title": "Url",
            "type": "string"
          },
          "visibility": {
            "title": "Visibility",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "description",
          "tags",
          "state",
          "status_message",
          "created_at",
          "updated_at",
          "project_id",
          "visibility",
          "max_size_gib",
          "stored_bytes",
          "object_count",
          "endpoint",
          "url",
          "observed_at"
        ],
        "title": "BucketOut",
        "type": "object"
      },
      "BucketPatch": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "max_size_gib": {
            "anyOf": [
              {
                "maximum": 100000,
                "minimum": 0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "0 removes the bucket's own size cap",
            "title": "Max Size Gib"
          },
          "tags": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tags"
          },
          "visibility": {
            "anyOf": [
              {
                "enum": [
                  "private",
                  "public-read"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Visibility"
          }
        },
        "title": "BucketPatch",
        "type": "object"
      },
      "CountryOut": {
        "properties": {
          "code": {
            "title": "Code",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "code",
          "name"
        ],
        "title": "CountryOut",
        "type": "object"
      },
      "CreatedOrganizationOut": {
        "properties": {
          "country": {
            "title": "Country",
            "type": "string"
          },
          "home_region": {
            "title": "Home Region",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "tier": {
            "title": "Tier",
            "type": "string"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "status",
          "country",
          "home_region",
          "tier"
        ],
        "title": "CreatedOrganizationOut",
        "type": "object"
      },
      "CredentialReportOut": {
        "properties": {
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "organization_id": {
            "title": "Organization Id",
            "type": "string"
          },
          "principals": {
            "items": {
              "$ref": "#/components/schemas/ReportPrincipalOut"
            },
            "title": "Principals",
            "type": "array"
          },
          "unused_key_disable_days": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unused Key Disable Days"
          }
        },
        "required": [
          "organization_id",
          "generated_at",
          "unused_key_disable_days",
          "principals"
        ],
        "title": "CredentialReportOut",
        "type": "object"
      },
      "CredentialsOut": {
        "properties": {
          "access_key_id": {
            "title": "Access Key Id",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "role_trn": {
            "title": "Role Trn",
            "type": "string"
          },
          "secret": {
            "title": "Secret",
            "type": "string"
          },
          "session_id": {
            "title": "Session Id",
            "type": "string"
          },
          "session_trn": {
            "title": "Session Trn",
            "type": "string"
          },
          "token": {
            "title": "Token",
            "type": "string"
          }
        },
        "required": [
          "session_id",
          "session_trn",
          "role_trn",
          "access_key_id",
          "secret",
          "token",
          "expires_at"
        ],
        "title": "CredentialsOut",
        "type": "object"
      },
      "DecidingStatementOut": {
        "properties": {
          "effect": {
            "title": "Effect",
            "type": "string"
          },
          "layer": {
            "title": "Layer",
            "type": "string"
          },
          "policy": {
            "title": "Policy",
            "type": "string"
          },
          "policy_id": {
            "title": "Policy Id",
            "type": "string"
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          },
          "sid": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sid"
          },
          "version": {
            "title": "Version",
            "type": "integer"
          }
        },
        "required": [
          "layer",
          "policy",
          "policy_id",
          "version",
          "effect"
        ],
        "title": "DecidingStatementOut",
        "type": "object"
      },
      "DefaultVersionIn": {
        "properties": {
          "version": {
            "title": "Version",
            "type": "integer"
          }
        },
        "required": [
          "version"
        ],
        "title": "DefaultVersionIn",
        "type": "object"
      },
      "DnsImportOut": {
        "properties": {
          "created": {
            "title": "Created",
            "type": "integer"
          },
          "deleted": {
            "title": "Deleted",
            "type": "integer"
          },
          "skipped": {
            "items": {
              "$ref": "#/components/schemas/DnsSkippedOut"
            },
            "title": "Skipped",
            "type": "array"
          },
          "unchanged": {
            "title": "Unchanged",
            "type": "integer"
          },
          "updated": {
            "title": "Updated",
            "type": "integer"
          }
        },
        "required": [
          "created",
          "updated",
          "unchanged",
          "deleted",
          "skipped"
        ],
        "title": "DnsImportOut",
        "type": "object"
      },
      "DnsRecordIn": {
        "properties": {
          "description": {
            "default": "",
            "maxLength": 255,
            "title": "Description",
            "type": "string"
          },
          "name": {
            "default": "@",
            "description": "Relative to the zone (www, _dmarc, *); @ is the apex",
            "title": "Name",
            "type": "string"
          },
          "ttl": {
            "default": 3600,
            "description": "Seconds",
            "maximum": 86400,
            "minimum": 60,
            "title": "Ttl",
            "type": "integer"
          },
          "type": {
            "enum": [
              "A",
              "AAAA",
              "CNAME",
              "MX",
              "TXT",
              "SRV",
              "CAA",
              "NS"
            ],
            "title": "Type",
            "type": "string"
          },
          "values": {
            "description": "Presentation format, one per record: '192.0.2.1', '10 mail.example.com', 'v=spf1 -all', '0 issue \"letsencrypt.org\"'",
            "items": {
              "type": "string"
            },
            "maxItems": 100,
            "minItems": 1,
            "title": "Values",
            "type": "array"
          }
        },
        "required": [
          "type",
          "values"
        ],
        "title": "DnsRecordIn",
        "type": "object"
      },
      "DnsRecordOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "fqdn": {
            "title": "Fqdn",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "description": "Relative to the zone; @ is the apex",
            "title": "Name",
            "type": "string"
          },
          "ttl": {
            "title": "Ttl",
            "type": "integer"
          },
          "type": {
            "title": "Type",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "values": {
            "items": {
              "type": "string"
            },
            "title": "Values",
            "type": "array"
          },
          "zone_id": {
            "title": "Zone Id",
            "type": "string"
          }
        },
        "required": [
          "id",
          "zone_id",
          "name",
          "fqdn",
          "type",
          "ttl",
          "values",
          "description",
          "created_at",
          "updated_at"
        ],
        "title": "DnsRecordOut",
        "type": "object"
      },
      "DnsRecordPatch": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "ttl": {
            "anyOf": [
              {
                "maximum": 86400,
                "minimum": 60,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Ttl"
          },
          "values": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "maxItems": 100,
                "minItems": 1,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Values"
          }
        },
        "title": "DnsRecordPatch",
        "type": "object"
      },
      "DnsSkippedOut": {
        "properties": {
          "name": {
            "title": "Name",
            "type": "string"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "type": {
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "name",
          "type",
          "reason"
        ],
        "title": "DnsSkippedOut",
        "type": "object"
      },
      "DnsVerificationOut": {
        "properties": {
          "last_checked_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Checked At"
          },
          "message": {
            "title": "Message",
            "type": "string"
          },
          "method": {
            "anyOf": [
              {
                "enum": [
                  "ns",
                  "txt",
                  "staff"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "How the domain was proved: ns (delegated to our nameservers), txt (the TXT record) or staff",
            "title": "Method"
          },
          "next_check_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Check At"
          },
          "state": {
            "enum": [
              "pending",
              "verified",
              "conflict"
            ],
            "title": "State",
            "type": "string"
          },
          "txt_name": {
            "description": "Publish this TXT record to prove control of the domain",
            "title": "Txt Name",
            "type": "string"
          },
          "txt_value": {
            "title": "Txt Value",
            "type": "string"
          }
        },
        "required": [
          "state",
          "method",
          "txt_name",
          "txt_value",
          "message",
          "last_checked_at",
          "next_check_at"
        ],
        "title": "DnsVerificationOut",
        "type": "object"
      },
      "DnsVmRecordsIn": {
        "properties": {
          "ipv4": {
            "default": true,
            "description": "An A record for the VM's public IPv4 address",
            "title": "Ipv4",
            "type": "boolean"
          },
          "ipv6": {
            "default": true,
            "description": "An AAAA record for the VM's public IPv6 address",
            "title": "Ipv6",
            "type": "boolean"
          },
          "name": {
            "description": "Relative to the zone; @ is the apex",
            "title": "Name",
            "type": "string"
          },
          "ttl": {
            "default": 3600,
            "description": "Seconds",
            "maximum": 86400,
            "minimum": 60,
            "title": "Ttl",
            "type": "integer"
          },
          "vm_id": {
            "title": "Vm Id",
            "type": "string"
          }
        },
        "required": [
          "name",
          "vm_id"
        ],
        "title": "DnsVmRecordsIn",
        "type": "object"
      },
      "DnsZoneFileIn": {
        "properties": {
          "delete_missing": {
            "default": false,
            "description": "Also delete the zone's record sets the file doesn't have (default: add and replace the file's record sets, keep the rest)",
            "title": "Delete Missing",
            "type": "boolean"
          },
          "zone_file": {
            "description": "BIND zone file text",
            "maxLength": 1000000,
            "title": "Zone File",
            "type": "string"
          }
        },
        "required": [
          "zone_file"
        ],
        "title": "DnsZoneFileIn",
        "type": "object"
      },
      "DnsZoneFileOut": {
        "properties": {
          "zone_file": {
            "title": "Zone File",
            "type": "string"
          }
        },
        "required": [
          "zone_file"
        ],
        "title": "DnsZoneFileOut",
        "type": "object"
      },
      "DnsZoneIn": {
        "properties": {
          "description": {
            "default": "",
            "maxLength": 255,
            "title": "Description",
            "type": "string"
          },
          "domain": {
            "description": "e.g. example.com (non-ASCII names are stored as punycode)",
            "title": "Domain",
            "type": "string"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Defaults to the domain",
            "title": "Name"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "default": {},
            "title": "Tags",
            "type": "object"
          }
        },
        "required": [
          "domain"
        ],
        "title": "DnsZoneIn",
        "type": "object"
      },
      "DnsZoneOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "delegation_ok": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "The domain's delegation points at our nameservers (checked every few hours once served; null: not checked yet)",
            "title": "Delegation Ok"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "domain": {
            "title": "Domain",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "nameservers": {
            "description": "Delegate the domain to these at your registrar",
            "items": {
              "type": "string"
            },
            "title": "Nameservers",
            "type": "array"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "record_sets": {
            "title": "Record Sets",
            "type": "integer"
          },
          "serial": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Serial"
          },
          "served": {
            "description": "Our nameservers answer for the zone",
            "title": "Served",
            "type": "boolean"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "status": {
            "description": "pending_verification: not served until the domain is proved; error: another account serves the domain, or publishing keeps failing (see status_message)",
            "enum": [
              "pending_verification",
              "active",
              "updating",
              "error",
              "deleting"
            ],
            "title": "Status",
            "type": "string"
          },
          "status_message": {
            "title": "Status Message",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Tags",
            "type": "object"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "verification": {
            "$ref": "#/components/schemas/DnsVerificationOut"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "description",
          "tags",
          "state",
          "status_message",
          "created_at",
          "updated_at",
          "project_id",
          "domain",
          "status",
          "nameservers",
          "verification",
          "served",
          "serial",
          "record_sets",
          "delegation_ok"
        ],
        "title": "DnsZoneOut",
        "type": "object"
      },
      "EgressAllowanceOut": {
        "properties": {
          "effective_from": {
            "format": "date-time",
            "title": "Effective From",
            "type": "string"
          },
          "gb_per_month": {
            "title": "Gb Per Month",
            "type": "integer"
          },
          "instance_type": {
            "title": "Instance Type",
            "type": "string"
          }
        },
        "required": [
          "instance_type",
          "gb_per_month",
          "effective_from"
        ],
        "title": "EgressAllowanceOut",
        "type": "object"
      },
      "ErrorDetail": {
        "additionalProperties": true,
        "properties": {
          "code": {
            "title": "Code",
            "type": "string"
          },
          "message": {
            "title": "Message",
            "type": "string"
          },
          "request_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "default": null,
            "title": "Request Id"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "title": "ErrorDetail",
        "type": "object"
      },
      "ErrorOut": {
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ErrorDetail"
          }
        },
        "required": [
          "error"
        ],
        "title": "ErrorOut",
        "type": "object"
      },
      "FxRateOut": {
        "properties": {
          "currency": {
            "title": "Currency",
            "type": "string"
          },
          "fetched_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fetched At"
          },
          "markup_bps": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Markup Bps"
          },
          "mid_rate": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mid Rate"
          },
          "rate": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rate"
          },
          "source": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source"
          },
          "usable": {
            "title": "Usable",
            "type": "boolean"
          },
          "valid_for": {
            "anyOf": [
              {
                "format": "date",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Valid For"
          }
        },
        "required": [
          "currency",
          "usable",
          "rate",
          "mid_rate",
          "markup_bps",
          "source",
          "valid_for",
          "fetched_at"
        ],
        "title": "FxRateOut",
        "type": "object"
      },
      "GroupIn": {
        "properties": {
          "description": {
            "default": "",
            "maxLength": 255,
            "title": "Description",
            "type": "string"
          },
          "name": {
            "pattern": "^[A-Za-z0-9+=,.@_-]{1,128}$",
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "GroupIn",
        "type": "object"
      },
      "GroupMemberOut": {
        "properties": {
          "added_at": {
            "format": "date-time",
            "title": "Added At",
            "type": "string"
          },
          "email": {
            "title": "Email",
            "type": "string"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          },
          "user_id": {
            "title": "User Id",
            "type": "string"
          }
        },
        "required": [
          "user_id",
          "trn",
          "email",
          "added_at"
        ],
        "title": "GroupMemberOut",
        "type": "object"
      },
      "GroupOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "member_count": {
            "title": "Member Count",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "description",
          "member_count",
          "created_at"
        ],
        "title": "GroupOut",
        "type": "object"
      },
      "GroupPatch": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          }
        },
        "title": "GroupPatch",
        "type": "object"
      },
      "GuardrailIn": {
        "properties": {
          "policy": {
            "description": "Policy ID, TRN or name: the organization's or a managed one.",
            "title": "Policy",
            "type": "string"
          }
        },
        "required": [
          "policy"
        ],
        "title": "GuardrailIn",
        "type": "object"
      },
      "GuardrailOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "created_by": {
            "title": "Created By",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "policy_id": {
            "title": "Policy Id",
            "type": "string"
          },
          "policy_name": {
            "title": "Policy Name",
            "type": "string"
          },
          "policy_trn": {
            "title": "Policy Trn",
            "type": "string"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "policy_id",
          "policy_trn",
          "policy_name",
          "created_at",
          "created_by"
        ],
        "title": "GuardrailOut",
        "type": "object"
      },
      "HealthCheckIn": {
        "properties": {
          "healthy_threshold": {
            "default": 3,
            "maximum": 10,
            "minimum": 2,
            "title": "Healthy Threshold",
            "type": "integer"
          },
          "interval_seconds": {
            "default": 10,
            "maximum": 300,
            "minimum": 5,
            "title": "Interval Seconds",
            "type": "integer"
          },
          "matcher": {
            "default": "200-399",
            "description": "HTTP checks: expected status codes, e.g. \"200\" or \"200-399\"",
            "title": "Matcher",
            "type": "string"
          },
          "path": {
            "default": "/",
            "description": "HTTP checks: the path to GET",
            "title": "Path",
            "type": "string"
          },
          "port": {
            "anyOf": [
              {
                "maximum": 65535,
                "minimum": 1,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Defaults to the traffic port",
            "title": "Port"
          },
          "protocol": {
            "default": "tcp",
            "enum": [
              "tcp",
              "http"
            ],
            "title": "Protocol",
            "type": "string"
          },
          "timeout_seconds": {
            "default": 5,
            "maximum": 120,
            "minimum": 2,
            "title": "Timeout Seconds",
            "type": "integer"
          },
          "unhealthy_threshold": {
            "default": 3,
            "maximum": 10,
            "minimum": 2,
            "title": "Unhealthy Threshold",
            "type": "integer"
          }
        },
        "title": "HealthCheckIn",
        "type": "object"
      },
      "HealthCheckOut": {
        "properties": {
          "healthy_threshold": {
            "title": "Healthy Threshold",
            "type": "integer"
          },
          "interval_seconds": {
            "title": "Interval Seconds",
            "type": "integer"
          },
          "matcher": {
            "title": "Matcher",
            "type": "string"
          },
          "path": {
            "title": "Path",
            "type": "string"
          },
          "port": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Port"
          },
          "protocol": {
            "title": "Protocol",
            "type": "string"
          },
          "timeout_seconds": {
            "title": "Timeout Seconds",
            "type": "integer"
          },
          "unhealthy_threshold": {
            "title": "Unhealthy Threshold",
            "type": "integer"
          }
        },
        "required": [
          "protocol",
          "port",
          "path",
          "matcher",
          "interval_seconds",
          "timeout_seconds",
          "healthy_threshold",
          "unhealthy_threshold"
        ],
        "title": "HealthCheckOut",
        "type": "object"
      },
      "IamSettingsIn": {
        "properties": {
          "unused_key_disable_days": {
            "anyOf": [
              {
                "maximum": 3650,
                "minimum": 1,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unused Key Disable Days"
          }
        },
        "required": [
          "unused_key_disable_days"
        ],
        "title": "IamSettingsIn",
        "type": "object"
      },
      "IamSettingsOut": {
        "properties": {
          "access_key_default_ttl_days": {
            "title": "Access Key Default Ttl Days",
            "type": "integer"
          },
          "access_key_max_ttl_days": {
            "title": "Access Key Max Ttl Days",
            "type": "integer"
          },
          "unused_key_disable_days": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unused Key Disable Days"
          }
        },
        "required": [
          "unused_key_disable_days",
          "access_key_default_ttl_days",
          "access_key_max_ttl_days"
        ],
        "title": "IamSettingsOut",
        "type": "object"
      },
      "IdDocumentIn": {
        "properties": {
          "content_base64": {
            "minLength": 4,
            "title": "Content Base64",
            "type": "string"
          },
          "content_type": {
            "enum": [
              "image/jpeg",
              "image/png",
              "application/pdf"
            ],
            "title": "Content Type",
            "type": "string"
          },
          "country": {
            "maxLength": 2,
            "minLength": 2,
            "title": "Country",
            "type": "string"
          },
          "kind": {
            "enum": [
              "national_id",
              "passport",
              "alien_id",
              "driving_licence",
              "company_registration"
            ],
            "title": "Kind",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "country",
          "content_type",
          "content_base64"
        ],
        "title": "IdDocumentIn",
        "type": "object"
      },
      "IdDocumentOut": {
        "properties": {
          "content_type": {
            "title": "Content Type",
            "type": "string"
          },
          "country": {
            "title": "Country",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "review_reason": {
            "title": "Review Reason",
            "type": "string"
          },
          "reviewed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Reviewed At"
          },
          "size_bytes": {
            "title": "Size Bytes",
            "type": "integer"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "submitted_at": {
            "format": "date-time",
            "title": "Submitted At",
            "type": "string"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "kind",
          "country",
          "state",
          "content_type",
          "size_bytes",
          "submitted_at",
          "reviewed_at",
          "review_reason"
        ],
        "title": "IdDocumentOut",
        "type": "object"
      },
      "ImageOut": {
        "properties": {
          "default_user": {
            "description": "SSH keys are installed for this user",
            "title": "Default User",
            "type": "string"
          },
          "display_name": {
            "title": "Display Name",
            "type": "string"
          },
          "min_disk_gib": {
            "title": "Min Disk Gib",
            "type": "integer"
          },
          "min_memory_mib": {
            "title": "Min Memory Mib",
            "type": "integer"
          },
          "min_vcpus": {
            "title": "Min Vcpus",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "os_family": {
            "title": "Os Family",
            "type": "string"
          }
        },
        "required": [
          "name",
          "display_name",
          "os_family",
          "default_user",
          "min_disk_gib",
          "min_memory_mib",
          "min_vcpus"
        ],
        "title": "ImageOut",
        "type": "object"
      },
      "InstanceTypeOut": {
        "properties": {
          "description": {
            "title": "Description",
            "type": "string"
          },
          "family": {
            "title": "Family",
            "type": "string"
          },
          "memory_mib": {
            "title": "Memory Mib",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "vcpus": {
            "title": "Vcpus",
            "type": "integer"
          }
        },
        "required": [
          "name",
          "family",
          "vcpus",
          "memory_mib",
          "description"
        ],
        "title": "InstanceTypeOut",
        "type": "object"
      },
      "InvitationIn": {
        "properties": {
          "email": {
            "maxLength": 254,
            "title": "Email",
            "type": "string"
          },
          "groups": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "title": "Groups",
            "type": "array"
          }
        },
        "required": [
          "email"
        ],
        "title": "InvitationIn",
        "type": "object"
      },
      "InvitationOut": {
        "properties": {
          "accepted_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Accepted At"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "email": {
            "title": "Email",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "groups": {
            "items": {
              "type": "string"
            },
            "title": "Groups",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "invited_by": {
            "title": "Invited By",
            "type": "string"
          },
          "organization_id": {
            "title": "Organization Id",
            "type": "string"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "organization_id",
          "email",
          "groups",
          "state",
          "invited_by",
          "created_at",
          "expires_at",
          "accepted_at"
        ],
        "title": "InvitationOut",
        "type": "object"
      },
      "InvitationPreview": {
        "properties": {
          "account_exists": {
            "title": "Account Exists",
            "type": "boolean"
          },
          "email": {
            "title": "Email",
            "type": "string"
          },
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "organization_name": {
            "title": "Organization Name",
            "type": "string"
          }
        },
        "required": [
          "organization_name",
          "email",
          "expires_at",
          "account_exists"
        ],
        "title": "InvitationPreview",
        "type": "object"
      },
      "ListenerIn": {
        "properties": {
          "port": {
            "maximum": 65535,
            "minimum": 1,
            "title": "Port",
            "type": "integer"
          },
          "protocol": {
            "default": "tcp",
            "enum": [
              "tcp",
              "http"
            ],
            "title": "Protocol",
            "type": "string"
          },
          "target_group_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Target Group Id"
          },
          "target_group_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "A target group of the same request (create) or of the load balancer",
            "title": "Target Group Name"
          }
        },
        "required": [
          "port"
        ],
        "title": "ListenerIn",
        "type": "object"
      },
      "ListenerOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "port": {
            "title": "Port",
            "type": "integer"
          },
          "protocol": {
            "title": "Protocol",
            "type": "string"
          },
          "target_group_id": {
            "title": "Target Group Id",
            "type": "string"
          }
        },
        "required": [
          "id",
          "protocol",
          "port",
          "target_group_id",
          "created_at"
        ],
        "title": "ListenerOut",
        "type": "object"
      },
      "ListenerPatch": {
        "properties": {
          "target_group_id": {
            "title": "Target Group Id",
            "type": "string"
          }
        },
        "required": [
          "target_group_id"
        ],
        "title": "ListenerPatch",
        "type": "object"
      },
      "LoadBalancerIn": {
        "properties": {
          "description": {
            "default": "",
            "maxLength": 255,
            "title": "Description",
            "type": "string"
          },
          "listeners": {
            "items": {
              "$ref": "#/components/schemas/ListenerIn"
            },
            "maxItems": 10,
            "title": "Listeners",
            "type": "array"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "public_ip_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "public only: an allocated, unassociated public IP. Omitted: one is allocated and released with the load balancer",
            "title": "Public Ip Id"
          },
          "scheme": {
            "default": "public",
            "description": "public: a public IPv4 address; internal: the VPC address only",
            "enum": [
              "public",
              "internal"
            ],
            "title": "Scheme",
            "type": "string"
          },
          "security_group_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "maxItems": 5,
                "minItems": 1,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "Defaults to the subnet VPC's default security group",
            "title": "Security Group Ids"
          },
          "subnet_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Defaults to the default VPC's default subnet",
            "title": "Subnet Id"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "default": {},
            "title": "Tags",
            "type": "object"
          },
          "target_groups": {
            "items": {
              "$ref": "#/components/schemas/TargetGroupIn"
            },
            "maxItems": 10,
            "title": "Target Groups",
            "type": "array"
          }
        },
        "required": [
          "name"
        ],
        "title": "LoadBalancerIn",
        "type": "object"
      },
      "LoadBalancerNodesOut": {
        "properties": {
          "desired": {
            "title": "Desired",
            "type": "integer"
          },
          "ready": {
            "title": "Ready",
            "type": "integer"
          }
        },
        "required": [
          "desired",
          "ready"
        ],
        "title": "LoadBalancerNodesOut",
        "type": "object"
      },
      "LoadBalancerOut": {
        "properties": {
          "address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The load balancer's address inside its VPC (from 100.68.0.0/16)",
            "title": "Address"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "listeners": {
            "items": {
              "$ref": "#/components/schemas/ListenerOut"
            },
            "title": "Listeners",
            "type": "array"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "nodes": {
            "$ref": "#/components/schemas/LoadBalancerNodesOut"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "public_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Public Address"
          },
          "public_ip_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Public Ip Id"
          },
          "scheme": {
            "title": "Scheme",
            "type": "string"
          },
          "security_group_ids": {
            "items": {
              "type": "string"
            },
            "title": "Security Group Ids",
            "type": "array"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "status_message": {
            "title": "Status Message",
            "type": "string"
          },
          "subnet_id": {
            "title": "Subnet Id",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Tags",
            "type": "object"
          },
          "target_groups": {
            "items": {
              "$ref": "#/components/schemas/TargetGroupOut"
            },
            "title": "Target Groups",
            "type": "array"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "vpc_id": {
            "title": "Vpc Id",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "description",
          "tags",
          "state",
          "status_message",
          "created_at",
          "updated_at",
          "project_id",
          "scheme",
          "vpc_id",
          "subnet_id",
          "security_group_ids",
          "address",
          "public_ip_id",
          "public_address",
          "nodes",
          "listeners",
          "target_groups"
        ],
        "title": "LoadBalancerOut",
        "type": "object"
      },
      "LoadBalancerSecurityGroupsIn": {
        "properties": {
          "security_group_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 1,
            "title": "Security Group Ids",
            "type": "array"
          }
        },
        "required": [
          "security_group_ids"
        ],
        "title": "LoadBalancerSecurityGroupsIn",
        "type": "object"
      },
      "MarkedOut": {
        "properties": {
          "marked": {
            "title": "Marked",
            "type": "integer"
          }
        },
        "required": [
          "marked"
        ],
        "title": "MarkedOut",
        "type": "object"
      },
      "MeOut": {
        "properties": {
          "bound_organization_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bound Organization Id"
          },
          "email": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "mfa": {
            "title": "Mfa",
            "type": "boolean"
          },
          "organizations": {
            "items": {
              "$ref": "#/components/schemas/MembershipOut"
            },
            "title": "Organizations",
            "type": "array"
          }
        },
        "required": [
          "kind",
          "id",
          "email",
          "mfa",
          "bound_organization_id",
          "organizations"
        ],
        "title": "MeOut",
        "type": "object"
      },
      "MembershipOut": {
        "properties": {
          "organization_id": {
            "title": "Organization Id",
            "type": "string"
          },
          "organization_name": {
            "title": "Organization Name",
            "type": "string"
          }
        },
        "required": [
          "organization_id",
          "organization_name"
        ],
        "title": "MembershipOut",
        "type": "object"
      },
      "MetricSeriesOut": {
        "properties": {
          "key": {
            "description": "cpu, memory, network_rx, network_tx, disk_read, ...",
            "title": "Key",
            "type": "string"
          },
          "label": {
            "title": "Label",
            "type": "string"
          },
          "unit": {
            "enum": [
              "cores",
              "bytes",
              "bytes/s",
              "ops/s"
            ],
            "title": "Unit",
            "type": "string"
          },
          "values": {
            "description": "One value per timestamp; null = no data",
            "items": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            },
            "title": "Values",
            "type": "array"
          }
        },
        "required": [
          "key",
          "label",
          "unit",
          "values"
        ],
        "title": "MetricSeriesOut",
        "type": "object"
      },
      "MetricsQuery": {
        "properties": {
          "window": {
            "default": "1h",
            "enum": [
              "1h",
              "6h",
              "24h",
              "7d"
            ],
            "title": "Window",
            "type": "string"
          }
        },
        "title": "MetricsQuery",
        "type": "object"
      },
      "NatGatewayIn": {
        "properties": {
          "description": {
            "default": "",
            "maxLength": 255,
            "title": "Description",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "public_ip_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "An allocated public IP for outbound SNAT (optional)",
            "title": "Public Ip Id"
          },
          "subnet_id": {
            "description": "Where the gateway's LAN leg sits (any subnet of the VPC)",
            "title": "Subnet Id",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "default": {},
            "title": "Tags",
            "type": "object"
          }
        },
        "required": [
          "name",
          "subnet_id"
        ],
        "title": "NatGatewayIn",
        "type": "object"
      },
      "NatGatewayOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "lan_ip": {
            "title": "Lan Ip",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "public_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Public Address"
          },
          "public_ip_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Public Ip Id"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "status_message": {
            "title": "Status Message",
            "type": "string"
          },
          "subnet_id": {
            "title": "Subnet Id",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Tags",
            "type": "object"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "vpc_id": {
            "title": "Vpc Id",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "description",
          "tags",
          "state",
          "status_message",
          "created_at",
          "updated_at",
          "project_id",
          "vpc_id",
          "subnet_id",
          "lan_ip",
          "public_ip_id",
          "public_address"
        ],
        "title": "NatGatewayOut",
        "type": "object"
      },
      "NotificationOut": {
        "properties": {
          "body": {
            "title": "Body",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "link": {
            "title": "Link",
            "type": "string"
          },
          "read": {
            "title": "Read",
            "type": "boolean"
          },
          "resource_trn": {
            "title": "Resource Trn",
            "type": "string"
          },
          "severity": {
            "title": "Severity",
            "type": "string"
          },
          "title": {
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "id",
          "created_at",
          "kind",
          "severity",
          "title",
          "body",
          "link",
          "resource_trn",
          "read"
        ],
        "title": "NotificationOut",
        "type": "object"
      },
      "NotificationPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/NotificationOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "NotificationPage",
        "type": "object"
      },
      "NotificationSummaryOut": {
        "properties": {
          "latest_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latest At"
          },
          "unread": {
            "title": "Unread",
            "type": "integer"
          }
        },
        "required": [
          "unread",
          "latest_at"
        ],
        "title": "NotificationSummaryOut",
        "type": "object"
      },
      "OnboardingOut": {
        "properties": {
          "complete": {
            "title": "Complete",
            "type": "boolean"
          },
          "dismissed": {
            "title": "Dismissed",
            "type": "boolean"
          },
          "organization_id": {
            "title": "Organization Id",
            "type": "string"
          },
          "steps": {
            "items": {
              "$ref": "#/components/schemas/OnboardingStep"
            },
            "title": "Steps",
            "type": "array"
          }
        },
        "required": [
          "organization_id",
          "steps",
          "complete",
          "dismissed"
        ],
        "title": "OnboardingOut",
        "type": "object"
      },
      "OnboardingStep": {
        "properties": {
          "done": {
            "title": "Done",
            "type": "boolean"
          },
          "key": {
            "enum": [
              "verify_email",
              "add_funds",
              "add_ssh_key",
              "create_vm"
            ],
            "title": "Key",
            "type": "string"
          }
        },
        "required": [
          "key",
          "done"
        ],
        "title": "OnboardingStep",
        "type": "object"
      },
      "OnboardingVisibility": {
        "properties": {
          "dismissed": {
            "title": "Dismissed",
            "type": "boolean"
          },
          "organization_id": {
            "maxLength": 32,
            "title": "Organization Id",
            "type": "string"
          }
        },
        "required": [
          "organization_id",
          "dismissed"
        ],
        "title": "OnboardingVisibility",
        "type": "object"
      },
      "OrgUserOut": {
        "properties": {
          "email": {
            "title": "Email",
            "type": "string"
          },
          "full_name": {
            "title": "Full Name",
            "type": "string"
          },
          "groups": {
            "items": {
              "type": "string"
            },
            "title": "Groups",
            "type": "array"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "joined_at": {
            "format": "date-time",
            "title": "Joined At",
            "type": "string"
          },
          "mfa_enabled": {
            "title": "Mfa Enabled",
            "type": "boolean"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Tags",
            "type": "object"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "email",
          "full_name",
          "tags",
          "groups",
          "mfa_enabled",
          "joined_at"
        ],
        "title": "OrgUserOut",
        "type": "object"
      },
      "OrgUserPatch": {
        "properties": {
          "tags": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tags"
          }
        },
        "title": "OrgUserPatch",
        "type": "object"
      },
      "OrganizationIn": {
        "properties": {
          "country": {
            "maxLength": 2,
            "minLength": 2,
            "title": "Country",
            "type": "string"
          },
          "name": {
            "maxLength": 100,
            "minLength": 2,
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "name",
          "country"
        ],
        "title": "OrganizationIn",
        "type": "object"
      },
      "OrganizationOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "status"
        ],
        "title": "OrganizationOut",
        "type": "object"
      },
      "OverviewActivityOut": {
        "properties": {
          "action": {
            "title": "Action",
            "type": "string"
          },
          "at": {
            "format": "date-time",
            "title": "At",
            "type": "string"
          },
          "outcome": {
            "enum": [
              "success",
              "failed"
            ],
            "title": "Outcome",
            "type": "string"
          },
          "principal": {
            "title": "Principal",
            "type": "string"
          },
          "principal_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Email or service account name, if known",
            "title": "Principal Name"
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          },
          "resource": {
            "title": "Resource",
            "type": "string"
          },
          "resource_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resource Name"
          }
        },
        "required": [
          "at",
          "principal",
          "principal_name",
          "action",
          "resource",
          "resource_name",
          "project_id",
          "outcome"
        ],
        "title": "OverviewActivityOut",
        "type": "object"
      },
      "OverviewAttentionOut": {
        "properties": {
          "kind": {
            "description": "billing, vm, volume or organization",
            "title": "Kind",
            "type": "string"
          },
          "message": {
            "title": "Message",
            "type": "string"
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          },
          "resource_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resource Id"
          },
          "severity": {
            "enum": [
              "info",
              "warning",
              "danger"
            ],
            "title": "Severity",
            "type": "string"
          }
        },
        "required": [
          "severity",
          "kind",
          "message"
        ],
        "title": "OverviewAttentionOut",
        "type": "object"
      },
      "OverviewMoneyOut": {
        "properties": {
          "available": {
            "title": "Available",
            "type": "string"
          },
          "available_micro": {
            "title": "Available Micro",
            "type": "integer"
          },
          "by_project": {
            "description": "Largest first",
            "items": {
              "$ref": "#/components/schemas/OverviewProjectSpendOut"
            },
            "title": "By Project",
            "type": "array"
          },
          "currency": {
            "default": "USD",
            "title": "Currency",
            "type": "string"
          },
          "forecast": {
            "title": "Forecast",
            "type": "string"
          },
          "forecast_micro": {
            "description": "Month to date plus the current rate to month end",
            "title": "Forecast Micro",
            "type": "integer"
          },
          "month_start": {
            "format": "date-time",
            "title": "Month Start",
            "type": "string"
          },
          "month_to_date": {
            "title": "Month To Date",
            "type": "string"
          },
          "month_to_date_micro": {
            "description": "Rated usage since the month started (UTC)",
            "title": "Month To Date Micro",
            "type": "integer"
          },
          "run_rate_micro_per_hour": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Run Rate Micro Per Hour"
          },
          "runway_hours": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Runway Hours"
          },
          "state": {
            "description": "ok, warned, restricted, stopped or delinquent",
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "available_micro",
          "available",
          "state",
          "runway_hours",
          "run_rate_micro_per_hour",
          "month_start",
          "month_to_date_micro",
          "month_to_date",
          "forecast_micro",
          "forecast",
          "by_project"
        ],
        "title": "OverviewMoneyOut",
        "type": "object"
      },
      "OverviewOut": {
        "properties": {
          "activity": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/OverviewActivityOut"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Activity"
          },
          "attention": {
            "items": {
              "$ref": "#/components/schemas/OverviewAttentionOut"
            },
            "title": "Attention",
            "type": "array"
          },
          "country": {
            "title": "Country",
            "type": "string"
          },
          "generated_at": {
            "format": "date-time",
            "title": "Generated At",
            "type": "string"
          },
          "local_currency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Shown next to USD at the published FX rate (GET /api/v1/fx-rates)",
            "title": "Local Currency"
          },
          "money": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OverviewMoneyOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "organization_id": {
            "title": "Organization Id",
            "type": "string"
          },
          "organization_name": {
            "title": "Organization Name",
            "type": "string"
          },
          "projects": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OverviewProjectsOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "vms": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OverviewVmsOut"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "organization_id",
          "organization_name",
          "country",
          "local_currency",
          "generated_at",
          "projects",
          "vms",
          "money",
          "activity",
          "attention"
        ],
        "title": "OverviewOut",
        "type": "object"
      },
      "OverviewProjectOut": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "vms_running": {
            "title": "Vms Running",
            "type": "integer"
          },
          "vms_total": {
            "title": "Vms Total",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "name",
          "vms_total",
          "vms_running"
        ],
        "title": "OverviewProjectOut",
        "type": "object"
      },
      "OverviewProjectSpendOut": {
        "properties": {
          "amount": {
            "title": "Amount",
            "type": "string"
          },
          "amount_micro": {
            "title": "Amount Micro",
            "type": "integer"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "null when the caller may not see the project",
            "title": "Name"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          }
        },
        "required": [
          "project_id",
          "name",
          "amount_micro",
          "amount"
        ],
        "title": "OverviewProjectSpendOut",
        "type": "object"
      },
      "OverviewProjectsOut": {
        "properties": {
          "count": {
            "title": "Count",
            "type": "integer"
          },
          "items": {
            "description": "Busiest first (running VMs, then total)",
            "items": {
              "$ref": "#/components/schemas/OverviewProjectOut"
            },
            "title": "Items",
            "type": "array"
          }
        },
        "required": [
          "count",
          "items"
        ],
        "title": "OverviewProjectsOut",
        "type": "object"
      },
      "OverviewVmsOut": {
        "properties": {
          "attention": {
            "description": "In error, or stopped by TebibHost (abuse, balance)",
            "title": "Attention",
            "type": "integer"
          },
          "other": {
            "description": "Starting, stopping, paused or unknown",
            "title": "Other",
            "type": "integer"
          },
          "running": {
            "description": "Observed running",
            "title": "Running",
            "type": "integer"
          },
          "stopped": {
            "title": "Stopped",
            "type": "integer"
          },
          "total": {
            "title": "Total",
            "type": "integer"
          }
        },
        "required": [
          "total",
          "running",
          "stopped",
          "other",
          "attention"
        ],
        "title": "OverviewVmsOut",
        "type": "object"
      },
      "Page_BucketOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/BucketOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[BucketOut]",
        "type": "object"
      },
      "Page_DnsRecordOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/DnsRecordOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[DnsRecordOut]",
        "type": "object"
      },
      "Page_DnsZoneOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/DnsZoneOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[DnsZoneOut]",
        "type": "object"
      },
      "Page_GroupOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/GroupOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[GroupOut]",
        "type": "object"
      },
      "Page_GuardrailOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/GuardrailOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[GuardrailOut]",
        "type": "object"
      },
      "Page_InvitationOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/InvitationOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[InvitationOut]",
        "type": "object"
      },
      "Page_LoadBalancerOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/LoadBalancerOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[LoadBalancerOut]",
        "type": "object"
      },
      "Page_NatGatewayOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/NatGatewayOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[NatGatewayOut]",
        "type": "object"
      },
      "Page_OrgUserOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/OrgUserOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[OrgUserOut]",
        "type": "object"
      },
      "Page_PermissionBoundaryOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PermissionBoundaryOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[PermissionBoundaryOut]",
        "type": "object"
      },
      "Page_PolicyAttachmentOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PolicyAttachmentOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[PolicyAttachmentOut]",
        "type": "object"
      },
      "Page_PolicyOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PolicyOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[PolicyOut]",
        "type": "object"
      },
      "Page_ProjectOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/ProjectOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[ProjectOut]",
        "type": "object"
      },
      "Page_PublicIpOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/PublicIpOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[PublicIpOut]",
        "type": "object"
      },
      "Page_RoleOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/RoleOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[RoleOut]",
        "type": "object"
      },
      "Page_SSHKeyOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/SSHKeyOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[SSHKeyOut]",
        "type": "object"
      },
      "Page_SecurityGroupOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/SecurityGroupOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[SecurityGroupOut]",
        "type": "object"
      },
      "Page_ServiceAccountOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/ServiceAccountOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[ServiceAccountOut]",
        "type": "object"
      },
      "Page_SnapshotOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/SnapshotOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[SnapshotOut]",
        "type": "object"
      },
      "Page_SnapshotScheduleOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/SnapshotScheduleOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[SnapshotScheduleOut]",
        "type": "object"
      },
      "Page_StatementSummaryOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/StatementSummaryOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[StatementSummaryOut]",
        "type": "object"
      },
      "Page_StorageKeyOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/StorageKeyOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[StorageKeyOut]",
        "type": "object"
      },
      "Page_SubnetOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/SubnetOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[SubnetOut]",
        "type": "object"
      },
      "Page_TicketOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/TicketOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[TicketOut]",
        "type": "object"
      },
      "Page_TopUpOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/TopUpOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[TopUpOut]",
        "type": "object"
      },
      "Page_TransactionOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/TransactionOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[TransactionOut]",
        "type": "object"
      },
      "Page_VMOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/VMOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[VMOut]",
        "type": "object"
      },
      "Page_VolumeOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/VolumeOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[VolumeOut]",
        "type": "object"
      },
      "Page_VpcOut_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/VpcOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "Page[VpcOut]",
        "type": "object"
      },
      "PaymentMethodOut": {
        "properties": {
          "currency": {
            "title": "Currency",
            "type": "string"
          },
          "description": {
            "default": "",
            "title": "Description",
            "type": "string"
          },
          "maximum_minor": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Maximum Minor"
          },
          "method": {
            "title": "Method",
            "type": "string"
          },
          "minimum_minor": {
            "title": "Minimum Minor",
            "type": "integer"
          },
          "needs_phone": {
            "default": false,
            "title": "Needs Phone",
            "type": "boolean"
          },
          "paybill": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Paybill"
          },
          "provider": {
            "title": "Provider",
            "type": "string"
          },
          "rate": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rate"
          }
        },
        "required": [
          "provider",
          "method",
          "currency",
          "minimum_minor",
          "maximum_minor",
          "rate"
        ],
        "title": "PaymentMethodOut",
        "type": "object"
      },
      "PermissionBoundaryIn": {
        "properties": {
          "policy": {
            "description": "Policy ID, TRN or name: the organization's or a managed one.",
            "title": "Policy",
            "type": "string"
          },
          "principal": {
            "description": "TRN of a user, service account or role in this organization.",
            "title": "Principal",
            "type": "string"
          }
        },
        "required": [
          "principal",
          "policy"
        ],
        "title": "PermissionBoundaryIn",
        "type": "object"
      },
      "PermissionBoundaryOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "created_by": {
            "title": "Created By",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "policy_id": {
            "title": "Policy Id",
            "type": "string"
          },
          "policy_name": {
            "title": "Policy Name",
            "type": "string"
          },
          "policy_trn": {
            "title": "Policy Trn",
            "type": "string"
          },
          "principal": {
            "title": "Principal",
            "type": "string"
          },
          "principal_type": {
            "title": "Principal Type",
            "type": "string"
          }
        },
        "required": [
          "id",
          "principal",
          "principal_type",
          "policy_id",
          "policy_trn",
          "policy_name",
          "created_at",
          "created_by"
        ],
        "title": "PermissionBoundaryOut",
        "type": "object"
      },
      "PolicyAttachmentIn": {
        "properties": {
          "policy": {
            "title": "Policy",
            "type": "string"
          },
          "principal": {
            "title": "Principal",
            "type": "string"
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          }
        },
        "required": [
          "policy",
          "principal"
        ],
        "title": "PolicyAttachmentIn",
        "type": "object"
      },
      "PolicyAttachmentOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "created_by": {
            "title": "Created By",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "policy_id": {
            "title": "Policy Id",
            "type": "string"
          },
          "policy_trn": {
            "title": "Policy Trn",
            "type": "string"
          },
          "principal": {
            "title": "Principal",
            "type": "string"
          },
          "principal_type": {
            "title": "Principal Type",
            "type": "string"
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          }
        },
        "required": [
          "id",
          "policy_id",
          "policy_trn",
          "principal",
          "principal_type",
          "project_id",
          "created_at",
          "created_by"
        ],
        "title": "PolicyAttachmentOut",
        "type": "object"
      },
      "PolicyDetailOut": {
        "properties": {
          "attachment_count": {
            "title": "Attachment Count",
            "type": "integer"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "default_version": {
            "title": "Default Version",
            "type": "integer"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "document": {
            "additionalProperties": true,
            "title": "Document",
            "type": "object"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "managed": {
            "title": "Managed",
            "type": "boolean"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "description",
          "managed",
          "default_version",
          "attachment_count",
          "created_at",
          "updated_at",
          "document"
        ],
        "title": "PolicyDetailOut",
        "type": "object"
      },
      "PolicyIn": {
        "properties": {
          "description": {
            "default": "",
            "maxLength": 1000,
            "title": "Description",
            "type": "string"
          },
          "document": {
            "additionalProperties": true,
            "title": "Document",
            "type": "object"
          },
          "name": {
            "pattern": "^[A-Za-z0-9+=,.@_-]{1,128}$",
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "name",
          "document"
        ],
        "title": "PolicyIn",
        "type": "object"
      },
      "PolicyOut": {
        "properties": {
          "attachment_count": {
            "title": "Attachment Count",
            "type": "integer"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "default_version": {
            "title": "Default Version",
            "type": "integer"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "managed": {
            "title": "Managed",
            "type": "boolean"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "description",
          "managed",
          "default_version",
          "attachment_count",
          "created_at",
          "updated_at"
        ],
        "title": "PolicyOut",
        "type": "object"
      },
      "PolicyPatch": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          }
        },
        "title": "PolicyPatch",
        "type": "object"
      },
      "PreferencesOut": {
        "properties": {
          "onboarding_dismissed": {
            "items": {
              "type": "string"
            },
            "title": "Onboarding Dismissed",
            "type": "array"
          },
          "theme": {
            "enum": [
              "system",
              "dark",
              "light"
            ],
            "title": "Theme",
            "type": "string"
          },
          "theme_saved": {
            "title": "Theme Saved",
            "type": "boolean"
          }
        },
        "required": [
          "theme",
          "theme_saved",
          "onboarding_dismissed"
        ],
        "title": "PreferencesOut",
        "type": "object"
      },
      "PreferencesPatch": {
        "properties": {
          "onboarding": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OnboardingVisibility"
              },
              {
                "type": "null"
              }
            ]
          },
          "theme": {
            "anyOf": [
              {
                "enum": [
                  "system",
                  "dark",
                  "light"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Theme"
          }
        },
        "title": "PreferencesPatch",
        "type": "object"
      },
      "PriceListOut": {
        "properties": {
          "at": {
            "format": "date-time",
            "title": "At",
            "type": "string"
          },
          "currency": {
            "title": "Currency",
            "type": "string"
          },
          "egress_allowances": {
            "items": {
              "$ref": "#/components/schemas/EgressAllowanceOut"
            },
            "title": "Egress Allowances",
            "type": "array"
          },
          "hours_per_month": {
            "title": "Hours Per Month",
            "type": "integer"
          },
          "prices": {
            "items": {
              "$ref": "#/components/schemas/PriceOut"
            },
            "title": "Prices",
            "type": "array"
          },
          "region": {
            "title": "Region",
            "type": "string"
          },
          "scheduled": {
            "items": {
              "$ref": "#/components/schemas/PriceOut"
            },
            "title": "Scheduled",
            "type": "array"
          }
        },
        "required": [
          "region",
          "currency",
          "at",
          "hours_per_month",
          "prices",
          "scheduled",
          "egress_allowances"
        ],
        "title": "PriceListOut",
        "type": "object"
      },
      "PriceOut": {
        "properties": {
          "effective_from": {
            "format": "date-time",
            "title": "Effective From",
            "type": "string"
          },
          "meter": {
            "title": "Meter",
            "type": "string"
          },
          "monthly_usd": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Monthly Usd"
          },
          "note": {
            "title": "Note",
            "type": "string"
          },
          "unit": {
            "title": "Unit",
            "type": "string"
          },
          "unit_price_micro": {
            "title": "Unit Price Micro",
            "type": "integer"
          },
          "unit_price_usd": {
            "title": "Unit Price Usd",
            "type": "string"
          }
        },
        "required": [
          "meter",
          "unit",
          "unit_price_micro",
          "unit_price_usd",
          "monthly_usd",
          "effective_from",
          "note"
        ],
        "title": "PriceOut",
        "type": "object"
      },
      "ProjectIn": {
        "properties": {
          "description": {
            "default": "",
            "maxLength": 255,
            "title": "Description",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "default": {},
            "title": "Tags",
            "type": "object"
          }
        },
        "required": [
          "name"
        ],
        "title": "ProjectIn",
        "type": "object"
      },
      "ProjectOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "organization_id": {
            "title": "Organization Id",
            "type": "string"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "status_message": {
            "title": "Status Message",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Tags",
            "type": "object"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "description",
          "tags",
          "state",
          "status_message",
          "created_at",
          "updated_at",
          "organization_id"
        ],
        "title": "ProjectOut",
        "type": "object"
      },
      "PublicAddressEventOut": {
        "properties": {
          "at": {
            "format": "date-time",
            "title": "At",
            "type": "string"
          },
          "event": {
            "title": "Event",
            "type": "string"
          },
          "target": {
            "title": "Target",
            "type": "string"
          }
        },
        "required": [
          "at",
          "event",
          "target"
        ],
        "title": "PublicAddressEventOut",
        "type": "object"
      },
      "PublicIpIn": {
        "properties": {
          "description": {
            "default": "",
            "maxLength": 255,
            "title": "Description",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "default": {},
            "title": "Tags",
            "type": "object"
          }
        },
        "required": [
          "name"
        ],
        "title": "PublicIpIn",
        "type": "object"
      },
      "PublicIpOut": {
        "properties": {
          "address": {
            "title": "Address",
            "type": "string"
          },
          "association": {
            "title": "Association",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "load_balancer_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Load Balancer Id"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "nat_gateway_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Nat Gateway Id"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "status_message": {
            "title": "Status Message",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Tags",
            "type": "object"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "vm_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Vm Id"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "description",
          "tags",
          "state",
          "status_message",
          "created_at",
          "updated_at",
          "project_id",
          "address",
          "association",
          "nat_gateway_id",
          "vm_id",
          "load_balancer_id"
        ],
        "title": "PublicIpOut",
        "type": "object"
      },
      "QuotaOut": {
        "properties": {
          "description": {
            "title": "Description",
            "type": "string"
          },
          "in_use": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "In Use"
          },
          "limit": {
            "title": "Limit",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "scope": {
            "title": "Scope",
            "type": "string"
          },
          "unit": {
            "title": "Unit",
            "type": "string"
          }
        },
        "required": [
          "name",
          "description",
          "unit",
          "scope",
          "limit",
          "in_use"
        ],
        "title": "QuotaOut",
        "type": "object"
      },
      "QuotasOut": {
        "properties": {
          "quotas": {
            "items": {
              "$ref": "#/components/schemas/QuotaOut"
            },
            "title": "Quotas",
            "type": "array"
          }
        },
        "required": [
          "quotas"
        ],
        "title": "QuotasOut",
        "type": "object"
      },
      "RebootVMIn": {
        "properties": {
          "hard": {
            "default": false,
            "description": "Power-cycle instead of asking the guest to reboot (ACPI/guest agent)",
            "title": "Hard",
            "type": "boolean"
          }
        },
        "title": "RebootVMIn",
        "type": "object"
      },
      "ReportKeyOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "disables_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Disables At"
          },
          "expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Expires At"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "last_used_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Used At"
          },
          "last_used_ip": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Used Ip"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "status_reason": {
            "title": "Status Reason",
            "type": "string"
          }
        },
        "required": [
          "id",
          "status",
          "status_reason",
          "created_at",
          "expires_at",
          "last_used_at",
          "last_used_ip",
          "disables_at"
        ],
        "title": "ReportKeyOut",
        "type": "object"
      },
      "ReportPrincipalOut": {
        "properties": {
          "access_keys": {
            "items": {
              "$ref": "#/components/schemas/ReportKeyOut"
            },
            "title": "Access Keys",
            "type": "array"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "disabled": {
            "title": "Disabled",
            "type": "boolean"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "last_activity_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Activity At"
          },
          "last_sign_in_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Sign In At"
          },
          "mfa_enabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mfa Enabled"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "services": {
            "items": {
              "$ref": "#/components/schemas/ServiceUseOut"
            },
            "title": "Services",
            "type": "array"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          }
        },
        "required": [
          "kind",
          "id",
          "trn",
          "name",
          "disabled",
          "created_at",
          "last_sign_in_at",
          "mfa_enabled",
          "last_activity_at",
          "services",
          "access_keys"
        ],
        "title": "ReportPrincipalOut",
        "type": "object"
      },
      "ResizeVMIn": {
        "properties": {
          "instance_type": {
            "title": "Instance Type",
            "type": "string"
          }
        },
        "required": [
          "instance_type"
        ],
        "title": "ResizeVMIn",
        "type": "object"
      },
      "ResizeVolumeIn": {
        "properties": {
          "size_gib": {
            "maximum": 2048,
            "minimum": 1,
            "title": "Size Gib",
            "type": "integer"
          }
        },
        "required": [
          "size_gib"
        ],
        "title": "ResizeVolumeIn",
        "type": "object"
      },
      "RestoreVMIn": {
        "properties": {
          "snapshot_id": {
            "title": "Snapshot Id",
            "type": "string"
          }
        },
        "required": [
          "snapshot_id"
        ],
        "title": "RestoreVMIn",
        "type": "object"
      },
      "RevokedOut": {
        "properties": {
          "revoked": {
            "title": "Revoked",
            "type": "integer"
          }
        },
        "required": [
          "revoked"
        ],
        "title": "RevokedOut",
        "type": "object"
      },
      "RoleIn": {
        "properties": {
          "description": {
            "default": "",
            "maxLength": 1000,
            "title": "Description",
            "type": "string"
          },
          "max_session_seconds": {
            "default": 3600,
            "maximum": 43200,
            "minimum": 900,
            "title": "Max Session Seconds",
            "type": "integer"
          },
          "name": {
            "pattern": "^[A-Za-z0-9+=,.@_-]{1,128}$",
            "title": "Name",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Tags",
            "type": "object"
          },
          "trust_policy": {
            "additionalProperties": true,
            "title": "Trust Policy",
            "type": "object"
          }
        },
        "required": [
          "name",
          "trust_policy"
        ],
        "title": "RoleIn",
        "type": "object"
      },
      "RoleOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "max_session_seconds": {
            "title": "Max Session Seconds",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Tags",
            "type": "object"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          },
          "trust_policy": {
            "additionalProperties": true,
            "title": "Trust Policy",
            "type": "object"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "description",
          "trust_policy",
          "max_session_seconds",
          "tags",
          "created_at",
          "updated_at"
        ],
        "title": "RoleOut",
        "type": "object"
      },
      "RolePatch": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "maxLength": 1000,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "max_session_seconds": {
            "anyOf": [
              {
                "maximum": 43200,
                "minimum": 900,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Session Seconds"
          },
          "tags": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tags"
          },
          "trust_policy": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Trust Policy"
          }
        },
        "title": "RolePatch",
        "type": "object"
      },
      "RotateIn": {
        "properties": {
          "previous_valid_hours": {
            "default": 24,
            "description": "How long the old key keeps working (0: stops at once)",
            "maximum": 168,
            "minimum": 0,
            "title": "Previous Valid Hours",
            "type": "integer"
          }
        },
        "title": "RotateIn",
        "type": "object"
      },
      "RuleIn": {
        "properties": {
          "description": {
            "default": "",
            "maxLength": 255,
            "title": "Description",
            "type": "string"
          },
          "direction": {
            "enum": [
              "ingress",
              "egress"
            ],
            "title": "Direction",
            "type": "string"
          },
          "ip_version": {
            "anyOf": [
              {
                "enum": [
                  "ipv4",
                  "ipv6"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Taken from remote_cidr when omitted; required with remote_group_id",
            "title": "Ip Version"
          },
          "port_from": {
            "anyOf": [
              {
                "maximum": 65535,
                "minimum": 1,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Port From"
          },
          "port_to": {
            "anyOf": [
              {
                "maximum": 65535,
                "minimum": 1,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Port To"
          },
          "protocol": {
            "enum": [
              "all",
              "tcp",
              "udp",
              "icmp"
            ],
            "title": "Protocol",
            "type": "string"
          },
          "remote_cidr": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Remote Cidr"
          },
          "remote_group_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Remote Group Id"
          }
        },
        "required": [
          "direction",
          "protocol"
        ],
        "title": "RuleIn",
        "type": "object"
      },
      "RuleOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "direction": {
            "title": "Direction",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "ip_version": {
            "title": "Ip Version",
            "type": "string"
          },
          "port_from": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Port From"
          },
          "port_to": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Port To"
          },
          "protocol": {
            "title": "Protocol",
            "type": "string"
          },
          "remote_cidr": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Remote Cidr"
          },
          "remote_group_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Remote Group Id"
          }
        },
        "required": [
          "id",
          "direction",
          "ip_version",
          "protocol",
          "port_from",
          "port_to",
          "remote_cidr",
          "remote_group_id",
          "description",
          "created_at"
        ],
        "title": "RuleOut",
        "type": "object"
      },
      "SSHKeyIn": {
        "properties": {
          "description": {
            "default": "",
            "maxLength": 255,
            "title": "Description",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "public_key": {
            "maxLength": 16384,
            "title": "Public Key",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "default": {},
            "title": "Tags",
            "type": "object"
          }
        },
        "required": [
          "name",
          "public_key"
        ],
        "title": "SSHKeyIn",
        "type": "object"
      },
      "SSHKeyOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "fingerprint": {
            "title": "Fingerprint",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "key_type": {
            "title": "Key Type",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "public_key": {
            "title": "Public Key",
            "type": "string"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "status_message": {
            "title": "Status Message",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Tags",
            "type": "object"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "description",
          "tags",
          "state",
          "status_message",
          "created_at",
          "updated_at",
          "project_id",
          "public_key",
          "key_type",
          "fingerprint"
        ],
        "title": "SSHKeyOut",
        "type": "object"
      },
      "SearchHit": {
        "properties": {
          "detail": {
            "default": "",
            "title": "Detail",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "kind": {
            "enum": [
              "project",
              "vm",
              "volume",
              "snapshot",
              "ssh_key",
              "vpc",
              "security_group",
              "public_ip",
              "load_balancer",
              "dns_zone",
              "user",
              "group",
              "service_account",
              "role",
              "policy"
            ],
            "title": "Kind",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          },
          "project_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Name"
          },
          "state": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "State"
          }
        },
        "required": [
          "kind",
          "id",
          "name"
        ],
        "title": "SearchHit",
        "type": "object"
      },
      "SearchIn": {
        "properties": {
          "limit": {
            "default": 20,
            "maximum": 50,
            "minimum": 1,
            "title": "Limit",
            "type": "integer"
          },
          "q": {
            "default": "",
            "maxLength": 100,
            "title": "Q",
            "type": "string"
          }
        },
        "title": "SearchIn",
        "type": "object"
      },
      "SearchOut": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/SearchHit"
            },
            "title": "Items",
            "type": "array"
          },
          "query": {
            "title": "Query",
            "type": "string"
          }
        },
        "required": [
          "query",
          "items"
        ],
        "title": "SearchOut",
        "type": "object"
      },
      "SecurityGroupIn": {
        "properties": {
          "description": {
            "default": "",
            "maxLength": 255,
            "title": "Description",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "default": {},
            "title": "Tags",
            "type": "object"
          },
          "vpc_id": {
            "title": "Vpc Id",
            "type": "string"
          }
        },
        "required": [
          "vpc_id",
          "name"
        ],
        "title": "SecurityGroupIn",
        "type": "object"
      },
      "SecurityGroupOut": {
        "properties": {
          "allow_same_group": {
            "title": "Allow Same Group",
            "type": "boolean"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "is_default": {
            "title": "Is Default",
            "type": "boolean"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "rules": {
            "items": {
              "$ref": "#/components/schemas/RuleOut"
            },
            "title": "Rules",
            "type": "array"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "status_message": {
            "title": "Status Message",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Tags",
            "type": "object"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "vpc_id": {
            "title": "Vpc Id",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "description",
          "tags",
          "state",
          "status_message",
          "created_at",
          "updated_at",
          "project_id",
          "vpc_id",
          "is_default",
          "allow_same_group",
          "rules"
        ],
        "title": "SecurityGroupOut",
        "type": "object"
      },
      "ServiceAccountIn": {
        "properties": {
          "description": {
            "default": "",
            "maxLength": 255,
            "title": "Description",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Tags",
            "type": "object"
          }
        },
        "required": [
          "name"
        ],
        "title": "ServiceAccountIn",
        "type": "object"
      },
      "ServiceAccountOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "disabled": {
            "title": "Disabled",
            "type": "boolean"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Tags",
            "type": "object"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "description",
          "tags",
          "disabled",
          "created_at"
        ],
        "title": "ServiceAccountOut",
        "type": "object"
      },
      "ServiceAccountPatch": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "disabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Disabled"
          },
          "tags": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tags"
          }
        },
        "title": "ServiceAccountPatch",
        "type": "object"
      },
      "ServiceUseOut": {
        "properties": {
          "last_used_at": {
            "format": "date-time",
            "title": "Last Used At",
            "type": "string"
          },
          "service": {
            "title": "Service",
            "type": "string"
          }
        },
        "required": [
          "service",
          "last_used_at"
        ],
        "title": "ServiceUseOut",
        "type": "object"
      },
      "SignupConfigOut": {
        "properties": {
          "countries": {
            "items": {
              "$ref": "#/components/schemas/CountryOut"
            },
            "title": "Countries",
            "type": "array"
          },
          "signup_open": {
            "title": "Signup Open",
            "type": "boolean"
          },
          "turnstile_site_key": {
            "title": "Turnstile Site Key",
            "type": "string"
          }
        },
        "required": [
          "signup_open",
          "turnstile_site_key",
          "countries"
        ],
        "title": "SignupConfigOut",
        "type": "object"
      },
      "SimulateIn": {
        "properties": {
          "actions": {
            "description": "Actions to check, e.g. compute:StartVM (no wildcards).",
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Actions",
            "type": "array"
          },
          "context": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                }
              ]
            },
            "description": "Request keys to simulate: auth:mfa, auth:source-ip, auth:current-time, auth:epoch-time, auth:credential-type, and request:*, iam:*, resource:* keys (resource:tag/<key> stands in for the resource's tags). Keys describing the principal or the resource are ignored.",
            "title": "Context",
            "type": "object"
          },
          "principal": {
            "description": "TRN of a user, service account, role or role session in this organization.",
            "maxLength": 256,
            "title": "Principal",
            "type": "string"
          },
          "resources": {
            "description": "Resource TRNs in this organization; '<type>/*' checks a create.",
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "minItems": 1,
            "title": "Resources",
            "type": "array"
          },
          "session_policy": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "Roles only: a session policy, as if passed to AssumeRole.",
            "title": "Session Policy"
          }
        },
        "required": [
          "principal",
          "actions",
          "resources"
        ],
        "title": "SimulateIn",
        "type": "object"
      },
      "SimulateOut": {
        "properties": {
          "ignored_context_keys": {
            "items": {
              "type": "string"
            },
            "title": "Ignored Context Keys",
            "type": "array"
          },
          "principal": {
            "title": "Principal",
            "type": "string"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/SimulationResultOut"
            },
            "title": "Results",
            "type": "array"
          }
        },
        "required": [
          "principal",
          "results",
          "ignored_context_keys"
        ],
        "title": "SimulateOut",
        "type": "object"
      },
      "SimulationResultOut": {
        "properties": {
          "action": {
            "title": "Action",
            "type": "string"
          },
          "allowed": {
            "title": "Allowed",
            "type": "boolean"
          },
          "decision": {
            "title": "Decision",
            "type": "string"
          },
          "known_action": {
            "title": "Known Action",
            "type": "boolean"
          },
          "layer": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Layer"
          },
          "reason": {
            "title": "Reason",
            "type": "string"
          },
          "resource": {
            "title": "Resource",
            "type": "string"
          },
          "statements": {
            "items": {
              "$ref": "#/components/schemas/DecidingStatementOut"
            },
            "title": "Statements",
            "type": "array"
          }
        },
        "required": [
          "action",
          "resource",
          "decision",
          "allowed",
          "reason",
          "statements",
          "known_action"
        ],
        "title": "SimulationResultOut",
        "type": "object"
      },
      "SnapshotIn": {
        "properties": {
          "description": {
            "default": "",
            "maxLength": 255,
            "title": "Description",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "default": {},
            "title": "Tags",
            "type": "object"
          },
          "vm_id": {
            "title": "Vm Id",
            "type": "string"
          }
        },
        "required": [
          "name",
          "vm_id"
        ],
        "title": "SnapshotIn",
        "type": "object"
      },
      "SnapshotOut": {
        "properties": {
          "consistency": {
            "anyOf": [
              {
                "enum": [
                  "application",
                  "crash"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "application: filesystems were frozen through the guest agent",
            "title": "Consistency"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "schedule_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The snapshot schedule that took it; null for a snapshot taken by hand",
            "title": "Schedule Id"
          },
          "scheduled_for": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The schedule's run it was taken for (UTC); null for a snapshot taken by hand",
            "title": "Scheduled For"
          },
          "size_gib": {
            "title": "Size Gib",
            "type": "integer"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "status_message": {
            "title": "Status Message",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Tags",
            "type": "object"
          },
          "taken_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Taken At"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "vm_id": {
            "title": "Vm Id",
            "type": "string"
          },
          "volume_ids": {
            "items": {
              "type": "string"
            },
            "title": "Volume Ids",
            "type": "array"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "description",
          "tags",
          "state",
          "status_message",
          "created_at",
          "updated_at",
          "project_id",
          "vm_id",
          "volume_ids",
          "size_gib",
          "consistency",
          "taken_at",
          "schedule_id",
          "scheduled_for"
        ],
        "title": "SnapshotOut",
        "type": "object"
      },
      "SnapshotScheduleIn": {
        "properties": {
          "cron": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "For frequency custom: minute hour day-of-month month day-of-week, e.g. `30 2 * * 1-5`. At most once an hour: the minute is one number",
            "title": "Cron"
          },
          "description": {
            "default": "",
            "maxLength": 255,
            "title": "Description",
            "type": "string"
          },
          "enabled": {
            "default": true,
            "title": "Enabled",
            "type": "boolean"
          },
          "frequency": {
            "description": "hourly (at `minute`), daily (at `hour`:`minute`), weekly (on `weekday` at `hour`:`minute`), or custom (`cron`)",
            "enum": [
              "hourly",
              "daily",
              "weekly",
              "custom"
            ],
            "title": "Frequency",
            "type": "string"
          },
          "hour": {
            "default": 0,
            "maximum": 23,
            "minimum": 0,
            "title": "Hour",
            "type": "integer"
          },
          "minute": {
            "default": 0,
            "maximum": 59,
            "minimum": 0,
            "title": "Minute",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "retention_count": {
            "anyOf": [
              {
                "maximum": 100,
                "minimum": 1,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Keep the newest N snapshots this schedule took",
            "title": "Retention Count"
          },
          "retention_days": {
            "anyOf": [
              {
                "maximum": 365,
                "minimum": 1,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Delete snapshots this schedule took once they are N days old",
            "title": "Retention Days"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "default": {},
            "title": "Tags",
            "type": "object"
          },
          "timezone": {
            "default": "UTC",
            "description": "IANA time zone of the times, e.g. Africa/Nairobi",
            "maxLength": 64,
            "title": "Timezone",
            "type": "string"
          },
          "vm_id": {
            "title": "Vm Id",
            "type": "string"
          },
          "weekday": {
            "default": 0,
            "description": "0 = Sunday, 6 = Saturday",
            "maximum": 6,
            "minimum": 0,
            "title": "Weekday",
            "type": "integer"
          }
        },
        "required": [
          "name",
          "vm_id",
          "frequency"
        ],
        "title": "SnapshotScheduleIn",
        "type": "object"
      },
      "SnapshotScheduleOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "cron": {
            "description": "The effective cron expression, presets included",
            "title": "Cron",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "enabled": {
            "title": "Enabled",
            "type": "boolean"
          },
          "failures": {
            "description": "Runs in a row that didn't succeed",
            "title": "Failures",
            "type": "integer"
          },
          "frequency": {
            "title": "Frequency",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "last_run": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SnapshotScheduleRunOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "missed": {
            "description": "Runs not taken because the scheduler wasn't running",
            "title": "Missed",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "next_run_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The next run (UTC); null while disabled",
            "title": "Next Run At"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "retention_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Retention Count"
          },
          "retention_days": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Retention Days"
          },
          "snapshot_count": {
            "description": "Live snapshots this schedule took",
            "title": "Snapshot Count",
            "type": "integer"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "status_message": {
            "title": "Status Message",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Tags",
            "type": "object"
          },
          "timezone": {
            "title": "Timezone",
            "type": "string"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "vm_id": {
            "title": "Vm Id",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "description",
          "tags",
          "state",
          "status_message",
          "created_at",
          "updated_at",
          "project_id",
          "vm_id",
          "frequency",
          "cron",
          "timezone",
          "retention_count",
          "retention_days",
          "enabled",
          "next_run_at",
          "last_run",
          "failures",
          "missed",
          "snapshot_count"
        ],
        "title": "SnapshotScheduleOut",
        "type": "object"
      },
      "SnapshotSchedulePatch": {
        "properties": {
          "clear_retention_count": {
            "default": false,
            "description": "Stop keeping by count (retention_days must then be set)",
            "title": "Clear Retention Count",
            "type": "boolean"
          },
          "clear_retention_days": {
            "default": false,
            "description": "Stop keeping by age (retention_count must then be set)",
            "title": "Clear Retention Days",
            "type": "boolean"
          },
          "cron": {
            "anyOf": [
              {
                "maxLength": 100,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cron"
          },
          "description": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "enabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Enabled"
          },
          "frequency": {
            "anyOf": [
              {
                "enum": [
                  "hourly",
                  "daily",
                  "weekly",
                  "custom"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Frequency"
          },
          "hour": {
            "anyOf": [
              {
                "maximum": 23,
                "minimum": 0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hour"
          },
          "minute": {
            "anyOf": [
              {
                "maximum": 59,
                "minimum": 0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Minute"
          },
          "retention_count": {
            "anyOf": [
              {
                "maximum": 100,
                "minimum": 1,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Retention Count"
          },
          "retention_days": {
            "anyOf": [
              {
                "maximum": 365,
                "minimum": 1,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Retention Days"
          },
          "tags": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tags"
          },
          "timezone": {
            "anyOf": [
              {
                "maxLength": 64,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timezone"
          },
          "weekday": {
            "anyOf": [
              {
                "description": "0 = Sunday, 6 = Saturday",
                "maximum": 6,
                "minimum": 0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Weekday"
          }
        },
        "title": "SnapshotSchedulePatch",
        "type": "object"
      },
      "SnapshotScheduleRunOut": {
        "properties": {
          "at": {
            "description": "When the scheduler dealt with it",
            "format": "date-time",
            "title": "At",
            "type": "string"
          },
          "message": {
            "title": "Message",
            "type": "string"
          },
          "reason": {
            "description": "Why it didn't succeed. Skipped: quota, balance, suspended, vm_busy, vm_gone, project_gone, snapshot_deleted. Failed (TebibHost is alerted): snapshot_failed, snapshot_timeout. Empty otherwise",
            "title": "Reason",
            "type": "string"
          },
          "result": {
            "enum": [
              "pending",
              "succeeded",
              "failed",
              "skipped"
            ],
            "title": "Result",
            "type": "string"
          },
          "scheduled_for": {
            "description": "The run (UTC)",
            "format": "date-time",
            "title": "Scheduled For",
            "type": "string"
          },
          "snapshot_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Snapshot Id"
          }
        },
        "required": [
          "scheduled_for",
          "at",
          "result",
          "reason",
          "message",
          "snapshot_id"
        ],
        "title": "SnapshotScheduleRunOut",
        "type": "object"
      },
      "SpendDayOut": {
        "properties": {
          "amount_micro": {
            "title": "Amount Micro",
            "type": "integer"
          },
          "day": {
            "format": "date",
            "title": "Day",
            "type": "string"
          }
        },
        "required": [
          "day",
          "amount_micro"
        ],
        "title": "SpendDayOut",
        "type": "object"
      },
      "SpendMeterOut": {
        "properties": {
          "amount_micro": {
            "title": "Amount Micro",
            "type": "integer"
          },
          "meter": {
            "title": "Meter",
            "type": "string"
          }
        },
        "required": [
          "meter",
          "amount_micro"
        ],
        "title": "SpendMeterOut",
        "type": "object"
      },
      "SpendOut": {
        "properties": {
          "by_day": {
            "items": {
              "$ref": "#/components/schemas/SpendDayOut"
            },
            "title": "By Day",
            "type": "array"
          },
          "by_meter": {
            "items": {
              "$ref": "#/components/schemas/SpendMeterOut"
            },
            "title": "By Meter",
            "type": "array"
          },
          "by_project": {
            "items": {
              "$ref": "#/components/schemas/SpendProjectOut"
            },
            "title": "By Project",
            "type": "array"
          },
          "by_resource": {
            "items": {
              "$ref": "#/components/schemas/SpendResourceOut"
            },
            "title": "By Resource",
            "type": "array"
          },
          "end": {
            "format": "date-time",
            "title": "End",
            "type": "string"
          },
          "month": {
            "title": "Month",
            "type": "string"
          },
          "start": {
            "format": "date-time",
            "title": "Start",
            "type": "string"
          },
          "total_micro": {
            "title": "Total Micro",
            "type": "integer"
          }
        },
        "required": [
          "month",
          "start",
          "end",
          "total_micro",
          "by_project",
          "by_meter",
          "by_resource",
          "by_day"
        ],
        "title": "SpendOut",
        "type": "object"
      },
      "SpendProjectOut": {
        "properties": {
          "amount_micro": {
            "title": "Amount Micro",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          }
        },
        "required": [
          "project_id",
          "name",
          "amount_micro"
        ],
        "title": "SpendProjectOut",
        "type": "object"
      },
      "SpendResourceOut": {
        "properties": {
          "amount_micro": {
            "title": "Amount Micro",
            "type": "integer"
          },
          "meters": {
            "items": {
              "type": "string"
            },
            "title": "Meters",
            "type": "array"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "resource_id": {
            "title": "Resource Id",
            "type": "string"
          },
          "resource_trn": {
            "title": "Resource Trn",
            "type": "string"
          },
          "resource_type": {
            "title": "Resource Type",
            "type": "string"
          }
        },
        "required": [
          "resource_id",
          "resource_trn",
          "resource_type",
          "name",
          "project_id",
          "meters",
          "amount_micro"
        ],
        "title": "SpendResourceOut",
        "type": "object"
      },
      "StatementOut": {
        "properties": {
          "closing_micro": {
            "title": "Closing Micro",
            "type": "integer"
          },
          "data": {
            "additionalProperties": true,
            "title": "Data",
            "type": "object"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "issued_at": {
            "format": "date-time",
            "title": "Issued At",
            "type": "string"
          },
          "number": {
            "title": "Number",
            "type": "string"
          },
          "opening_micro": {
            "title": "Opening Micro",
            "type": "integer"
          },
          "period_end": {
            "format": "date-time",
            "title": "Period End",
            "type": "string"
          },
          "period_start": {
            "format": "date-time",
            "title": "Period Start",
            "type": "string"
          },
          "sha256": {
            "title": "Sha256",
            "type": "string"
          }
        },
        "required": [
          "id",
          "number",
          "period_start",
          "period_end",
          "opening_micro",
          "closing_micro",
          "issued_at",
          "sha256",
          "data"
        ],
        "title": "StatementOut",
        "type": "object"
      },
      "StatementSummaryOut": {
        "properties": {
          "closing_micro": {
            "title": "Closing Micro",
            "type": "integer"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "issued_at": {
            "format": "date-time",
            "title": "Issued At",
            "type": "string"
          },
          "number": {
            "title": "Number",
            "type": "string"
          },
          "opening_micro": {
            "title": "Opening Micro",
            "type": "integer"
          },
          "period_end": {
            "format": "date-time",
            "title": "Period End",
            "type": "string"
          },
          "period_start": {
            "format": "date-time",
            "title": "Period Start",
            "type": "string"
          },
          "sha256": {
            "title": "Sha256",
            "type": "string"
          }
        },
        "required": [
          "id",
          "number",
          "period_start",
          "period_end",
          "opening_micro",
          "closing_micro",
          "issued_at",
          "sha256"
        ],
        "title": "StatementSummaryOut",
        "type": "object"
      },
      "StorageKeyCreatedOut": {
        "properties": {
          "access_key_id": {
            "title": "Access Key Id",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "effective_status": {
            "description": "pending, active, inactive, holder-inactive or lost: what S3 sees now",
            "title": "Effective Status",
            "type": "string"
          },
          "endpoint": {
            "title": "Endpoint",
            "type": "string"
          },
          "holder": {
            "description": "TRN of the user or service account holding the key",
            "title": "Holder",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "previous_access_key_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "After a rotation: the old key, still accepted until previous_expires_at",
            "title": "Previous Access Key Id"
          },
          "previous_expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Expires At"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "region": {
            "title": "Region",
            "type": "string"
          },
          "rotated_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rotated At"
          },
          "secret_access_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Shown once, here. None when an Idempotency-Key replays an earlier create",
            "title": "Secret Access Key"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "status": {
            "description": "active or inactive, as set through the API",
            "title": "Status",
            "type": "string"
          },
          "status_message": {
            "title": "Status Message",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Tags",
            "type": "object"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "description",
          "tags",
          "state",
          "status_message",
          "created_at",
          "updated_at",
          "project_id",
          "access_key_id",
          "holder",
          "status",
          "effective_status",
          "previous_access_key_id",
          "previous_expires_at",
          "rotated_at",
          "endpoint",
          "secret_access_key",
          "region"
        ],
        "title": "StorageKeyCreatedOut",
        "type": "object"
      },
      "StorageKeyIn": {
        "properties": {
          "description": {
            "default": "",
            "maxLength": 255,
            "title": "Description",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "service_account_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Give the key to this service account (default: the caller, a user)",
            "title": "Service Account Id"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "default": {},
            "title": "Tags",
            "type": "object"
          }
        },
        "required": [
          "name"
        ],
        "title": "StorageKeyIn",
        "type": "object"
      },
      "StorageKeyOut": {
        "properties": {
          "access_key_id": {
            "title": "Access Key Id",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "effective_status": {
            "description": "pending, active, inactive, holder-inactive or lost: what S3 sees now",
            "title": "Effective Status",
            "type": "string"
          },
          "endpoint": {
            "title": "Endpoint",
            "type": "string"
          },
          "holder": {
            "description": "TRN of the user or service account holding the key",
            "title": "Holder",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "previous_access_key_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "After a rotation: the old key, still accepted until previous_expires_at",
            "title": "Previous Access Key Id"
          },
          "previous_expires_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Previous Expires At"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "rotated_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rotated At"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "status": {
            "description": "active or inactive, as set through the API",
            "title": "Status",
            "type": "string"
          },
          "status_message": {
            "title": "Status Message",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Tags",
            "type": "object"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "description",
          "tags",
          "state",
          "status_message",
          "created_at",
          "updated_at",
          "project_id",
          "access_key_id",
          "holder",
          "status",
          "effective_status",
          "previous_access_key_id",
          "previous_expires_at",
          "rotated_at",
          "endpoint"
        ],
        "title": "StorageKeyOut",
        "type": "object"
      },
      "StorageKeyPatch": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "status": {
            "anyOf": [
              {
                "enum": [
                  "active",
                  "inactive"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status"
          },
          "tags": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tags"
          }
        },
        "title": "StorageKeyPatch",
        "type": "object"
      },
      "StorageOut": {
        "properties": {
          "access_keys": {
            "title": "Access Keys",
            "type": "integer"
          },
          "buckets": {
            "title": "Buckets",
            "type": "integer"
          },
          "endpoint": {
            "description": "S3 endpoint, path-style (https://<endpoint>/<bucket>/<key>)",
            "title": "Endpoint",
            "type": "string"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "quota_gib": {
            "description": "The project's storage quota (storage_gib)",
            "title": "Quota Gib",
            "type": "integer"
          },
          "region": {
            "description": "The region name S3 clients sign requests with",
            "title": "Region",
            "type": "string"
          },
          "state": {
            "description": "The project's storage account: none, creating, active...",
            "title": "State",
            "type": "string"
          },
          "stored_bytes": {
            "title": "Stored Bytes",
            "type": "integer"
          }
        },
        "required": [
          "project_id",
          "endpoint",
          "region",
          "buckets",
          "access_keys",
          "stored_bytes",
          "quota_gib",
          "state"
        ],
        "title": "StorageOut",
        "type": "object"
      },
      "SubnetIn": {
        "properties": {
          "cidr": {
            "description": "IPv4 CIDR inside the VPC's, not overlapping its subnets",
            "title": "Cidr",
            "type": "string"
          },
          "description": {
            "default": "",
            "maxLength": 255,
            "title": "Description",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "default": {},
            "title": "Tags",
            "type": "object"
          },
          "vpc_id": {
            "title": "Vpc Id",
            "type": "string"
          }
        },
        "required": [
          "vpc_id",
          "name",
          "cidr"
        ],
        "title": "SubnetIn",
        "type": "object"
      },
      "SubnetOut": {
        "properties": {
          "available_ipv4": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Available Ipv4"
          },
          "cidr": {
            "title": "Cidr",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "gateway": {
            "title": "Gateway",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "ipv6_cidr": {
            "title": "Ipv6 Cidr",
            "type": "string"
          },
          "ipv6_gateway": {
            "title": "Ipv6 Gateway",
            "type": "string"
          },
          "is_default": {
            "title": "Is Default",
            "type": "boolean"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "status_message": {
            "title": "Status Message",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Tags",
            "type": "object"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "vpc_id": {
            "title": "Vpc Id",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "description",
          "tags",
          "state",
          "status_message",
          "created_at",
          "updated_at",
          "project_id",
          "vpc_id",
          "cidr",
          "ipv6_cidr",
          "gateway",
          "ipv6_gateway",
          "is_default",
          "available_ipv4"
        ],
        "title": "SubnetOut",
        "type": "object"
      },
      "TagsPatch": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "tags": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tags"
          }
        },
        "title": "TagsPatch",
        "type": "object"
      },
      "TargetGroupIn": {
        "properties": {
          "algorithm": {
            "default": "round_robin",
            "enum": [
              "round_robin",
              "least_connections",
              "source_ip"
            ],
            "title": "Algorithm",
            "type": "string"
          },
          "health_check": {
            "allOf": [
              {
                "$ref": "#/components/schemas/HealthCheckIn"
              }
            ]
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "port": {
            "maximum": 65535,
            "minimum": 1,
            "title": "Port",
            "type": "integer"
          },
          "protocol": {
            "default": "tcp",
            "enum": [
              "tcp",
              "http"
            ],
            "title": "Protocol",
            "type": "string"
          },
          "proxy_protocol": {
            "default": false,
            "description": "TCP only: send a PROXY protocol v2 header to the targets",
            "title": "Proxy Protocol",
            "type": "boolean"
          },
          "targets": {
            "items": {
              "$ref": "#/components/schemas/TargetIn"
            },
            "maxItems": 50,
            "title": "Targets",
            "type": "array"
          }
        },
        "required": [
          "name",
          "port"
        ],
        "title": "TargetGroupIn",
        "type": "object"
      },
      "TargetGroupOut": {
        "properties": {
          "algorithm": {
            "title": "Algorithm",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "health_check": {
            "$ref": "#/components/schemas/HealthCheckOut"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "port": {
            "title": "Port",
            "type": "integer"
          },
          "protocol": {
            "title": "Protocol",
            "type": "string"
          },
          "proxy_protocol": {
            "title": "Proxy Protocol",
            "type": "boolean"
          },
          "targets": {
            "items": {
              "$ref": "#/components/schemas/TargetOut"
            },
            "title": "Targets",
            "type": "array"
          }
        },
        "required": [
          "id",
          "name",
          "protocol",
          "port",
          "algorithm",
          "proxy_protocol",
          "health_check",
          "targets",
          "created_at"
        ],
        "title": "TargetGroupOut",
        "type": "object"
      },
      "TargetGroupPatch": {
        "properties": {
          "algorithm": {
            "anyOf": [
              {
                "enum": [
                  "round_robin",
                  "least_connections",
                  "source_ip"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Algorithm"
          },
          "health_check": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/HealthCheckIn"
              },
              {
                "type": "null"
              }
            ]
          },
          "port": {
            "anyOf": [
              {
                "maximum": 65535,
                "minimum": 1,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Port"
          },
          "proxy_protocol": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Proxy Protocol"
          }
        },
        "title": "TargetGroupPatch",
        "type": "object"
      },
      "TargetIn": {
        "properties": {
          "port": {
            "anyOf": [
              {
                "maximum": 65535,
                "minimum": 1,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Defaults to the group's port",
            "title": "Port"
          },
          "vm_id": {
            "title": "Vm Id",
            "type": "string"
          }
        },
        "required": [
          "vm_id"
        ],
        "title": "TargetIn",
        "type": "object"
      },
      "TargetOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "effective_port": {
            "title": "Effective Port",
            "type": "integer"
          },
          "health": {
            "enum": [
              "healthy",
              "unhealthy",
              "initial",
              "unused",
              "unavailable"
            ],
            "title": "Health",
            "type": "string"
          },
          "health_reason": {
            "title": "Health Reason",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "port": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Port"
          },
          "vm_id": {
            "title": "Vm Id",
            "type": "string"
          }
        },
        "required": [
          "id",
          "vm_id",
          "port",
          "effective_port",
          "health",
          "health_reason",
          "created_at"
        ],
        "title": "TargetOut",
        "type": "object"
      },
      "TicketAttachmentIn": {
        "properties": {
          "content_base64": {
            "minLength": 4,
            "title": "Content Base64",
            "type": "string"
          },
          "content_type": {
            "enum": [
              "image/png",
              "image/jpeg",
              "application/pdf",
              "application/gzip",
              "application/zip",
              "text/plain",
              "application/json"
            ],
            "title": "Content Type",
            "type": "string"
          },
          "filename": {
            "maxLength": 255,
            "minLength": 1,
            "title": "Filename",
            "type": "string"
          }
        },
        "required": [
          "filename",
          "content_type",
          "content_base64"
        ],
        "title": "TicketAttachmentIn",
        "type": "object"
      },
      "TicketAttachmentOut": {
        "properties": {
          "available": {
            "title": "Available",
            "type": "boolean"
          },
          "content_type": {
            "title": "Content Type",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "filename": {
            "title": "Filename",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "sha256": {
            "title": "Sha256",
            "type": "string"
          },
          "size_bytes": {
            "title": "Size Bytes",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "filename",
          "content_type",
          "size_bytes",
          "sha256",
          "created_at",
          "available"
        ],
        "title": "TicketAttachmentOut",
        "type": "object"
      },
      "TicketDetailOut": {
        "properties": {
          "category": {
            "title": "Category",
            "type": "string"
          },
          "closed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Closed At"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "last_customer_message_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Customer Message At"
          },
          "last_staff_message_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Staff Message At"
          },
          "message_count": {
            "title": "Message Count",
            "type": "integer"
          },
          "messages": {
            "items": {
              "$ref": "#/components/schemas/TicketMessageOut"
            },
            "title": "Messages",
            "type": "array"
          },
          "opened_by": {
            "title": "Opened By",
            "type": "string"
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          },
          "resolved_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resolved At"
          },
          "severity": {
            "title": "Severity",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "subject": {
            "title": "Subject",
            "type": "string"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "subject",
          "category",
          "severity",
          "status",
          "project_id",
          "opened_by",
          "created_at",
          "updated_at",
          "last_customer_message_at",
          "last_staff_message_at",
          "resolved_at",
          "closed_at",
          "message_count",
          "messages"
        ],
        "title": "TicketDetailOut",
        "type": "object"
      },
      "TicketIn": {
        "properties": {
          "attachments": {
            "items": {
              "$ref": "#/components/schemas/TicketAttachmentIn"
            },
            "maxItems": 5,
            "title": "Attachments",
            "type": "array"
          },
          "body": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Body",
            "type": "string"
          },
          "category": {
            "enum": [
              "billing",
              "technical",
              "abuse",
              "account",
              "other"
            ],
            "title": "Category",
            "type": "string"
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          },
          "severity": {
            "default": "normal",
            "enum": [
              "low",
              "normal",
              "high",
              "urgent"
            ],
            "title": "Severity",
            "type": "string"
          },
          "subject": {
            "maxLength": 200,
            "minLength": 3,
            "title": "Subject",
            "type": "string"
          }
        },
        "required": [
          "subject",
          "category",
          "body"
        ],
        "title": "TicketIn",
        "type": "object"
      },
      "TicketMessageOut": {
        "properties": {
          "attachments": {
            "items": {
              "$ref": "#/components/schemas/TicketAttachmentOut"
            },
            "title": "Attachments",
            "type": "array"
          },
          "author_kind": {
            "enum": [
              "customer",
              "staff",
              "system"
            ],
            "title": "Author Kind",
            "type": "string"
          },
          "author_name": {
            "title": "Author Name",
            "type": "string"
          },
          "body": {
            "title": "Body",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          }
        },
        "required": [
          "id",
          "author_kind",
          "author_name",
          "body",
          "created_at",
          "attachments"
        ],
        "title": "TicketMessageOut",
        "type": "object"
      },
      "TicketOut": {
        "properties": {
          "category": {
            "title": "Category",
            "type": "string"
          },
          "closed_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Closed At"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "last_customer_message_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Customer Message At"
          },
          "last_staff_message_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Staff Message At"
          },
          "message_count": {
            "title": "Message Count",
            "type": "integer"
          },
          "opened_by": {
            "title": "Opened By",
            "type": "string"
          },
          "project_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Project Id"
          },
          "resolved_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resolved At"
          },
          "severity": {
            "title": "Severity",
            "type": "string"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "subject": {
            "title": "Subject",
            "type": "string"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "subject",
          "category",
          "severity",
          "status",
          "project_id",
          "opened_by",
          "created_at",
          "updated_at",
          "last_customer_message_at",
          "last_staff_message_at",
          "resolved_at",
          "closed_at",
          "message_count"
        ],
        "title": "TicketOut",
        "type": "object"
      },
      "TicketReplyIn": {
        "properties": {
          "attachments": {
            "items": {
              "$ref": "#/components/schemas/TicketAttachmentIn"
            },
            "maxItems": 5,
            "title": "Attachments",
            "type": "array"
          },
          "body": {
            "maxLength": 20000,
            "minLength": 1,
            "title": "Body",
            "type": "string"
          }
        },
        "required": [
          "body"
        ],
        "title": "TicketReplyIn",
        "type": "object"
      },
      "TierLimitsOut": {
        "properties": {
          "bandwidth_mbps": {
            "title": "Bandwidth Mbps",
            "type": "integer"
          },
          "egress_gb_per_month": {
            "title": "Egress Gb Per Month",
            "type": "integer"
          },
          "memory_gib": {
            "title": "Memory Gib",
            "type": "integer"
          },
          "projects": {
            "title": "Projects",
            "type": "integer"
          },
          "public_ips": {
            "title": "Public Ips",
            "type": "integer"
          },
          "vcpus": {
            "title": "Vcpus",
            "type": "integer"
          },
          "vms": {
            "title": "Vms",
            "type": "integer"
          }
        },
        "required": [
          "projects",
          "vms",
          "vcpus",
          "memory_gib",
          "public_ips",
          "bandwidth_mbps",
          "egress_gb_per_month"
        ],
        "title": "TierLimitsOut",
        "type": "object"
      },
      "TopUpIn": {
        "properties": {
          "amount": {
            "description": "In the currency, e.g. '500' or '500.00'.",
            "title": "Amount",
            "type": "string"
          },
          "currency": {
            "default": "KES",
            "title": "Currency",
            "type": "string"
          },
          "method": {
            "default": "stk_push",
            "title": "Method",
            "type": "string"
          },
          "phone": {
            "default": "",
            "description": "M-Pesa: the paying phone number, e.g. 0712345678. Not used by Chapa.",
            "title": "Phone",
            "type": "string"
          },
          "provider": {
            "default": "mpesa",
            "title": "Provider",
            "type": "string"
          }
        },
        "required": [
          "amount"
        ],
        "title": "TopUpIn",
        "type": "object"
      },
      "TopUpOut": {
        "properties": {
          "amount_minor": {
            "title": "Amount Minor",
            "type": "integer"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "currency": {
            "title": "Currency",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "instruction": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instruction"
          },
          "method": {
            "title": "Method",
            "type": "string"
          },
          "payer": {
            "title": "Payer",
            "type": "string"
          },
          "provider": {
            "title": "Provider",
            "type": "string"
          },
          "provider_reference": {
            "title": "Provider Reference",
            "type": "string"
          },
          "rate": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rate"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "status_message": {
            "title": "Status Message",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "usd_micro": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Usd Micro"
          }
        },
        "required": [
          "id",
          "provider",
          "method",
          "currency",
          "amount_minor",
          "usd_micro",
          "rate",
          "state",
          "status_message",
          "payer",
          "provider_reference",
          "created_at",
          "updated_at"
        ],
        "title": "TopUpOut",
        "type": "object"
      },
      "TransactionOut": {
        "properties": {
          "amount": {
            "title": "Amount",
            "type": "string"
          },
          "amount_micro": {
            "title": "Amount Micro",
            "type": "integer"
          },
          "effective_at": {
            "format": "date-time",
            "title": "Effective At",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "memo": {
            "title": "Memo",
            "type": "string"
          },
          "posted_at": {
            "format": "date-time",
            "title": "Posted At",
            "type": "string"
          },
          "promo_micro": {
            "title": "Promo Micro",
            "type": "integer"
          },
          "wallet_micro": {
            "title": "Wallet Micro",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "kind",
          "effective_at",
          "posted_at",
          "memo",
          "amount_micro",
          "wallet_micro",
          "promo_micro",
          "amount"
        ],
        "title": "TransactionOut",
        "type": "object"
      },
      "UsageOut": {
        "properties": {
          "end": {
            "format": "date-time",
            "title": "End",
            "type": "string"
          },
          "granularity": {
            "enum": [
              "minute",
              "hour",
              "day"
            ],
            "title": "Granularity",
            "type": "string"
          },
          "metered_until": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Metered Until"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "series": {
            "items": {
              "$ref": "#/components/schemas/UsageSeries"
            },
            "title": "Series",
            "type": "array"
          },
          "start": {
            "format": "date-time",
            "title": "Start",
            "type": "string"
          }
        },
        "required": [
          "project_id",
          "start",
          "end",
          "granularity",
          "metered_until",
          "series"
        ],
        "title": "UsageOut",
        "type": "object"
      },
      "UsagePoint": {
        "properties": {
          "quantity": {
            "title": "Quantity",
            "type": "string"
          },
          "start": {
            "format": "date-time",
            "title": "Start",
            "type": "string"
          }
        },
        "required": [
          "start",
          "quantity"
        ],
        "title": "UsagePoint",
        "type": "object"
      },
      "UsageSeries": {
        "properties": {
          "meter": {
            "title": "Meter",
            "type": "string"
          },
          "points": {
            "items": {
              "$ref": "#/components/schemas/UsagePoint"
            },
            "title": "Points",
            "type": "array"
          },
          "resource_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resource Id"
          },
          "resource_trn": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Resource Trn"
          },
          "total": {
            "title": "Total",
            "type": "string"
          },
          "unit": {
            "title": "Unit",
            "type": "string"
          }
        },
        "required": [
          "meter",
          "unit",
          "total",
          "points"
        ],
        "title": "UsageSeries",
        "type": "object"
      },
      "VMActivityEventOut": {
        "properties": {
          "action": {
            "title": "Action",
            "type": "string"
          },
          "at": {
            "format": "date-time",
            "title": "At",
            "type": "string"
          },
          "details": {
            "additionalProperties": true,
            "title": "Details",
            "type": "object"
          },
          "id": {
            "title": "Id",
            "type": "integer"
          },
          "outcome": {
            "enum": [
              "success",
              "denied",
              "failed"
            ],
            "title": "Outcome",
            "type": "string"
          },
          "principal": {
            "description": "TRN of who acted (user, service account or role)",
            "title": "Principal",
            "type": "string"
          },
          "request_id": {
            "title": "Request Id",
            "type": "string"
          },
          "source_ip": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Ip"
          }
        },
        "required": [
          "id",
          "at",
          "principal",
          "action",
          "outcome",
          "details",
          "request_id",
          "source_ip"
        ],
        "title": "VMActivityEventOut",
        "type": "object"
      },
      "VMActivityPage": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/VMActivityEventOut"
            },
            "title": "Items",
            "type": "array"
          },
          "next_cursor": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Next Cursor"
          }
        },
        "required": [
          "items"
        ],
        "title": "VMActivityPage",
        "type": "object"
      },
      "VMAddressOut": {
        "properties": {
          "address": {
            "title": "Address",
            "type": "string"
          },
          "family": {
            "enum": [
              "ipv4",
              "ipv6"
            ],
            "title": "Family",
            "type": "string"
          },
          "primary": {
            "title": "Primary",
            "type": "boolean"
          }
        },
        "required": [
          "family",
          "address",
          "primary"
        ],
        "title": "VMAddressOut",
        "type": "object"
      },
      "VMConsoleIn": {
        "properties": {
          "kind": {
            "default": "serial",
            "enum": [
              "serial",
              "vnc"
            ],
            "title": "Kind",
            "type": "string"
          }
        },
        "title": "VMConsoleIn",
        "type": "object"
      },
      "VMConsoleOut": {
        "properties": {
          "expires_at": {
            "format": "date-time",
            "title": "Expires At",
            "type": "string"
          },
          "kind": {
            "title": "Kind",
            "type": "string"
          },
          "url": {
            "description": "Open a websocket to this URL within expires_at",
            "title": "Url",
            "type": "string"
          }
        },
        "required": [
          "url",
          "kind",
          "expires_at"
        ],
        "title": "VMConsoleOut",
        "type": "object"
      },
      "VMGuestOSOut": {
        "properties": {
          "kernel": {
            "title": "Kernel",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "version": {
            "title": "Version",
            "type": "string"
          }
        },
        "required": [
          "name",
          "version",
          "kernel"
        ],
        "title": "VMGuestOSOut",
        "type": "object"
      },
      "VMIn": {
        "properties": {
          "description": {
            "default": "",
            "maxLength": 255,
            "title": "Description",
            "type": "string"
          },
          "hostname": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Defaults to the name, lowercased, as a DNS label",
            "title": "Hostname"
          },
          "image": {
            "title": "Image",
            "type": "string"
          },
          "instance_type": {
            "title": "Instance Type",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "power_state": {
            "default": "running",
            "enum": [
              "running",
              "stopped"
            ],
            "title": "Power State",
            "type": "string"
          },
          "root_disk_gib": {
            "anyOf": [
              {
                "maximum": 2048,
                "minimum": 1,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Defaults to 20 GiB or the image's minimum, whichever is larger",
            "title": "Root Disk Gib"
          },
          "security_group_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "maxItems": 5,
                "minItems": 1,
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "Defaults to the subnet VPC's default security group",
            "title": "Security Group Ids"
          },
          "ssh_key_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "title": "Ssh Key Ids",
            "type": "array"
          },
          "subnet_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Defaults to the default VPC's default subnet",
            "title": "Subnet Id"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "default": {},
            "title": "Tags",
            "type": "object"
          },
          "user_data": {
            "default": "",
            "description": "Optional cloud-init user data (any format: #cloud-config, a script...)",
            "title": "User Data",
            "type": "string"
          }
        },
        "required": [
          "name",
          "instance_type",
          "image"
        ],
        "title": "VMIn",
        "type": "object"
      },
      "VMLastActionOut": {
        "properties": {
          "kind": {
            "enum": [
              "reboot",
              "restore"
            ],
            "title": "Kind",
            "type": "string"
          },
          "message": {
            "title": "Message",
            "type": "string"
          },
          "ok": {
            "title": "Ok",
            "type": "boolean"
          }
        },
        "required": [
          "kind",
          "ok",
          "message"
        ],
        "title": "VMLastActionOut",
        "type": "object"
      },
      "VMMetricsOut": {
        "properties": {
          "end": {
            "format": "date-time",
            "title": "End",
            "type": "string"
          },
          "memory_bytes": {
            "title": "Memory Bytes",
            "type": "integer"
          },
          "series": {
            "items": {
              "$ref": "#/components/schemas/MetricSeriesOut"
            },
            "title": "Series",
            "type": "array"
          },
          "start": {
            "format": "date-time",
            "title": "Start",
            "type": "string"
          },
          "step_seconds": {
            "title": "Step Seconds",
            "type": "integer"
          },
          "timestamps": {
            "description": "Unix seconds, shared by every series",
            "items": {
              "type": "integer"
            },
            "title": "Timestamps",
            "type": "array"
          },
          "vcpus": {
            "title": "Vcpus",
            "type": "integer"
          },
          "window": {
            "enum": [
              "1h",
              "6h",
              "24h",
              "7d"
            ],
            "title": "Window",
            "type": "string"
          }
        },
        "required": [
          "window",
          "step_seconds",
          "start",
          "end",
          "vcpus",
          "memory_bytes",
          "timestamps",
          "series"
        ],
        "title": "VMMetricsOut",
        "type": "object"
      },
      "VMOut": {
        "properties": {
          "addresses": {
            "items": {
              "$ref": "#/components/schemas/VMAddressOut"
            },
            "title": "Addresses",
            "type": "array"
          },
          "boot_volume_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Boot Volume Id"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "desired_power_state": {
            "description": "running or stopped, as last requested",
            "title": "Desired Power State",
            "type": "string"
          },
          "guest_agent": {
            "title": "Guest Agent",
            "type": "boolean"
          },
          "guest_os": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VMGuestOSOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "held_reason": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Set while TebibHost holds the VM for abuse review: it can't be started",
            "title": "Held Reason"
          },
          "hostname": {
            "title": "Hostname",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "image": {
            "title": "Image",
            "type": "string"
          },
          "instance_type": {
            "title": "Instance Type",
            "type": "string"
          },
          "last_action": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VMLastActionOut"
              },
              {
                "type": "null"
              }
            ]
          },
          "memory_mib": {
            "title": "Memory Mib",
            "type": "integer"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "power_state": {
            "description": "As observed: running, stopped, starting, stopping, paused, error, unknown",
            "title": "Power State",
            "type": "string"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "restart_required": {
            "title": "Restart Required",
            "type": "boolean"
          },
          "security_group_ids": {
            "items": {
              "type": "string"
            },
            "title": "Security Group Ids",
            "type": "array"
          },
          "ssh_key_ids": {
            "items": {
              "type": "string"
            },
            "title": "Ssh Key Ids",
            "type": "array"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "status_message": {
            "title": "Status Message",
            "type": "string"
          },
          "stop_reason": {
            "anyOf": [
              {
                "enum": [
                  "guest",
                  "abuse",
                  "balance",
                  "suspended"
                ],
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "guest: the VM was shut down from inside (power_state stopped although desired_power_state is running); it stays stopped until started. abuse: TebibHost stopped it after detecting abuse (see held_reason; contact abuse@tebibhost.com). balance: TebibHost stopped it because the balance ran out; start it after a top-up. suspended: the organization is suspended",
            "title": "Stop Reason"
          },
          "subnet_id": {
            "title": "Subnet Id",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Tags",
            "type": "object"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "vcpus": {
            "title": "Vcpus",
            "type": "integer"
          },
          "volumes": {
            "items": {
              "$ref": "#/components/schemas/VolumeAttachmentOut"
            },
            "title": "Volumes",
            "type": "array"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "description",
          "tags",
          "state",
          "status_message",
          "created_at",
          "updated_at",
          "project_id",
          "hostname",
          "instance_type",
          "vcpus",
          "memory_mib",
          "image",
          "desired_power_state",
          "power_state",
          "addresses",
          "guest_agent",
          "guest_os",
          "restart_required",
          "volumes",
          "boot_volume_id",
          "ssh_key_ids",
          "subnet_id",
          "security_group_ids",
          "last_action"
        ],
        "title": "VMOut",
        "type": "object"
      },
      "VMPatch": {
        "properties": {
          "description": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "tags": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tags"
          }
        },
        "title": "VMPatch",
        "type": "object"
      },
      "VMSecurityGroupsIn": {
        "properties": {
          "security_group_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 1,
            "title": "Security Group Ids",
            "type": "array"
          }
        },
        "required": [
          "security_group_ids"
        ],
        "title": "VMSecurityGroupsIn",
        "type": "object"
      },
      "VerificationOut": {
        "properties": {
          "id_verified": {
            "title": "Id Verified",
            "type": "boolean"
          },
          "id_verified_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Id Verified At"
          },
          "limits": {
            "$ref": "#/components/schemas/TierLimitsOut"
          },
          "next_step": {
            "title": "Next Step",
            "type": "string"
          },
          "organization_id": {
            "title": "Organization Id",
            "type": "string"
          },
          "phone_masked": {
            "title": "Phone Masked",
            "type": "string"
          },
          "phone_verified": {
            "title": "Phone Verified",
            "type": "boolean"
          },
          "phone_verified_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone Verified At"
          },
          "tier": {
            "title": "Tier",
            "type": "string"
          }
        },
        "required": [
          "organization_id",
          "tier",
          "limits",
          "phone_verified",
          "phone_masked",
          "phone_verified_at",
          "id_verified",
          "id_verified_at",
          "next_step"
        ],
        "title": "VerificationOut",
        "type": "object"
      },
      "VersionIn": {
        "properties": {
          "document": {
            "additionalProperties": true,
            "title": "Document",
            "type": "object"
          },
          "set_as_default": {
            "default": true,
            "title": "Set As Default",
            "type": "boolean"
          }
        },
        "required": [
          "document"
        ],
        "title": "VersionIn",
        "type": "object"
      },
      "VersionOut": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "created_by": {
            "title": "Created By",
            "type": "string"
          },
          "document": {
            "additionalProperties": true,
            "title": "Document",
            "type": "object"
          },
          "is_default": {
            "title": "Is Default",
            "type": "boolean"
          },
          "version": {
            "title": "Version",
            "type": "integer"
          }
        },
        "required": [
          "version",
          "is_default",
          "document",
          "created_at",
          "created_by"
        ],
        "title": "VersionOut",
        "type": "object"
      },
      "VolumeAttachmentOut": {
        "properties": {
          "state": {
            "enum": [
              "attached",
              "attaching",
              "detaching"
            ],
            "title": "State",
            "type": "string"
          },
          "volume_id": {
            "title": "Volume Id",
            "type": "string"
          }
        },
        "required": [
          "volume_id",
          "state"
        ],
        "title": "VolumeAttachmentOut",
        "type": "object"
      },
      "VolumeIn": {
        "properties": {
          "delete_on_termination": {
            "default": false,
            "title": "Delete On Termination",
            "type": "boolean"
          },
          "description": {
            "default": "",
            "maxLength": 255,
            "title": "Description",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "size_gib": {
            "maximum": 2048,
            "minimum": 1,
            "title": "Size Gib",
            "type": "integer"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "default": {},
            "title": "Tags",
            "type": "object"
          },
          "vm_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Attach to this VM once created",
            "title": "Vm Id"
          }
        },
        "required": [
          "name",
          "size_gib"
        ],
        "title": "VolumeIn",
        "type": "object"
      },
      "VolumeOut": {
        "properties": {
          "boot": {
            "title": "Boot",
            "type": "boolean"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "delete_on_termination": {
            "title": "Delete On Termination",
            "type": "boolean"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "size_gib": {
            "title": "Size Gib",
            "type": "integer"
          },
          "source_image": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Image"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "status_message": {
            "title": "Status Message",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Tags",
            "type": "object"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          },
          "vm_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Vm Id"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "description",
          "tags",
          "state",
          "status_message",
          "created_at",
          "updated_at",
          "project_id",
          "size_gib",
          "boot",
          "source_image",
          "vm_id",
          "delete_on_termination"
        ],
        "title": "VolumeOut",
        "type": "object"
      },
      "VolumePatch": {
        "properties": {
          "delete_on_termination": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Delete On Termination"
          },
          "description": {
            "anyOf": [
              {
                "maxLength": 255,
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description"
          },
          "tags": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tags"
          }
        },
        "title": "VolumePatch",
        "type": "object"
      },
      "VpcIn": {
        "properties": {
          "cidr": {
            "description": "IPv4 CIDR from 10/8, 172.16/12 or 192.168/16, /16 to /28",
            "title": "Cidr",
            "type": "string"
          },
          "description": {
            "default": "",
            "maxLength": 255,
            "title": "Description",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "default": {},
            "title": "Tags",
            "type": "object"
          }
        },
        "required": [
          "name",
          "cidr"
        ],
        "title": "VpcIn",
        "type": "object"
      },
      "VpcOut": {
        "properties": {
          "cidr": {
            "title": "Cidr",
            "type": "string"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "description": {
            "title": "Description",
            "type": "string"
          },
          "dns_server": {
            "default": "100.67.53.53",
            "title": "Dns Server",
            "type": "string"
          },
          "has_nat_gateway": {
            "title": "Has Nat Gateway",
            "type": "boolean"
          },
          "id": {
            "title": "Id",
            "type": "string"
          },
          "ipv6_cidr": {
            "title": "Ipv6 Cidr",
            "type": "string"
          },
          "is_default": {
            "title": "Is Default",
            "type": "boolean"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "project_id": {
            "title": "Project Id",
            "type": "string"
          },
          "state": {
            "title": "State",
            "type": "string"
          },
          "status_message": {
            "title": "Status Message",
            "type": "string"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Tags",
            "type": "object"
          },
          "trn": {
            "title": "Trn",
            "type": "string"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "id",
          "trn",
          "name",
          "description",
          "tags",
          "state",
          "status_message",
          "created_at",
          "updated_at",
          "project_id",
          "cidr",
          "ipv6_cidr",
          "is_default",
          "has_nat_gateway"
        ],
        "title": "VpcOut",
        "type": "object"
      },
      "WaitlistConfigOut": {
        "properties": {
          "consent_text": {
            "title": "Consent Text",
            "type": "string"
          },
          "consent_version": {
            "title": "Consent Version",
            "type": "string"
          },
          "open": {
            "title": "Open",
            "type": "boolean"
          },
          "turnstile_site_key": {
            "title": "Turnstile Site Key",
            "type": "string"
          }
        },
        "required": [
          "open",
          "turnstile_site_key",
          "consent_text",
          "consent_version"
        ],
        "title": "WaitlistConfigOut",
        "type": "object"
      },
      "WaitlistIn": {
        "properties": {
          "captcha": {
            "maxLength": 2048,
            "title": "Captcha",
            "type": "string"
          },
          "consent": {
            "const": true,
            "title": "Consent",
            "type": "boolean"
          },
          "country": {
            "default": "",
            "maxLength": 2,
            "pattern": "^([A-Za-z]{2})?$",
            "title": "Country",
            "type": "string"
          },
          "email": {
            "maxLength": 254,
            "title": "Email",
            "type": "string"
          },
          "source": {
            "default": "",
            "maxLength": 64,
            "pattern": "^[a-z0-9/_-]*$",
            "title": "Source",
            "type": "string"
          },
          "use_case": {
            "default": "",
            "maxLength": 500,
            "title": "Use Case",
            "type": "string"
          }
        },
        "required": [
          "email",
          "captcha",
          "consent"
        ],
        "title": "WaitlistIn",
        "type": "object"
      },
      "WaitlistOut": {
        "properties": {
          "consent_version": {
            "title": "Consent Version",
            "type": "string"
          },
          "message": {
            "title": "Message",
            "type": "string"
          },
          "status": {
            "const": "ok",
            "title": "Status",
            "type": "string"
          }
        },
        "required": [
          "status",
          "message",
          "consent_version"
        ],
        "title": "WaitlistOut",
        "type": "object"
      }
    },
    "securitySchemes": {
      "BearerCredentialAuth": {
        "scheme": "bearer",
        "type": "http"
      },
      "SessionIdentityAuth": {
        "in": "cookie",
        "name": "sessionid",
        "type": "apiKey"
      }
    }
  },
  "info": {
    "description": "",
    "title": "TebibHost API",
    "version": "1"
  },
  "openapi": "3.1.0",
  "paths": {
    "/api/v1/csrf": {
      "get": {
        "description": "Set the ``csrftoken`` cookie (and return the token) for the SPA.",
        "operationId": "csrf",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "title": "Response",
                  "type": "object"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "summary": "Csrf"
      }
    },
    "/api/v1/fx-rates": {
      "get": {
        "operationId": "listFxRates",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/FxRateOut"
                  },
                  "title": "Response",
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "summary": "List Fx Rates",
        "tags": [
          "Billing"
        ]
      }
    },
    "/api/v1/invitations/{token}": {
      "get": {
        "operationId": "previewInvitation",
        "parameters": [
          {
            "in": "path",
            "name": "token",
            "required": true,
            "schema": {
              "title": "Token",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvitationPreview"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "summary": "Preview Invitation",
        "tags": [
          "Identity"
        ]
      }
    },
    "/api/v1/invitations/{token}/accept": {
      "post": {
        "description": "Join the organization. New people set a password; existing users must be signed in.",
        "operationId": "acceptInvitation",
        "parameters": [
          {
            "in": "path",
            "name": "token",
            "required": true,
            "schema": {
              "title": "Token",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AcceptIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AcceptOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "summary": "Accept Invitation",
        "tags": [
          "Identity"
        ]
      }
    },
    "/api/v1/me": {
      "get": {
        "operationId": "me",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MeOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Me",
        "tags": [
          "Identity"
        ]
      }
    },
    "/api/v1/me/preferences": {
      "get": {
        "operationId": "getPreferences",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PreferencesOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Preferences",
        "tags": [
          "Identity"
        ]
      },
      "patch": {
        "operationId": "updatePreferences",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PreferencesPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PreferencesOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Preferences",
        "tags": [
          "Identity"
        ]
      }
    },
    "/api/v1/orgs": {
      "get": {
        "operationId": "listOrganizations",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OrganizationOut"
                  },
                  "title": "Response",
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Organizations",
        "tags": [
          "Organizations and projects"
        ]
      },
      "post": {
        "operationId": "createOrganization",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrganizationIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatedOrganizationOut"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Organization",
        "tags": [
          "Signup and verification"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}": {
      "get": {
        "operationId": "getOrganization",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganizationOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Organization",
        "tags": [
          "Organizations and projects"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/activity": {
      "get": {
        "operationId": "listActivity",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "principal",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Principal"
            }
          },
          {
            "in": "query",
            "name": "action",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Action"
            }
          },
          {
            "in": "query",
            "name": "resource",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Resource"
            }
          },
          {
            "in": "query",
            "name": "project_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Project Id"
            }
          },
          {
            "in": "query",
            "name": "outcome",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "enum": [
                    "success",
                    "denied",
                    "failed"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Outcome"
            }
          },
          {
            "in": "query",
            "name": "since",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "date-time",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Since"
            }
          },
          {
            "in": "query",
            "name": "until",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "date-time",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Until"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityPage"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Activity",
        "tags": [
          "Activity"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/alerts": {
      "get": {
        "operationId": "listAlerts",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AlertsOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Alerts",
        "tags": [
          "Activity"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/billing": {
      "get": {
        "operationId": "getBilling",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Billing",
        "tags": [
          "Billing"
        ]
      },
      "patch": {
        "operationId": "updateBilling",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BillingPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Billing",
        "tags": [
          "Billing"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/billing/spend": {
      "get": {
        "operationId": "getSpend",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "month",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Month"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SpendOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Spend",
        "tags": [
          "Activity"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/billing/statements": {
      "get": {
        "description": "Monthly statements, newest first.",
        "operationId": "listStatements",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_StatementSummaryOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Statements",
        "tags": [
          "Billing"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/billing/statements/{statement_id}": {
      "get": {
        "operationId": "getStatement",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "statement_id",
            "required": true,
            "schema": {
              "title": "Statement Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatementOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Statement",
        "tags": [
          "Billing"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/billing/statements/{statement_id}/pdf": {
      "get": {
        "operationId": "getStatementPdf",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "statement_id",
            "required": true,
            "schema": {
              "title": "Statement Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/pdf": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "The PDF"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Statement Pdf",
        "tags": [
          "Billing"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/billing/top-ups": {
      "get": {
        "operationId": "listTopUps",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_TopUpOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Top Ups",
        "tags": [
          "Billing"
        ]
      },
      "post": {
        "description": "Start a payment. For M-Pesa (``stk_push``) the phone gets a PIN prompt; for Chapa\n(``checkout``, ETB or USD) send the payer to ``instruction.details.url``. Then poll the\ntop-up until it is ``succeeded``, ``failed`` or ``expired``.",
        "operationId": "createTopUp",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TopUpIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopUpOut"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Top Up",
        "tags": [
          "Billing"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/billing/top-ups/{topup_id}": {
      "get": {
        "operationId": "getTopUp",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "topup_id",
            "required": true,
            "schema": {
              "title": "Topup Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopUpOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Top Up",
        "tags": [
          "Billing"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/billing/top-ups/{topup_id}/receipt": {
      "get": {
        "description": "The receipt of a succeeded top-up (404 until it has succeeded).",
        "operationId": "getTopUpReceipt",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "topup_id",
            "required": true,
            "schema": {
              "title": "Topup Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response",
                  "type": "object"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Top Up Receipt",
        "tags": [
          "Billing"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/billing/top-ups/{topup_id}/receipt/pdf": {
      "get": {
        "operationId": "getTopUpReceiptPdf",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "topup_id",
            "required": true,
            "schema": {
              "title": "Topup Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/pdf": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "The PDF"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Top Up Receipt Pdf",
        "tags": [
          "Billing"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/billing/transactions": {
      "get": {
        "description": "Newest first.",
        "operationId": "listTransactions",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_TransactionOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Transactions",
        "tags": [
          "Billing"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/groups": {
      "get": {
        "operationId": "listGroups",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_GroupOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Groups",
        "tags": [
          "IAM"
        ]
      },
      "post": {
        "operationId": "createGroup",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupOut"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Group",
        "tags": [
          "IAM"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/groups/{group_id}": {
      "delete": {
        "operationId": "deleteGroup",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "group_id",
            "required": true,
            "schema": {
              "title": "Group Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Group",
        "tags": [
          "IAM"
        ]
      },
      "get": {
        "operationId": "getGroup",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "group_id",
            "required": true,
            "schema": {
              "title": "Group Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Group",
        "tags": [
          "IAM"
        ]
      },
      "patch": {
        "operationId": "updateGroup",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "group_id",
            "required": true,
            "schema": {
              "title": "Group Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GroupPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Group",
        "tags": [
          "IAM"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/groups/{group_id}/members": {
      "get": {
        "operationId": "listGroupMembers",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "group_id",
            "required": true,
            "schema": {
              "title": "Group Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/GroupMemberOut"
                  },
                  "title": "Response",
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Group Members",
        "tags": [
          "IAM"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/groups/{group_id}/members/{user_id}": {
      "delete": {
        "operationId": "removeGroupMember",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "group_id",
            "required": true,
            "schema": {
              "title": "Group Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "title": "User Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Remove Group Member",
        "tags": [
          "IAM"
        ]
      },
      "put": {
        "operationId": "addGroupMember",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "group_id",
            "required": true,
            "schema": {
              "title": "Group Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "title": "User Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Add Group Member",
        "tags": [
          "IAM"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/guardrails": {
      "get": {
        "description": "The organization's guardrails. Every one must allow a request; none attached means no\nlimit. They bind every principal, OrgOwners included, except for ``iam:*Guardrail*``.",
        "operationId": "listGuardrails",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_GuardrailOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Guardrails",
        "tags": [
          "IAM"
        ]
      },
      "post": {
        "description": "Attach a policy as a guardrail. Its statements cap every principal in the organization\n(Principal is not allowed in them); it grants nothing by itself.",
        "operationId": "attachGuardrail",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GuardrailIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GuardrailOut"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Attach Guardrail",
        "tags": [
          "IAM"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/guardrails/{guardrail_id}": {
      "delete": {
        "operationId": "detachGuardrail",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "guardrail_id",
            "required": true,
            "schema": {
              "title": "Guardrail Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Detach Guardrail",
        "tags": [
          "IAM"
        ]
      },
      "get": {
        "operationId": "getGuardrail",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "guardrail_id",
            "required": true,
            "schema": {
              "title": "Guardrail Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GuardrailOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Guardrail",
        "tags": [
          "IAM"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/iam/credential-report": {
      "get": {
        "operationId": "getCredentialReport",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialReportOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Credential Report",
        "tags": [
          "IAM"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/iam/settings": {
      "get": {
        "operationId": "getIamSettings",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IamSettingsOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Iam Settings",
        "tags": [
          "IAM"
        ]
      },
      "put": {
        "operationId": "updateIamSettings",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IamSettingsIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IamSettingsOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Iam Settings",
        "tags": [
          "IAM"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/iam/simulate": {
      "post": {
        "description": "Would a principal be allowed? Decides every action on every resource with the same\nevaluator as live requests and names the deciding layer and statements. Needs\n``iam:SimulatePrincipalPolicy`` on the principal and read access to it\n(``iam:DescribeUser``, ``iam:DescribeServiceAccount`` or ``iam:DescribeRole``).",
        "operationId": "simulatePrincipalPolicy",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimulateIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimulateOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Simulate Principal Policy",
        "tags": [
          "IAM"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/id-documents": {
      "get": {
        "operationId": "listIdDocuments",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/IdDocumentOut"
                  },
                  "title": "Response",
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Id Documents",
        "tags": [
          "Signup and verification"
        ]
      },
      "post": {
        "operationId": "submitIdDocument",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdDocumentIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdDocumentOut"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Submit Id Document",
        "tags": [
          "Signup and verification"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/invitations": {
      "get": {
        "operationId": "listInvitations",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_InvitationOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Invitations",
        "tags": [
          "Identity"
        ]
      },
      "post": {
        "operationId": "invite",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvitationIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvitationOut"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Invite",
        "tags": [
          "Identity"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/invitations/{invitation_id}": {
      "delete": {
        "operationId": "revokeInvitation",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "invitation_id",
            "required": true,
            "schema": {
              "title": "Invitation Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Revoke Invitation",
        "tags": [
          "Identity"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/notifications": {
      "get": {
        "operationId": "listNotifications",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "unread",
            "required": false,
            "schema": {
              "default": false,
              "title": "Unread",
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationPage"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Notifications",
        "tags": [
          "Activity"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/notifications/read": {
      "post": {
        "operationId": "markAllRead",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarkedOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Mark All Read",
        "tags": [
          "Activity"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/notifications/summary": {
      "get": {
        "operationId": "notificationsSummary",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotificationSummaryOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Notifications Summary",
        "tags": [
          "Activity"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/notifications/{notification_id}/read": {
      "post": {
        "operationId": "markNotificationRead",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "notification_id",
            "required": true,
            "schema": {
              "title": "Notification Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarkedOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Mark Notification Read",
        "tags": [
          "Activity"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/onboarding": {
      "get": {
        "operationId": "getOnboarding",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OnboardingOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Onboarding",
        "tags": [
          "Identity"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/overview": {
      "get": {
        "description": "The home page: what runs, money and spend, what needs attention, recent activity.\n\nAny member of the organization may call it (a project-limited member has a home page too);\neach section needs the permission of its own API and is null when the caller lacks it.",
        "operationId": "getOverview",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OverviewOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Overview",
        "tags": [
          "Overview"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/permission-boundaries": {
      "get": {
        "description": "Boundaries in the organization; filter by ``principal`` (TRN).",
        "operationId": "listPermissionBoundaries",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "principal",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Principal"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_PermissionBoundaryOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Permission Boundaries",
        "tags": [
          "IAM"
        ]
      },
      "put": {
        "description": "Set or replace a principal's permission boundary: their identity policies then only\ngrant what the boundary also allows. Repeating the same request changes nothing.",
        "operationId": "putPermissionBoundary",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PermissionBoundaryIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PermissionBoundaryOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Put Permission Boundary",
        "tags": [
          "IAM"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/permission-boundaries/{boundary_id}": {
      "delete": {
        "operationId": "deletePermissionBoundary",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "boundary_id",
            "required": true,
            "schema": {
              "title": "Boundary Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Permission Boundary",
        "tags": [
          "IAM"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/policies": {
      "get": {
        "description": "``scope``: ``all``, ``local`` (this organization's) or ``managed`` (TebibHost's).",
        "operationId": "listPolicies",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "scope",
            "required": false,
            "schema": {
              "default": "all",
              "title": "Scope",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_PolicyOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Policies",
        "tags": [
          "IAM"
        ]
      },
      "post": {
        "operationId": "createPolicy",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PolicyIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PolicyDetailOut"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Policy",
        "tags": [
          "IAM"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/policies/{policy_ref}": {
      "delete": {
        "operationId": "deletePolicy",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "policy_ref",
            "required": true,
            "schema": {
              "title": "Policy Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Policy",
        "tags": [
          "IAM"
        ]
      },
      "get": {
        "description": "``policy_ref``: a policy ID or name (TebibHost-managed policies by name, e.g. ReadOnly).",
        "operationId": "getPolicy",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "policy_ref",
            "required": true,
            "schema": {
              "title": "Policy Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PolicyDetailOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Policy",
        "tags": [
          "IAM"
        ]
      },
      "patch": {
        "operationId": "updatePolicy",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "policy_ref",
            "required": true,
            "schema": {
              "title": "Policy Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PolicyPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PolicyDetailOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Policy",
        "tags": [
          "IAM"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/policies/{policy_ref}/default-version": {
      "put": {
        "operationId": "setDefaultPolicyVersion",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "policy_ref",
            "required": true,
            "schema": {
              "title": "Policy Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DefaultVersionIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PolicyDetailOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Set Default Policy Version",
        "tags": [
          "IAM"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/policies/{policy_ref}/versions": {
      "get": {
        "operationId": "listPolicyVersions",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "policy_ref",
            "required": true,
            "schema": {
              "title": "Policy Ref",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/VersionOut"
                  },
                  "title": "Response",
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Policy Versions",
        "tags": [
          "IAM"
        ]
      },
      "post": {
        "operationId": "createPolicyVersion",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "policy_ref",
            "required": true,
            "schema": {
              "title": "Policy Ref",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VersionIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VersionOut"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Policy Version",
        "tags": [
          "IAM"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/policies/{policy_ref}/versions/{version}": {
      "delete": {
        "operationId": "deletePolicyVersion",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "policy_ref",
            "required": true,
            "schema": {
              "title": "Policy Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "schema": {
              "title": "Version",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Policy Version",
        "tags": [
          "IAM"
        ]
      },
      "get": {
        "operationId": "getPolicyVersion",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "policy_ref",
            "required": true,
            "schema": {
              "title": "Policy Ref",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "version",
            "required": true,
            "schema": {
              "title": "Version",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VersionOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Policy Version",
        "tags": [
          "IAM"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/policy-attachments": {
      "get": {
        "description": "Filter by ``principal`` (TRN) and/or ``policy`` (ID, TRN or name).",
        "operationId": "listAttachments",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "principal",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Principal"
            }
          },
          {
            "in": "query",
            "name": "policy",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Policy"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_PolicyAttachmentOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Attachments",
        "tags": [
          "IAM"
        ]
      },
      "post": {
        "operationId": "createAttachment",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PolicyAttachmentIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PolicyAttachmentOut"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Attachment",
        "tags": [
          "IAM"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/policy-attachments/{attachment_id}": {
      "delete": {
        "operationId": "deleteAttachment",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "attachment_id",
            "required": true,
            "schema": {
              "title": "Attachment Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Attachment",
        "tags": [
          "IAM"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/projects": {
      "get": {
        "operationId": "listProjects",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_ProjectOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Projects",
        "tags": [
          "Organizations and projects"
        ]
      },
      "post": {
        "operationId": "createProject",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProjectIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Project",
        "tags": [
          "Organizations and projects"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/quotas": {
      "get": {
        "operationId": "getOrganizationQuotas",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuotasOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Organization Quotas",
        "tags": [
          "Quotas"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/roles": {
      "get": {
        "operationId": "listRoles",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_RoleOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Roles",
        "tags": [
          "IAM"
        ]
      },
      "post": {
        "operationId": "createRole",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RoleIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleOut"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Role",
        "tags": [
          "IAM"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/roles/{role_id}": {
      "delete": {
        "operationId": "deleteRole",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_id",
            "required": true,
            "schema": {
              "title": "Role Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Role",
        "tags": [
          "IAM"
        ]
      },
      "get": {
        "operationId": "getRole",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_id",
            "required": true,
            "schema": {
              "title": "Role Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Role",
        "tags": [
          "IAM"
        ]
      },
      "patch": {
        "operationId": "updateRole",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_id",
            "required": true,
            "schema": {
              "title": "Role Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RolePatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RoleOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Role",
        "tags": [
          "IAM"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/roles/{role_id}/assume": {
      "post": {
        "description": "Temporary credentials for the role. Needs ``iam:AssumeRole`` on the role in the caller's\npolicies AND the role's trust policy to allow the caller.",
        "operationId": "assumeRole",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_id",
            "required": true,
            "schema": {
              "title": "Role Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssumeRoleIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CredentialsOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Assume Role",
        "tags": [
          "IAM"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/roles/{role_id}/revoke-sessions": {
      "post": {
        "description": "End every active session of the role now.",
        "operationId": "revokeRoleSessions",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "role_id",
            "required": true,
            "schema": {
              "title": "Role Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RevokedOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Revoke Role Sessions",
        "tags": [
          "IAM"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/search": {
      "get": {
        "operationId": "searchOrganization",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "q",
            "required": false,
            "schema": {
              "default": "",
              "maxLength": 100,
              "title": "Q",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 20,
              "maximum": 50,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Search Organization",
        "tags": [
          "Search"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/service-accounts": {
      "get": {
        "operationId": "listServiceAccounts",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_ServiceAccountOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Service Accounts",
        "tags": [
          "Identity"
        ]
      },
      "post": {
        "operationId": "createServiceAccount",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceAccountIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceAccountOut"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Service Account",
        "tags": [
          "Identity"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/service-accounts/{account_id}": {
      "delete": {
        "operationId": "deleteServiceAccount",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "account_id",
            "required": true,
            "schema": {
              "title": "Account Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Service Account",
        "tags": [
          "Identity"
        ]
      },
      "get": {
        "operationId": "getServiceAccount",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "account_id",
            "required": true,
            "schema": {
              "title": "Account Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceAccountOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Service Account",
        "tags": [
          "Identity"
        ]
      },
      "patch": {
        "operationId": "updateServiceAccount",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "account_id",
            "required": true,
            "schema": {
              "title": "Account Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceAccountPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceAccountOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Service Account",
        "tags": [
          "Identity"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/service-accounts/{owner_id}/access-keys": {
      "get": {
        "operationId": "listServiceAccountKeys",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "owner_id",
            "required": true,
            "schema": {
              "title": "Owner Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AccessKeyOut"
                  },
                  "title": "Response",
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Service Account Keys",
        "tags": [
          "Identity"
        ]
      },
      "post": {
        "operationId": "createServiceAccountKey",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "owner_id",
            "required": true,
            "schema": {
              "title": "Owner Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccessKeyIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessKeyCreatedOut"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Service Account Key",
        "tags": [
          "Identity"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/service-accounts/{owner_id}/access-keys/{key_id}": {
      "delete": {
        "operationId": "deleteServiceAccountKey",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "owner_id",
            "required": true,
            "schema": {
              "title": "Owner Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "key_id",
            "required": true,
            "schema": {
              "title": "Key Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Service Account Key",
        "tags": [
          "Identity"
        ]
      },
      "patch": {
        "operationId": "updateServiceAccountKey",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "owner_id",
            "required": true,
            "schema": {
              "title": "Owner Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "key_id",
            "required": true,
            "schema": {
              "title": "Key Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccessKeyPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessKeyOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Service Account Key",
        "tags": [
          "Identity"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/support/tickets": {
      "get": {
        "operationId": "listTickets",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "status",
            "required": false,
            "schema": {
              "default": "all",
              "enum": [
                "active",
                "closed",
                "all"
              ],
              "title": "Status",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_TicketOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Tickets",
        "tags": [
          "Support"
        ]
      },
      "post": {
        "operationId": "createTicket",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TicketIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketDetailOut"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Ticket",
        "tags": [
          "Support"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/support/tickets/{ticket_id}": {
      "get": {
        "operationId": "getTicket",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ticket_id",
            "required": true,
            "schema": {
              "title": "Ticket Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketDetailOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Ticket",
        "tags": [
          "Support"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/support/tickets/{ticket_id}/attachments/{attachment_id}/content": {
      "get": {
        "operationId": "getTicketAttachmentContent",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ticket_id",
            "required": true,
            "schema": {
              "title": "Ticket Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "attachment_id",
            "required": true,
            "schema": {
              "title": "Attachment Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/octet-stream": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "The file, as a download"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Ticket Attachment Content",
        "tags": [
          "Support"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/support/tickets/{ticket_id}/close": {
      "post": {
        "operationId": "closeTicket",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ticket_id",
            "required": true,
            "schema": {
              "title": "Ticket Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Close Ticket",
        "tags": [
          "Support"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/support/tickets/{ticket_id}/messages": {
      "post": {
        "operationId": "replyTicket",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ticket_id",
            "required": true,
            "schema": {
              "title": "Ticket Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TicketReplyIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketMessageOut"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Reply Ticket",
        "tags": [
          "Support"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/users": {
      "get": {
        "operationId": "listUsers",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_OrgUserOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Users",
        "tags": [
          "Identity"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/users/{owner_id}/access-keys": {
      "get": {
        "operationId": "listUserKeys",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "owner_id",
            "required": true,
            "schema": {
              "title": "Owner Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AccessKeyOut"
                  },
                  "title": "Response",
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List User Keys",
        "tags": [
          "Identity"
        ]
      },
      "post": {
        "operationId": "createUserKey",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "owner_id",
            "required": true,
            "schema": {
              "title": "Owner Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccessKeyIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessKeyCreatedOut"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create User Key",
        "tags": [
          "Identity"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/users/{owner_id}/access-keys/{key_id}": {
      "delete": {
        "operationId": "deleteUserKey",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "owner_id",
            "required": true,
            "schema": {
              "title": "Owner Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "key_id",
            "required": true,
            "schema": {
              "title": "Key Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete User Key",
        "tags": [
          "Identity"
        ]
      },
      "patch": {
        "operationId": "updateUserKey",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "owner_id",
            "required": true,
            "schema": {
              "title": "Owner Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "key_id",
            "required": true,
            "schema": {
              "title": "Key Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AccessKeyPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccessKeyOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update User Key",
        "tags": [
          "Identity"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/users/{user_id}": {
      "delete": {
        "description": "Remove a user from the organization: memberships, attachments, keys and sessions go.",
        "operationId": "removeUser",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "title": "User Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Remove User",
        "tags": [
          "Identity"
        ]
      },
      "get": {
        "operationId": "getUser",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "title": "User Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrgUserOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get User",
        "tags": [
          "Identity"
        ]
      },
      "patch": {
        "operationId": "updateUser",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "user_id",
            "required": true,
            "schema": {
              "title": "User Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrgUserPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrgUserOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update User",
        "tags": [
          "Identity"
        ]
      }
    },
    "/api/v1/orgs/{organization_id}/verification": {
      "get": {
        "operationId": "getVerification",
        "parameters": [
          {
            "in": "path",
            "name": "organization_id",
            "required": true,
            "schema": {
              "title": "Organization Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerificationOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Verification",
        "tags": [
          "Signup and verification"
        ]
      }
    },
    "/api/v1/prices": {
      "get": {
        "description": "Prices in force now (USD per unit), upcoming changes, and included egress per VM.",
        "operationId": "listPrices",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceListOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "summary": "List Prices",
        "tags": [
          "billing"
        ]
      }
    },
    "/api/v1/projects/{project_id}": {
      "delete": {
        "operationId": "deleteProject",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Project",
        "tags": [
          "Organizations and projects"
        ]
      },
      "get": {
        "operationId": "getProject",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Project",
        "tags": [
          "Organizations and projects"
        ]
      },
      "patch": {
        "operationId": "updateProject",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TagsPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProjectOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Project",
        "tags": [
          "Organizations and projects"
        ]
      }
    },
    "/api/v1/projects/{project_id}/assistant/messages": {
      "post": {
        "description": "Send a message to Ogbai, the console's rules-based support assistant. It reads what your permissions allow and may answer with a proposal for one limited fix, which runs only when you confirm it. 429 RateLimited when you send too many.",
        "operationId": "sendAssistantMessage",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssistantMessageIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssistantMessagesOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Ask Ogbai",
        "tags": [
          "Assistant"
        ]
      }
    },
    "/api/v1/projects/{project_id}/assistant/proposals/{proposal_id}/confirm": {
      "post": {
        "description": "Run a proposal: once, within 10 minutes, as the caller who received it. 403 if your permissions don't allow the action now; 404 if the proposal is unknown, expired or already used. If the action fails for another reason the answer is a text message.",
        "operationId": "confirmAssistantProposal",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "proposal_id",
            "required": true,
            "schema": {
              "title": "Proposal Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssistantConfirmIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AssistantMessagesOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Confirm a proposal",
        "tags": [
          "Assistant"
        ]
      }
    },
    "/api/v1/projects/{project_id}/assistant/proposals/{proposal_id}/dismiss": {
      "post": {
        "operationId": "dismissAssistantProposal",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "proposal_id",
            "required": true,
            "schema": {
              "title": "Proposal Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Dismiss a proposal",
        "tags": [
          "Assistant"
        ]
      }
    },
    "/api/v1/projects/{project_id}/buckets": {
      "get": {
        "operationId": "listBuckets",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_BucketOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Buckets",
        "tags": [
          "Object storage"
        ]
      },
      "post": {
        "description": "A new bucket. Public-read also needs ``storage:PutBucketPolicy`` and a verified account.",
        "operationId": "createBucket",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BucketIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BucketOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Bucket",
        "tags": [
          "Object storage"
        ]
      }
    },
    "/api/v1/projects/{project_id}/buckets/{bucket_id}": {
      "delete": {
        "description": "Only an empty bucket, unless ``force``. A bucket whose delete waits for it to be emptied\ntakes no new objects; ``force`` on it finishes the job.",
        "operationId": "deleteBucket",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "bucket_id",
            "required": true,
            "schema": {
              "title": "Bucket Id",
              "type": "string"
            }
          },
          {
            "description": "Delete the objects too (needs storage:ForceDeleteBucket)",
            "in": "query",
            "name": "force",
            "required": false,
            "schema": {
              "default": false,
              "description": "Delete the objects too (needs storage:ForceDeleteBucket)",
              "title": "Force",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BucketOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Bucket",
        "tags": [
          "Object storage"
        ]
      },
      "get": {
        "operationId": "getBucket",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "bucket_id",
            "required": true,
            "schema": {
              "title": "Bucket Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BucketOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Bucket",
        "tags": [
          "Object storage"
        ]
      },
      "patch": {
        "description": "Description, tags, size cap; visibility needs ``storage:PutBucketPolicy``.",
        "operationId": "updateBucket",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "bucket_id",
            "required": true,
            "schema": {
              "title": "Bucket Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BucketPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BucketOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Bucket",
        "tags": [
          "Object storage"
        ]
      }
    },
    "/api/v1/projects/{project_id}/dns/zones": {
      "get": {
        "operationId": "listDnsZones",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_DnsZoneOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Dns Zones",
        "tags": [
          "DNS"
        ]
      },
      "post": {
        "operationId": "createDnsZone",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DnsZoneIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsZoneOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Dns Zone",
        "tags": [
          "DNS"
        ]
      }
    },
    "/api/v1/projects/{project_id}/dns/zones/{zone_id}": {
      "delete": {
        "description": "Stops serving the zone and deletes its record sets with it.",
        "operationId": "deleteDnsZone",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "zone_id",
            "required": true,
            "schema": {
              "title": "Zone Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsZoneOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Dns Zone",
        "tags": [
          "DNS"
        ]
      },
      "get": {
        "operationId": "getDnsZone",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "zone_id",
            "required": true,
            "schema": {
              "title": "Zone Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsZoneOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Dns Zone",
        "tags": [
          "DNS"
        ]
      },
      "patch": {
        "operationId": "updateDnsZone",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "zone_id",
            "required": true,
            "schema": {
              "title": "Zone Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TagsPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsZoneOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Dns Zone",
        "tags": [
          "DNS"
        ]
      }
    },
    "/api/v1/projects/{project_id}/dns/zones/{zone_id}/export": {
      "get": {
        "description": "The zone as a BIND zone file (SOA serial as last published).",
        "operationId": "exportDnsZone",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "zone_id",
            "required": true,
            "schema": {
              "title": "Zone Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsZoneFileOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Export Dns Zone",
        "tags": [
          "DNS"
        ]
      }
    },
    "/api/v1/projects/{project_id}/dns/zones/{zone_id}/import": {
      "post": {
        "description": "Add the record sets of a BIND zone file. The SOA and the apex NS records are skipped\n(TebibHost serves its own), as are types we don't host; the response lists them.",
        "operationId": "importDnsZone",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "zone_id",
            "required": true,
            "schema": {
              "title": "Zone Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DnsZoneFileIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsImportOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Import Dns Zone",
        "tags": [
          "DNS"
        ]
      }
    },
    "/api/v1/projects/{project_id}/dns/zones/{zone_id}/records": {
      "get": {
        "operationId": "listDnsRecords",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "zone_id",
            "required": true,
            "schema": {
              "title": "Zone Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "name",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Name"
            }
          },
          {
            "in": "query",
            "name": "type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Type"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_DnsRecordOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Dns Records",
        "tags": [
          "DNS"
        ]
      },
      "post": {
        "operationId": "createDnsRecord",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "zone_id",
            "required": true,
            "schema": {
              "title": "Zone Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DnsRecordIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsRecordOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Dns Record",
        "tags": [
          "DNS"
        ]
      }
    },
    "/api/v1/projects/{project_id}/dns/zones/{zone_id}/records/{record_id}": {
      "delete": {
        "operationId": "deleteDnsRecord",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "zone_id",
            "required": true,
            "schema": {
              "title": "Zone Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "record_id",
            "required": true,
            "schema": {
              "title": "Record Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsRecordOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Dns Record",
        "tags": [
          "DNS"
        ]
      },
      "get": {
        "operationId": "getDnsRecord",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "zone_id",
            "required": true,
            "schema": {
              "title": "Zone Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "record_id",
            "required": true,
            "schema": {
              "title": "Record Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsRecordOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Dns Record",
        "tags": [
          "DNS"
        ]
      },
      "patch": {
        "operationId": "updateDnsRecord",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "zone_id",
            "required": true,
            "schema": {
              "title": "Zone Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "record_id",
            "required": true,
            "schema": {
              "title": "Record Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DnsRecordPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsRecordOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Dns Record",
        "tags": [
          "DNS"
        ]
      }
    },
    "/api/v1/projects/{project_id}/dns/zones/{zone_id}/verify": {
      "post": {
        "description": "Check the domain's delegation or TXT record now, instead of at the next scheduled check.",
        "operationId": "verifyDnsZone",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "zone_id",
            "required": true,
            "schema": {
              "title": "Zone Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DnsZoneOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Verify Dns Zone",
        "tags": [
          "DNS"
        ]
      }
    },
    "/api/v1/projects/{project_id}/dns/zones/{zone_id}/vm-records": {
      "post": {
        "description": "A and/or AAAA records for a VM's public addresses, set to the addresses it has now\n(a copy: they don't follow the VM if its public IP moves). Replaces existing A/AAAA sets\nat the name.",
        "operationId": "createDnsVmRecords",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "zone_id",
            "required": true,
            "schema": {
              "title": "Zone Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DnsVmRecordsIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/DnsRecordOut"
                  },
                  "title": "Response",
                  "type": "array"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Dns Vm Records",
        "tags": [
          "DNS"
        ]
      }
    },
    "/api/v1/projects/{project_id}/images": {
      "get": {
        "operationId": "listImages",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ImageOut"
                  },
                  "title": "Response",
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Images",
        "tags": [
          "Compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/instance-types": {
      "get": {
        "operationId": "listInstanceTypes",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/InstanceTypeOut"
                  },
                  "title": "Response",
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Instance Types",
        "tags": [
          "Compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/load-balancers": {
      "get": {
        "operationId": "listLoadBalancers",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vpc_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vpc Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_LoadBalancerOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Load Balancers",
        "tags": [
          "Load balancers"
        ]
      },
      "post": {
        "description": "Create a load balancer, optionally with its target groups and listeners. A public one\nis reached through its VPC's NAT gateway, which must exist.",
        "operationId": "createLoadBalancer",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoadBalancerIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoadBalancerOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Load Balancer",
        "tags": [
          "Load balancers"
        ]
      }
    },
    "/api/v1/projects/{project_id}/load-balancers/{lb_id}": {
      "delete": {
        "description": "Delete the load balancer. A public IP it allocated is released; one given at create\ngoes back to the project, unassociated.",
        "operationId": "deleteLoadBalancer",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "lb_id",
            "required": true,
            "schema": {
              "title": "Lb Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoadBalancerOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Load Balancer",
        "tags": [
          "Load balancers"
        ]
      },
      "get": {
        "operationId": "getLoadBalancer",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "lb_id",
            "required": true,
            "schema": {
              "title": "Lb Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoadBalancerOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Load Balancer",
        "tags": [
          "Load balancers"
        ]
      },
      "patch": {
        "operationId": "updateLoadBalancer",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "lb_id",
            "required": true,
            "schema": {
              "title": "Lb Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TagsPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoadBalancerOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Load Balancer",
        "tags": [
          "Load balancers"
        ]
      }
    },
    "/api/v1/projects/{project_id}/load-balancers/{lb_id}/listeners": {
      "post": {
        "operationId": "createListener",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "lb_id",
            "required": true,
            "schema": {
              "title": "Lb Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListenerIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoadBalancerOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Listener",
        "tags": [
          "Load balancers"
        ]
      }
    },
    "/api/v1/projects/{project_id}/load-balancers/{lb_id}/listeners/{listener_id}": {
      "delete": {
        "operationId": "deleteListener",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "lb_id",
            "required": true,
            "schema": {
              "title": "Lb Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "listener_id",
            "required": true,
            "schema": {
              "title": "Listener Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoadBalancerOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Listener",
        "tags": [
          "Load balancers"
        ]
      },
      "patch": {
        "description": "Point the listener at another target group (same protocol).",
        "operationId": "updateListener",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "lb_id",
            "required": true,
            "schema": {
              "title": "Lb Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "listener_id",
            "required": true,
            "schema": {
              "title": "Listener Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListenerPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoadBalancerOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Listener",
        "tags": [
          "Load balancers"
        ]
      }
    },
    "/api/v1/projects/{project_id}/load-balancers/{lb_id}/security-groups": {
      "put": {
        "description": "Replace the groups the load balancer's nodes are in (same VPC). Its nodes are replaced\none at a time.",
        "operationId": "setLoadBalancerSecurityGroups",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "lb_id",
            "required": true,
            "schema": {
              "title": "Lb Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoadBalancerSecurityGroupsIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoadBalancerOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Set Load Balancer Security Groups",
        "tags": [
          "Load balancers"
        ]
      }
    },
    "/api/v1/projects/{project_id}/load-balancers/{lb_id}/target-groups": {
      "post": {
        "operationId": "createTargetGroup",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "lb_id",
            "required": true,
            "schema": {
              "title": "Lb Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TargetGroupIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoadBalancerOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Target Group",
        "tags": [
          "Load balancers"
        ]
      }
    },
    "/api/v1/projects/{project_id}/load-balancers/{lb_id}/target-groups/{tg_id}": {
      "delete": {
        "operationId": "deleteTargetGroup",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "lb_id",
            "required": true,
            "schema": {
              "title": "Lb Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "tg_id",
            "required": true,
            "schema": {
              "title": "Tg Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoadBalancerOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Target Group",
        "tags": [
          "Load balancers"
        ]
      },
      "patch": {
        "description": "Change the algorithm, the default port, PROXY protocol or the health check.",
        "operationId": "updateTargetGroup",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "lb_id",
            "required": true,
            "schema": {
              "title": "Lb Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "tg_id",
            "required": true,
            "schema": {
              "title": "Tg Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TargetGroupPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoadBalancerOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Target Group",
        "tags": [
          "Load balancers"
        ]
      }
    },
    "/api/v1/projects/{project_id}/load-balancers/{lb_id}/target-groups/{tg_id}/targets": {
      "post": {
        "description": "Add a VM of the load balancer's VPC to the target group.",
        "operationId": "registerTarget",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "lb_id",
            "required": true,
            "schema": {
              "title": "Lb Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "tg_id",
            "required": true,
            "schema": {
              "title": "Tg Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TargetIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoadBalancerOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Register Target",
        "tags": [
          "Load balancers"
        ]
      }
    },
    "/api/v1/projects/{project_id}/load-balancers/{lb_id}/target-groups/{tg_id}/targets/{target_id}": {
      "delete": {
        "operationId": "deregisterTarget",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "lb_id",
            "required": true,
            "schema": {
              "title": "Lb Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "tg_id",
            "required": true,
            "schema": {
              "title": "Tg Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "target_id",
            "required": true,
            "schema": {
              "title": "Target Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoadBalancerOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Deregister Target",
        "tags": [
          "Load balancers"
        ]
      }
    },
    "/api/v1/projects/{project_id}/nat-gateways": {
      "get": {
        "operationId": "listNatGateways",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_NatGatewayOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Nat Gateways",
        "tags": [
          "Network"
        ]
      },
      "post": {
        "operationId": "createNatGateway",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NatGatewayIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NatGatewayOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Nat Gateway",
        "tags": [
          "Network"
        ]
      }
    },
    "/api/v1/projects/{project_id}/nat-gateways/{nat_id}": {
      "delete": {
        "operationId": "deleteNatGateway",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "nat_id",
            "required": true,
            "schema": {
              "title": "Nat Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NatGatewayOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Nat Gateway",
        "tags": [
          "Network"
        ]
      },
      "get": {
        "operationId": "getNatGateway",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "nat_id",
            "required": true,
            "schema": {
              "title": "Nat Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NatGatewayOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Nat Gateway",
        "tags": [
          "Network"
        ]
      },
      "patch": {
        "operationId": "updateNatGateway",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "nat_id",
            "required": true,
            "schema": {
              "title": "Nat Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TagsPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NatGatewayOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Nat Gateway",
        "tags": [
          "Network"
        ]
      }
    },
    "/api/v1/projects/{project_id}/public-ips": {
      "get": {
        "operationId": "listPublicIps",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_PublicIpOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Public Ips",
        "tags": [
          "Network"
        ]
      },
      "post": {
        "operationId": "allocatePublicIp",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicIpIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicIpOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Allocate Public Ip",
        "tags": [
          "Network"
        ]
      }
    },
    "/api/v1/projects/{project_id}/public-ips/{ip_id}": {
      "delete": {
        "operationId": "releasePublicIp",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ip_id",
            "required": true,
            "schema": {
              "title": "Ip Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicIpOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Release Public Ip",
        "tags": [
          "Network"
        ]
      },
      "get": {
        "operationId": "getPublicIp",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ip_id",
            "required": true,
            "schema": {
              "title": "Ip Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicIpOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Public Ip",
        "tags": [
          "Network"
        ]
      },
      "patch": {
        "operationId": "updatePublicIp",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ip_id",
            "required": true,
            "schema": {
              "title": "Ip Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TagsPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicIpOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Public Ip",
        "tags": [
          "Network"
        ]
      }
    },
    "/api/v1/projects/{project_id}/public-ips/{ip_id}/associate": {
      "post": {
        "operationId": "associatePublicIp",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ip_id",
            "required": true,
            "schema": {
              "title": "Ip Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AssociateIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicIpOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Associate Public Ip",
        "tags": [
          "Network"
        ]
      }
    },
    "/api/v1/projects/{project_id}/public-ips/{ip_id}/disassociate": {
      "post": {
        "operationId": "disassociatePublicIp",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ip_id",
            "required": true,
            "schema": {
              "title": "Ip Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicIpOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Disassociate Public Ip",
        "tags": [
          "Network"
        ]
      }
    },
    "/api/v1/projects/{project_id}/public-ips/{ip_id}/history": {
      "get": {
        "description": "This allocation's own events (not the address's earlier holders).",
        "operationId": "publicIpHistory",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ip_id",
            "required": true,
            "schema": {
              "title": "Ip Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PublicAddressEventOut"
                  },
                  "title": "Response",
                  "type": "array"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Public Ip History",
        "tags": [
          "Network"
        ]
      }
    },
    "/api/v1/projects/{project_id}/quotas": {
      "get": {
        "operationId": "getProjectQuotas",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuotasOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Project Quotas",
        "tags": [
          "Quotas"
        ]
      }
    },
    "/api/v1/projects/{project_id}/security-groups": {
      "get": {
        "operationId": "listSecurityGroups",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vpc_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vpc Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_SecurityGroupOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Security Groups",
        "tags": [
          "Network"
        ]
      },
      "post": {
        "operationId": "createSecurityGroup",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SecurityGroupIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecurityGroupOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Security Group",
        "tags": [
          "Network"
        ]
      }
    },
    "/api/v1/projects/{project_id}/security-groups/{group_id}": {
      "delete": {
        "operationId": "deleteSecurityGroup",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "group_id",
            "required": true,
            "schema": {
              "title": "Group Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecurityGroupOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Security Group",
        "tags": [
          "Network"
        ]
      },
      "get": {
        "operationId": "getSecurityGroup",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "group_id",
            "required": true,
            "schema": {
              "title": "Group Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecurityGroupOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Security Group",
        "tags": [
          "Network"
        ]
      },
      "patch": {
        "operationId": "updateSecurityGroup",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "group_id",
            "required": true,
            "schema": {
              "title": "Group Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TagsPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecurityGroupOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Security Group",
        "tags": [
          "Network"
        ]
      }
    },
    "/api/v1/projects/{project_id}/security-groups/{group_id}/rules": {
      "post": {
        "operationId": "addRule",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "group_id",
            "required": true,
            "schema": {
              "title": "Group Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RuleIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecurityGroupOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Add Rule",
        "tags": [
          "Network"
        ]
      }
    },
    "/api/v1/projects/{project_id}/security-groups/{group_id}/rules/{rule_id}": {
      "delete": {
        "operationId": "removeRule",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "group_id",
            "required": true,
            "schema": {
              "title": "Group Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "rule_id",
            "required": true,
            "schema": {
              "title": "Rule Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecurityGroupOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Remove Rule",
        "tags": [
          "Network"
        ]
      }
    },
    "/api/v1/projects/{project_id}/snapshot-schedules": {
      "get": {
        "operationId": "listSnapshotSchedules",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vm_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vm Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_SnapshotScheduleOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Snapshot Schedules",
        "tags": [
          "Compute"
        ]
      },
      "post": {
        "description": "Snapshot a VM on a schedule and delete its old snapshots (scheduled backups). The caller\nmust also be allowed to snapshot the VM (``compute:CreateSnapshot`` on it); TebibHost's\nscheduler then takes the snapshots, whoever made the schedule.",
        "operationId": "createSnapshotSchedule",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SnapshotScheduleIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SnapshotScheduleOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Snapshot Schedule",
        "tags": [
          "Compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/snapshot-schedules/{schedule_id}": {
      "delete": {
        "description": "Stop the schedule. The snapshots it took stay (and bill) until you delete them.",
        "operationId": "deleteSnapshotSchedule",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "schedule_id",
            "required": true,
            "schema": {
              "title": "Schedule Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SnapshotScheduleOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Snapshot Schedule",
        "tags": [
          "Compute"
        ]
      },
      "get": {
        "operationId": "getSnapshotSchedule",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "schedule_id",
            "required": true,
            "schema": {
              "title": "Schedule Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SnapshotScheduleOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Snapshot Schedule",
        "tags": [
          "Compute"
        ]
      },
      "patch": {
        "description": "Change the schedule or the retention, or turn it off and on. A changed schedule, or one\nturned on again, starts from now: runs already past are not taken.",
        "operationId": "updateSnapshotSchedule",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "schedule_id",
            "required": true,
            "schema": {
              "title": "Schedule Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SnapshotSchedulePatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SnapshotScheduleOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Snapshot Schedule",
        "tags": [
          "Compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/snapshots": {
      "get": {
        "operationId": "listSnapshots",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vm_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vm Id"
            }
          },
          {
            "in": "query",
            "name": "schedule_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Schedule Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_SnapshotOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Snapshots",
        "tags": [
          "Compute"
        ]
      },
      "post": {
        "description": "Snapshot every disk of a VM. A running VM with the guest agent gets its filesystems\nfrozen for the moment of the snapshot (application-consistent); otherwise the snapshot is\ncrash-consistent.",
        "operationId": "createSnapshot",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SnapshotIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SnapshotOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Snapshot",
        "tags": [
          "Compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/snapshots/{snapshot_id}": {
      "delete": {
        "operationId": "deleteSnapshot",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "snapshot_id",
            "required": true,
            "schema": {
              "title": "Snapshot Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SnapshotOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Snapshot",
        "tags": [
          "Compute"
        ]
      },
      "get": {
        "operationId": "getSnapshot",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "snapshot_id",
            "required": true,
            "schema": {
              "title": "Snapshot Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SnapshotOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Snapshot",
        "tags": [
          "Compute"
        ]
      },
      "patch": {
        "operationId": "updateSnapshot",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "snapshot_id",
            "required": true,
            "schema": {
              "title": "Snapshot Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VMPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SnapshotOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Snapshot",
        "tags": [
          "Compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/ssh-keys": {
      "get": {
        "operationId": "listSshKeys",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_SSHKeyOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Ssh Keys",
        "tags": [
          "Compute"
        ]
      },
      "post": {
        "operationId": "createSshKey",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SSHKeyIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SSHKeyOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Ssh Key",
        "tags": [
          "Compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/ssh-keys/{key_id}": {
      "delete": {
        "description": "Removes the key from the project. VMs created with it keep it (cloud-init ran).",
        "operationId": "deleteSshKey",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "key_id",
            "required": true,
            "schema": {
              "title": "Key Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SSHKeyOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Ssh Key",
        "tags": [
          "Compute"
        ]
      },
      "get": {
        "operationId": "getSshKey",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "key_id",
            "required": true,
            "schema": {
              "title": "Key Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SSHKeyOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Ssh Key",
        "tags": [
          "Compute"
        ]
      },
      "patch": {
        "operationId": "updateSshKey",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "key_id",
            "required": true,
            "schema": {
              "title": "Key Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VMPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SSHKeyOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Ssh Key",
        "tags": [
          "Compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/storage": {
      "get": {
        "description": "Where the project's buckets are served, and what it stores.",
        "operationId": "getStorage",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Storage",
        "tags": [
          "Object storage"
        ]
      }
    },
    "/api/v1/projects/{project_id}/storage-keys": {
      "get": {
        "operationId": "listStorageKeys",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_StorageKeyOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Storage Keys",
        "tags": [
          "Object storage"
        ]
      },
      "post": {
        "description": "A new S3 key for the caller or a service account. The secret is in this response only.",
        "operationId": "createStorageKey",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StorageKeyIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageKeyCreatedOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Storage Key",
        "tags": [
          "Object storage"
        ]
      }
    },
    "/api/v1/projects/{project_id}/storage-keys/{key_id}": {
      "delete": {
        "operationId": "deleteStorageKey",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "key_id",
            "required": true,
            "schema": {
              "title": "Key Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageKeyOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Storage Key",
        "tags": [
          "Object storage"
        ]
      },
      "get": {
        "operationId": "getStorageKey",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "key_id",
            "required": true,
            "schema": {
              "title": "Key Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageKeyOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Storage Key",
        "tags": [
          "Object storage"
        ]
      },
      "patch": {
        "description": "Description, tags, or turn the key off and on (``status``).",
        "operationId": "updateStorageKey",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "key_id",
            "required": true,
            "schema": {
              "title": "Key Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StorageKeyPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageKeyOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Storage Key",
        "tags": [
          "Object storage"
        ]
      }
    },
    "/api/v1/projects/{project_id}/storage-keys/{key_id}/rotate": {
      "post": {
        "description": "A new key ID and secret for the same key. The old pair keeps working for\n``previous_valid_hours`` (default 24), so clients can move over without downtime.",
        "operationId": "rotateStorageKey",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "key_id",
            "required": true,
            "schema": {
              "title": "Key Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RotateIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StorageKeyCreatedOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Rotate Storage Key",
        "tags": [
          "Object storage"
        ]
      }
    },
    "/api/v1/projects/{project_id}/subnets": {
      "get": {
        "operationId": "listSubnets",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vpc_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vpc Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_SubnetOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Subnets",
        "tags": [
          "Network"
        ]
      },
      "post": {
        "operationId": "createSubnet",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubnetIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubnetOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Subnet",
        "tags": [
          "Network"
        ]
      }
    },
    "/api/v1/projects/{project_id}/subnets/{subnet_id}": {
      "delete": {
        "operationId": "deleteSubnet",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "subnet_id",
            "required": true,
            "schema": {
              "title": "Subnet Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubnetOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Subnet",
        "tags": [
          "Network"
        ]
      },
      "get": {
        "operationId": "getSubnet",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "subnet_id",
            "required": true,
            "schema": {
              "title": "Subnet Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubnetOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Subnet",
        "tags": [
          "Network"
        ]
      },
      "patch": {
        "operationId": "updateSubnet",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "subnet_id",
            "required": true,
            "schema": {
              "title": "Subnet Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TagsPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubnetOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Subnet",
        "tags": [
          "Network"
        ]
      }
    },
    "/api/v1/projects/{project_id}/usage": {
      "get": {
        "operationId": "projectUsage",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "description": "Inclusive; default: end minus a default range",
            "in": "query",
            "name": "start",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "date-time",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Inclusive; default: end minus a default range",
              "title": "Start"
            }
          },
          {
            "description": "Exclusive; default: now",
            "in": "query",
            "name": "end",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "date-time",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Exclusive; default: now",
              "title": "End"
            }
          },
          {
            "description": "minute, hour or day",
            "in": "query",
            "name": "granularity",
            "required": false,
            "schema": {
              "default": "hour",
              "description": "minute, hour or day",
              "enum": [
                "minute",
                "hour",
                "day"
              ],
              "title": "Granularity",
              "type": "string"
            }
          },
          {
            "description": "A meter name; '*' matches any characters",
            "in": "query",
            "name": "meter",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 96,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "A meter name; '*' matches any characters",
              "title": "Meter"
            }
          },
          {
            "in": "query",
            "name": "resource_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "maxLength": 32,
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Resource Id"
            }
          },
          {
            "description": "One series per meter or per resource",
            "in": "query",
            "name": "group_by",
            "required": false,
            "schema": {
              "default": "meter",
              "description": "One series per meter or per resource",
              "enum": [
                "meter",
                "resource"
              ],
              "title": "Group By",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsageOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Project Usage",
        "tags": [
          "Usage"
        ]
      }
    },
    "/api/v1/projects/{project_id}/vms": {
      "get": {
        "operationId": "listVms",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_VMOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Vms",
        "tags": [
          "Compute"
        ]
      },
      "post": {
        "description": "Create a VM and its boot volume (a clone of the image), started unless asked not to.",
        "operationId": "createVm",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VMIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VMOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Vm",
        "tags": [
          "Compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/vms/{vm_id}": {
      "delete": {
        "description": "Delete the VM. Volumes with delete_on_termination (the boot disk by default) go with\nit; the others are detached and kept. Its snapshot schedules are deleted; its snapshots\nare kept until deleted.",
        "operationId": "deleteVm",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "vm_id",
            "required": true,
            "schema": {
              "title": "Vm Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VMOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Vm",
        "tags": [
          "Compute"
        ]
      },
      "get": {
        "operationId": "getVm",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "vm_id",
            "required": true,
            "schema": {
              "title": "Vm Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VMOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Vm",
        "tags": [
          "Compute"
        ]
      },
      "patch": {
        "operationId": "updateVm",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "vm_id",
            "required": true,
            "schema": {
              "title": "Vm Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VMPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VMOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Vm",
        "tags": [
          "Compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/vms/{vm_id}/activity": {
      "get": {
        "description": "Audit events for this VM (who did what, when), newest first.",
        "operationId": "listVmActivity",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "vm_id",
            "required": true,
            "schema": {
              "title": "Vm Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "default": 50,
              "maximum": 200,
              "minimum": 1,
              "title": "Limit",
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VMActivityPage"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "VM activity",
        "tags": [
          "compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/vms/{vm_id}/console": {
      "post": {
        "description": "A one-time websocket URL for the VM's serial or VNC console, valid for 60 s.",
        "operationId": "createConsoleTicket",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "vm_id",
            "required": true,
            "schema": {
              "title": "Vm Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VMConsoleIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VMConsoleOut"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Console Ticket",
        "tags": [
          "Compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/vms/{vm_id}/metrics": {
      "get": {
        "description": "CPU, memory, network and disk usage over a window. Series are empty (all null) while the VM is stopped. 503 MetricsUnavailable when the metrics store can't answer; retry later.",
        "operationId": "getVmMetrics",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "vm_id",
            "required": true,
            "schema": {
              "title": "Vm Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "window",
            "required": false,
            "schema": {
              "default": "1h",
              "enum": [
                "1h",
                "6h",
                "24h",
                "7d"
              ],
              "title": "Window",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VMMetricsOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "VM metrics",
        "tags": [
          "compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/vms/{vm_id}/reboot": {
      "post": {
        "operationId": "rebootVm",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "vm_id",
            "required": true,
            "schema": {
              "title": "Vm Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RebootVMIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VMOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Reboot Vm",
        "tags": [
          "Compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/vms/{vm_id}/resize": {
      "post": {
        "description": "Change the instance type of a stopped VM (offline resize, plan: Resize).",
        "operationId": "resizeVm",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "vm_id",
            "required": true,
            "schema": {
              "title": "Vm Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResizeVMIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VMOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Resize Vm",
        "tags": [
          "Compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/vms/{vm_id}/restore": {
      "post": {
        "description": "Roll the VM's disks back to a snapshot. The VM must be stopped; it stays stopped.",
        "operationId": "restoreVm",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "vm_id",
            "required": true,
            "schema": {
              "title": "Vm Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RestoreVMIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VMOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Restore Vm",
        "tags": [
          "Compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/vms/{vm_id}/security-groups": {
      "put": {
        "description": "Replace the VM's security groups (same VPC). Applies to a running VM within seconds.",
        "operationId": "setVmSecurityGroups",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "vm_id",
            "required": true,
            "schema": {
              "title": "Vm Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VMSecurityGroupsIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VMOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Set Vm Security Groups",
        "tags": [
          "Compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/vms/{vm_id}/start": {
      "post": {
        "description": "Start the VM, also after it was shut down from inside the guest.",
        "operationId": "startVm",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "vm_id",
            "required": true,
            "schema": {
              "title": "Vm Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VMOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Start Vm",
        "tags": [
          "Compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/vms/{vm_id}/stop": {
      "post": {
        "description": "Graceful shutdown (ACPI); KubeVirt powers the VM off if the guest ignores it.",
        "operationId": "stopVm",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "vm_id",
            "required": true,
            "schema": {
              "title": "Vm Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VMOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Stop Vm",
        "tags": [
          "Compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/volumes": {
      "get": {
        "operationId": "listVolumes",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vm_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Vm Id"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_VolumeOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Volumes",
        "tags": [
          "Compute"
        ]
      },
      "post": {
        "operationId": "createVolume",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VolumeIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumeOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Volume",
        "tags": [
          "Compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/volumes/{volume_id}": {
      "delete": {
        "operationId": "deleteVolume",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "volume_id",
            "required": true,
            "schema": {
              "title": "Volume Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumeOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Volume",
        "tags": [
          "Compute"
        ]
      },
      "get": {
        "operationId": "getVolume",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "volume_id",
            "required": true,
            "schema": {
              "title": "Volume Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumeOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Volume",
        "tags": [
          "Compute"
        ]
      },
      "patch": {
        "operationId": "updateVolume",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "volume_id",
            "required": true,
            "schema": {
              "title": "Volume Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VolumePatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumeOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Volume",
        "tags": [
          "Compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/volumes/{volume_id}/attach": {
      "post": {
        "operationId": "attachVolume",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "volume_id",
            "required": true,
            "schema": {
              "title": "Volume Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AttachVolumeIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumeOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Attach Volume",
        "tags": [
          "Compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/volumes/{volume_id}/detach": {
      "post": {
        "description": "Unplug a data volume (live if the VM runs). Unmount it in the guest first.",
        "operationId": "detachVolume",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "volume_id",
            "required": true,
            "schema": {
              "title": "Volume Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumeOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Detach Volume",
        "tags": [
          "Compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/volumes/{volume_id}/resize": {
      "post": {
        "description": "Grow a volume, also while attached to a running VM (the guest sees the new size; grow\nthe partition/filesystem inside it). Volumes never shrink.",
        "operationId": "resizeVolume",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "volume_id",
            "required": true,
            "schema": {
              "title": "Volume Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResizeVolumeIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VolumeOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Resize Volume",
        "tags": [
          "Compute"
        ]
      }
    },
    "/api/v1/projects/{project_id}/vpcs": {
      "get": {
        "operationId": "listVpcs",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Limit"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Cursor"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_VpcOut_"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "List Vpcs",
        "tags": [
          "Network"
        ]
      },
      "post": {
        "operationId": "createVpc",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VpcIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpcOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Create Vpc",
        "tags": [
          "Network"
        ]
      }
    },
    "/api/v1/projects/{project_id}/vpcs/{vpc_id}": {
      "delete": {
        "operationId": "deleteVpc",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "vpc_id",
            "required": true,
            "schema": {
              "title": "Vpc Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpcOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Delete Vpc",
        "tags": [
          "Network"
        ]
      },
      "get": {
        "operationId": "getVpc",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "vpc_id",
            "required": true,
            "schema": {
              "title": "Vpc Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpcOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Get Vpc",
        "tags": [
          "Network"
        ]
      },
      "patch": {
        "operationId": "updateVpc",
        "parameters": [
          {
            "in": "path",
            "name": "project_id",
            "required": true,
            "schema": {
              "title": "Project Id",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "vpc_id",
            "required": true,
            "schema": {
              "title": "Vpc Id",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TagsPatch"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VpcOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "security": [
          {
            "BearerCredentialAuth": []
          },
          {
            "SessionIdentityAuth": []
          }
        ],
        "summary": "Update Vpc",
        "tags": [
          "Network"
        ]
      }
    },
    "/api/v1/signup/config": {
      "get": {
        "operationId": "signupConfig",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SignupConfigOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "summary": "Signup Config",
        "tags": [
          "Signup and verification"
        ]
      }
    },
    "/api/v1/waitlist": {
      "post": {
        "operationId": "joinWaitlist",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WaitlistIn"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WaitlistOut"
                }
              }
            },
            "description": "Accepted"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "summary": "Join Waitlist",
        "tags": [
          "Waitlist"
        ]
      }
    },
    "/api/v1/waitlist/config": {
      "get": {
        "operationId": "waitlistConfig",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WaitlistConfigOut"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Invalid request"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Access denied: the error names the action and the resource"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Not found (also: the resource belongs to another organization)"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Conflict or quota exceeded"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Idempotency key reused for a different request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorOut"
                }
              }
            },
            "description": "Rate limited"
          }
        },
        "summary": "Waitlist Config",
        "tags": [
          "Waitlist"
        ]
      }
    }
  },
  "servers": []
}