{
  "openapi": "3.0.1",
  "info": {
    "title": "DigiCert® Software Trust Manager REST API",
    "description": "\nWelcome to the DigiCert® Software Trust Manager REST API. The DigiCert® Software Trust Manager API service provides operations for managing cryptographic assets for DigiCert ONE users and accounts, and using those assets to sign binaries and applications.\n\n## Base URL\n\nThe base URL path for endpoints in the DigiCert® Software Trust Manager REST API is: `{server}/signingmanager/api/v1`.\n\nReplace `{server}` with the hostname of your DigiCert ONE instance. For example, if you are using the hosted cloud version of DigiCert ONE, your `{server}` is `https://one.digicert.com`.\n\n## Authentication\n\nAPI clients can authenticate to endpoints in the DigiCert® Software Trust Manager API using these methods:\n* Header-based API token authentication.\n* Authentication using a client authentication certificate.\n\n### API token\n\nTo authenticate with an API token, include the custom HTTP header `x-api-key` in your request. Use one of these values in the `x-api-key` header:\n* A service user token ID (**recommended**).    \n* An API token bound to a standard user in DigiCert ONE.\n\n**Note:** We recommend that you dedicate a service user token ID to API operations as this distinguishes API requests from standard user actions in your account audit logs. \n\n**Service user token ID**\n* Service users are API tokens that are not associated with a specific user.\n* When you create a service user, you assign only the permissions needed for the API integration.\n* There are two ways to create a new service user:\n\n  * 1- Use the Account Manager in DigiCert ONE. See [Create a service user](https://docs.digicert.com/en/digicert-one/account-manager/service-users/create-a-service-user.html).\n\n  * 2- Make a request to the `POST /account/api/v1/user` endpoint in the DigiCert ONE Account Manager API service (see [https://one.digicert.com/account/docs/swagger-ui/index.html#/Users/createUser](https://one.digicert.com/account/docs/swagger-ui/index.html#/Users/createUser)).\n\n\n**Standard user API token**\n\n* Standard user API tokens are assigned to users in your DigiCert ONE account.\n\n* Standard user API tokens have the same permissions and access scope as the user they belong to.\n\n* Actions linked to the API token are logged under the user's name in event audit logs.\n* To generate an API token, see [Add and manage API tokens](https://docs.digicert.com/en/digicert-one/account-manager/api-tokens.html).\n\n### Client authentication certificate\n\nWhen authenticating with a client authentication certificate, you present a trusted certificate in your request instead of using an API token. DigiCert ONE account users and service users can both use client authentication certificates.\n\nTo use a client authentication certificate:\n\n* Include the certificate in your API request.\n* In the base URL for the endpoint path, add the prefix `clientauth`. For example: `https://clientauth.one.digicert.com`\n* Omit the `x-api-key` header.\n\n## Requests\n\nThe DigiCert® Software Trust Manager API service accepts REST calls on the default ports 80/443. All requests are submitted using RESTful URLs and REST features, including header-based authentication and JSON request types. The data character set encoding for requests is UTF-8.\n\nA well-formed request uses port 443 and specifies the user-agent and content-length HTTP headers. Each request consists of a method and an endpoint. Some requests also include a body if relevant to the operation being performed.\n\n### Method\n\nThe DigiCert® Software Trust Manager API uses these standard HTTP methods:\n\n* GET\n* POST\n* PUT\n* DELETE\n\n### Body and content type\n\nAll requests that accept a body require passing in JSON formatted data with the `Content-Type` header set to `application/json`.\n\nGET requests do not require passing formatted data in the request payload. However, some GET operations allow you to filter the results by providing additional path parameters or URL query strings.\n\n## Responses\n\nEach response consists of a header and a body. The body is formatted based on the content type requested in the `Accept` header.\n\n**Note:** DigiCert® Software Trust Manager APIs only support responses with a content type of `application/json`. Requests that use the `Accept` header to specify a different content type will fail.\n\n### Headers\n\nEach response includes a header with a response code based on [RFC 2616](https://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.1.1) specifications.\n\n* HTTP codes in the **200-399** range describe a successful request. Response bodies for HTTP codes in this range include the response data associated with the operation.\n* HTTP codes in the **400+** range describe an error.\n\nUnsuccessful requests return a list with one or more `errors`. Each error object includes a `status` and a `message` describing the problem with the request.\n\n**Example error response**\n\n```JSON\n{\n  \"error\": {\n    \"status\": \"invalid_input_field\",\n    \"message\": \"Keypair not present for given keypairId 42256020-44fb-4930-aaa0-73b3121a8693. Please provide correct keypairId.\"\n  }\n}\n```\n",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "/signingmanager/"
    }
  ],
  "tags": [
    {
      "name": "Account settings",
      "description": "Manage account settings"
    },
    {
      "name": "Audit logs",
      "description": "Get audit logs and events data"
    },
    {
      "name": "Certificates",
      "description": "Manage certificates"
    },
    {
      "name": "Certificate profiles",
      "description": "Manage certificate profiles"
    },
    {
      "name": "Certificate templates",
      "description": "Manage certificate templates (**Note:** Requires system scope user permissions)"
    },
    {
      "name": "Connectors",
      "description": "Manage connectors"
    },
    {
      "name": "Hierarchies",
      "description": "Manage certificate hierarchies"
    },
    {
      "name": "Keypairs",
      "description": "Manage and use keypairs to sign"
    },
    {
      "name": "GPG keypairs",
      "description": "Manage and use GPG keypairs to sign"
    },
    {
      "name": "Keypair profiles",
      "description": "Manage keypair profiles"
    },
    {
      "name": "Key rotation",
      "description": "Manage key rotations"
    },
    {
      "name": "Release windows",
      "description": "Manage release windows"
    },
    {
      "name": "Release window comparison",
      "description": "Manage release window comparisons"
    },
    {
      "name": "Scans",
      "description": "Manage software scans"
    },
    {
      "name": "Signatures",
      "description": "Get information about signatures in your account"
    },
    {
      "name": "Software Projects",
      "description": "Manage Software Projects"
    },
    {
      "name": "Teams",
      "description": "Manage teams (**Note:** Requires `Manage all teams` permission)"
    },
    {
      "name": "Teams multi-person approvals",
      "description": "Manage multi-person approval requests for teams"
    },
    {
      "name": "User teams membership",
      "description": "Get teams details for logged-in user"
    },
    {
      "name": "User active account",
      "description": "Manage active account for logged-in user"
    },
    {
      "name": "User groups",
      "description": "Manage user groups"
    }
  ],
  "paths": {
    "/api/v1/settings": {
      "get": {
        "tags": [
          "Account settings"
        ],
        "summary": "List account settings",
        "description": "Use this endpoint to list account settings for the given account. \n\n`account_id` is required, to be appended to the endpoint URL as a query parameter. \n",
        "operationId": "getAccountSettings",
        "parameters": [
          {
            "name": "account_id",
            "description": "ID of the account to list settings for.",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Object with list of current account settings for the account.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "00000000-0000-0000-0000-000000000000": {
                      "description": "Array of account settings for the given account ID number.",
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "$ref": "#/components/schemas/AccountSettingEnabled"
                          },
                          {
                            "$ref": "#/components/schemas/AccountSettingStringList"
                          },
                          {
                            "$ref": "#/components/schemas/AccountSettingListContentAllowed"
                          },
                          {
                            "$ref": "#/components/schemas/AccountSettingKeypairProperties"
                          },
                          {
                            "$ref": "#/components/schemas/AccountSettingInteger"
                          },
                          {
                            "$ref": "#/components/schemas/AccountSettingGeneral"
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Account settings"
        ],
        "summary": "Update account settings",
        "description": "Use this endpoint to update the account settings for the given account. \n\nSpecify the `account_id` in the request body.\n\nInclude the setting details to update in the `account_settings` object in the request body. \n",
        "operationId": "updateAccountSettings",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAccountSettingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Object with list of current account settings for the account.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "00000000-0000-0000-0000-000000000000": {
                      "description": "Array of account settings for the given account ID number.",
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "$ref": "#/components/schemas/AccountSettingEnabled"
                          },
                          {
                            "$ref": "#/components/schemas/AccountSettingStringList"
                          },
                          {
                            "$ref": "#/components/schemas/AccountSettingListContentAllowed"
                          },
                          {
                            "$ref": "#/components/schemas/AccountSettingKeypairProperties"
                          },
                          {
                            "$ref": "#/components/schemas/AccountSettingInteger"
                          },
                          {
                            "$ref": "#/components/schemas/AccountSettingGeneral"
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/account/{account_id}/client-tools": {
      "get": {
        "tags": [
          "Account"
        ],
        "summary": "Get client tools for account",
        "description": "Use this endpoint to retrieve the list of available client tools for a specific account.\n\nThe response includes the package type (STM-PREMIUM or KeyLocker) and the client \ntools available for each operating system.\n\n**Note:** The available tools depend on whether the account has the KeyLocker \nfeature enabled.\n",
        "operationId": "getClientToolsForAccount",
        "parameters": [
          {
            "name": "account_id",
            "description": "ID of the account to retrieve client tools for.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "example": "00000000-0000-0000-0000-000000000000"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved client tools for the account.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientToolsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request - Invalid account ID format."
          },
          "401": {
            "description": "Unauthorized - Authentication required."
          },
          "403": {
            "description": "Forbidden - User does not have access to this account."
          },
          "404": {
            "description": "Not found - Account does not exist."
          }
        }
      }
    },
    "/api/v1/audit-log": {
      "get": {
        "tags": [
          "Audit logs"
        ],
        "summary": "List audit log events",
        "description": "Use this endpoint to list current audit log events in your account. \n\nThe response contains a limit of 20 audit log event records by default.\n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n",
        "operationId": "list_audit_log",
        "parameters": [
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/durationParam"
          },
          {
            "$ref": "#/components/parameters/sortPagingParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "$ref": "#/components/parameters/resourceTypeSearchParam"
          },
          {
            "$ref": "#/components/parameters/accountNameSearchParam"
          },
          {
            "$ref": "#/components/parameters/auditLogStatusSearchParam"
          },
          {
            "$ref": "#/components/parameters/createdOnSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "List of audit log events that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "offset": {
                      "type": "integer",
                      "description": "Page index of current results.",
                      "example": 0
                    },
                    "limit": {
                      "type": "integer",
                      "description": "Limit on the number of records included in the results.",
                      "example": 1
                    },
                    "items": {
                      "type": "array",
                      "description": "Array of audit log records. Each record is an object that provides information about an audit log event in your account.",
                      "items": {
                        "$ref": "#/components/schemas/AuditLogEvent"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/audit-log/{event_id}": {
      "get": {
        "tags": [
          "Audit logs"
        ],
        "summary": "Get audit log event by ID",
        "description": "Use this endpoint to get the details of the audit log event with the given ID. \n",
        "operationId": "get_audit_log_id",
        "parameters": [
          {
            "name": "event_id",
            "description": "ID of the audit log event to get.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Audit log event details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuditLogEventDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/audit-log/archived-log": {
      "get": {
        "tags": [
          "Audit logs"
        ],
        "summary": "List archived audit log files",
        "description": "Use this endpoint to list archived audit log files in your account. \n\nThe response contains a limit of 20 archived audit log files by default. It contains a basic summary of each log file, including the number of events recorded in it.\n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n",
        "operationId": "list_archived_audit_log",
        "parameters": [
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/sortPagingParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "name": "start_timestamp",
            "description": "Starting timestamp range to search for.",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "end_timestamp",
            "description": "Ending timestamp range to search for.",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of archived audit log files that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/PaginationResult"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "description": "Array of archived audit log files. Each record is an object that provides information about an audit log file in your account.",
                          "items": {
                            "$ref": "#/components/schemas/ArchivedLogFile"
                          }
                        },
                        "log_count": {
                          "description": "Total number of audit log events.",
                          "type": "number",
                          "example": 67352
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/audit-log/download-archived/{log_file_id}": {
      "get": {
        "tags": [
          "Audit logs"
        ],
        "summary": "Download archived audit log file by ID",
        "description": "Use this endpoint to download the archived audit log file with the given ID in CSV format. \n",
        "operationId": "download_archived_audit_log_id",
        "parameters": [
          {
            "name": "log_file_id",
            "description": "ID of the log file to download.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Archived audit log file in CSV format."
          }
        }
      }
    },
    "/api/v1/audit-log/download-non-archived": {
      "get": {
        "tags": [
          "Audit logs"
        ],
        "summary": "Download non-archived audit logs",
        "description": "Use this endpoint to download non-archived audit logs from your account in CSV format. \n\n`timezone` is optional, appended to the endpoint URL as a query parameter. Specify the `timezone` using the IANA time zone code (see [https://www.iana.org/time-zones](https://www.iana.org/time-zones)). If no `timezone` is specified, this defaults to UTC. \n",
        "operationId": "download_non_archived_audit_log",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "name": "timezone",
            "description": "Search for records timestamped in the given timezone.",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Non-archived audit logs CSV file."
          }
        }
      }
    },
    "/api/v1/audit-log/download-recent": {
      "get": {
        "tags": [
          "Audit logs"
        ],
        "summary": "Download most recent audit logs",
        "description": "Use this endpoint to download the most recent audit logs from your account in CSV format. \n\nReturns the most recent audit logs, to a maximum of 10,000.\n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n\n`timezone` is optional, appended to the endpoint URL as a query parameter. Specify the `timezone` using the IANA time zone code (see [https://www.iana.org/time-zones](https://www.iana.org/time-zones)). If no `timezone` is specified, this defaults to UTC. \n",
        "operationId": "download_recent_audit_log",
        "parameters": [
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/sortPagingParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "$ref": "#/components/parameters/resourceTypeSearchParam"
          },
          {
            "$ref": "#/components/parameters/accountNameSearchParam"
          },
          {
            "$ref": "#/components/parameters/auditLogStatusSearchParam"
          },
          {
            "$ref": "#/components/parameters/createdOnSearchParam"
          },
          {
            "name": "timezone",
            "description": "Search for records timestamped in the given timezone.",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Audit logs file in CSV format."
          }
        }
      }
    },
    "/api/v1/certificates": {
      "get": {
        "tags": [
          "Certificates"
        ],
        "summary": "List certificates",
        "description": "Use this endpoint to list certificates in your account. \n\nThe response contains a limit of 20 certificates by default.\n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n",
        "operationId": "listCertificates",
        "parameters": [
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/sortPagingParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "$ref": "#/components/parameters/idSearchParam"
          },
          {
            "$ref": "#/components/parameters/enrollmentMethodSearchParam"
          },
          {
            "name": "alias",
            "in": "query",
            "description": "Limit results to certificates with an alias that contains the given string.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "devteam1"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of certificates that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "total": {
                      "type": "integer",
                      "description": "Total number of records.",
                      "example": 298
                    },
                    "offset": {
                      "type": "integer",
                      "description": "Page index of current results.",
                      "example": 0
                    },
                    "limit": {
                      "type": "integer",
                      "description": "Limit on the number of records included in the results.",
                      "example": 1
                    },
                    "items": {
                      "type": "array",
                      "description": "Array of certificate records. Each record is an object that provides information about a certificate in your account.",
                      "items": {
                        "$ref": "#/components/schemas/CertificateDetailResponse"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/certificates/{certificate_id}": {
      "get": {
        "tags": [
          "Certificates"
        ],
        "summary": "Get certificate by ID",
        "description": "Use this endpoint to get the details of the certificate with the given ID. \n",
        "operationId": "getCertificate",
        "parameters": [
          {
            "name": "certificate_id",
            "description": "ID of the certificate to get.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Certificate details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CertificateDetailResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Certificates"
        ],
        "summary": "Update certificate",
        "description": "Use this endpoint to update the certificate with the given ID.  \n\nThe `alias` field is required in the request body. The certificate `auto_renewal` setting can also be updated. \n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "updateCertificate",
        "parameters": [
          {
            "name": "certificate_id",
            "description": "ID of the certificate to update.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCertificateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Certificate details updated. No content."
          }
        }
      },
      "delete": {
        "tags": [
          "Certificates"
        ],
        "summary": "Delete certificate",
        "description": "Use this endpoint to delete the certificate with the given ID from your account. \n\n`account_id` is a required query parameter for this request. \n\nThis endpoint returns `400 Bad Request` if the `account_id` query parameter is omitted. \n",
        "operationId": "deleteCertificateById",
        "parameters": [
          {
            "name": "certificate_id",
            "description": "ID of the certificate to delete.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "account_id",
            "description": "ID of the account with the certificate to delete.",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Certificate deleted. No content."
          }
        }
      }
    },
    "/api/v1/certificates/{certificate_id}/revoke": {
      "put": {
        "tags": [
          "Certificates"
        ],
        "summary": "Revoke certificate",
        "description": "Use this endpoint to revoke the certificate with the given ID. \n\n`reason` is a required field in the request body.\n\nThe following request body fields are optional:\n\n  * `revocation_date` — Certificate revocation can optionally be post-dated. Include the date for revocation to occur in this field. \n\n  * `comments` — Comments on the revocation to be included in the event audit log. \n\n  * `account` — Account ID. Only required if your API token relates to more than one account. \n",
        "operationId": "revokeCertificate",
        "parameters": [
          {
            "name": "certificate_id",
            "description": "ID of the certificate to revoke.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RevocationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Certificate details including revocation info.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CertificateRevokeResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/certificate-profiles": {
      "get": {
        "tags": [
          "Certificate profiles"
        ],
        "summary": "List certificate profiles",
        "description": "Use this endpoint to list certificate profiles in your account.\n\nThe response contains a limit of 20 certificate profiles by default.\n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n",
        "operationId": "listProfiles",
        "parameters": [
          {
            "name": "isAccessPolicyRestricted",
            "in": "query",
            "required": false,
            "description": "If true, return only certificate profiles that are restricted by access policy.",
            "schema": {
              "type": "boolean",
              "example": false
            }
          },
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/sortPagingParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "$ref": "#/components/parameters/idSearchParam"
          },
          {
            "$ref": "#/components/parameters/nameSearchParam"
          },
          {
            "$ref": "#/components/parameters/statusSearchParam"
          },
          {
            "name": "type",
            "in": "query",
            "description": "Limit results to profiles of the given type.",
            "required": false,
            "schema": {
              "type": "string",
              "example": "CA_PROFILE"
            }
          },
          {
            "name": "validity_compliant",
            "in": "query",
            "description": "Limit results to records with the compliant validity period.",
            "required": false,
            "schema": {
              "type": "boolean",
              "example": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of certificate profiles that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/PaginationResult"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "description": "Array of certificate profile records. Each record is an object that provides information about a certificate profile in your account.",
                          "items": {
                            "$ref": "#/components/schemas/CertificateProfileResponse"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Certificate profiles"
        ],
        "summary": "Create certificate profile",
        "description": "Use this endpoint to create a new certificate profile. \n\nThe following fields are required in the request body:\n\n* `name` — certificate profile name.\n\n* `profile_type` — certificate profile type (`CA_PROFILE` or `CC_PROFILE`).\n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "createProfile",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CertificateProfileRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Certificate profile details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CertificateProfileResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/certificate-profiles/{certificate_profile_id}": {
      "get": {
        "tags": [
          "Certificate profiles"
        ],
        "summary": "Get certificate profile by ID",
        "description": "Use this endpoint to get the details of the certificate profile with the given ID. \n",
        "operationId": "getProfileById",
        "parameters": [
          {
            "name": "certificate_profile_id",
            "description": "ID of the certificate profile to get.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "3943c889-c2fc-4353-909a-a0ae1705451f"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Certificate profile details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CertificateProfileResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Certificate profiles"
        ],
        "summary": "Update certificate profile",
        "description": "Use this endpoint to update the details of the certificate profile with the given ID. \n\nInclude the details to update in the request body. Specific fields that can be updated depend on the profile type (`CA_PROFILE` or `CC_PROFILE`). The `profile_type` itself cannot be updated.\n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "updateProfile",
        "parameters": [
          {
            "name": "certificate_profile_id",
            "description": "ID of the certificate profile to update.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "3943c889-c2fc-4353-909a-a0ae1705451f"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CertificateProfileRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Certificate profile details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CertificateProfileResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/certificate-profiles/{certificate_profile_id}/disable": {
      "put": {
        "tags": [
          "Certificate profiles"
        ],
        "summary": "Disable certificate profile",
        "description": "Use this endpoint to disable (suspend) the certificate profile with the given ID. \n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "disableProfile",
        "parameters": [
          {
            "name": "certificate_profile_id",
            "description": "ID of the certificate profile to disable.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "3943c889-c2fc-4353-909a-a0ae1705451f"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Certificate profile details. If successful, the returned certificate profile has a `status` of `DISABLED`.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CertificateProfileResponseDisabled"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/certificate-profiles/{certificate_profile_id}/enable": {
      "put": {
        "tags": [
          "Certificate profiles"
        ],
        "summary": "Enable certificate profile",
        "description": "Use this endpoint to enable the certificate profile with the given ID.\n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "enableProfile",
        "parameters": [
          {
            "name": "certificate_profile_id",
            "description": "ID of the certificate profile to enable.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "3943c889-c2fc-4353-909a-a0ae1705451f"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Certificate profile details. If successful, the returned certificate profile has a `status` of `ACTIVE`.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CertificateProfileResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/certificate-templates": {
      "get": {
        "tags": [
          "Certificate templates"
        ],
        "summary": "List certificate templates",
        "operationId": "listTemplates",
        "description": "Use this endpoint to list certificate templates in your account. \n\nThe response contains a limit of 20 certificate templates by default.\n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/sortPagingParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "$ref": "#/components/parameters/idSearchParam"
          },
          {
            "$ref": "#/components/parameters/nameSearchParam"
          },
          {
            "$ref": "#/components/parameters/statusSearchParam"
          },
          {
            "$ref": "#/components/parameters/typeSearchParam"
          },
          {
            "$ref": "#/components/parameters/templateSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "List of certificate templates that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/PaginationResult"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "description": "Array of certificate template records. Each record is an object that provides information about a certificate template in your account.",
                          "items": {
                            "$ref": "#/components/schemas/CertificateTemplateResponse"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Certificate templates"
        ],
        "summary": "Create certificate template",
        "description": "Use this endpoint to create a new certificate template. \n\nThe following fields are required in the request body:\n\n`name` — Certificate template name. \n\n`body` — Certificate template body containing template details, including:\n\n`cert_type` — Certificate type the template applies to.\n\n`signature_algorithm` — Certificate signature algorithm.\n\n`subject` — Certificate subject fields.\n\n`extensions` — Certificate extensions.\n\n`validity` — Certificate validity period.\n",
        "operationId": "generateTemplate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CertificateTemplateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Certificate template details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CertificateTemplateResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/certificate-templates/{certificate_template_id}": {
      "get": {
        "tags": [
          "Certificate templates"
        ],
        "summary": "Get certificate template by ID",
        "description": "Use this endpoint to get the details of the certificate template with the given ID.\n",
        "operationId": "getById_2",
        "parameters": [
          {
            "name": "certificate_template_id",
            "description": "ID of the certificate template to get.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "2432c889-c2fc-4353-909a-a0ae1705451f"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Certificate template details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CertificateTemplateResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Certificate templates"
        ],
        "summary": "Update certificate template",
        "description": "Use this endpoint to update the details of the certificate template with the given ID. \n\nInclude the details to update in the request body. \n",
        "operationId": "updateCertificateTemplate",
        "parameters": [
          {
            "name": "certificate_template_id",
            "description": "ID of the certificate template to update.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "2432c889-c2fc-4353-909a-a0ae1705451f"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CertificateTemplateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Certificate template details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CertificateTemplateResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/certificate-templates/{certificate_template_id}/clone": {
      "post": {
        "tags": [
          "Certificate templates"
        ],
        "summary": "Clone certificate template",
        "description": "Use this endpoint to clone the certificate template with the given ID as the basis for creating a new certificate template.\n\nProvide the `name` for the new certificate template in the request body.\n\nSend `custom_template` is `true` in the request body to clone a custom certificate template.  \n",
        "operationId": "cloneTemplate",
        "parameters": [
          {
            "name": "certificate_template_id",
            "description": "ID of the certificate template to clone.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "2432c889-c2fc-4353-909a-a0ae1705451f"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CertificateTemplateCloneRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Certificate template details",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CertificateTemplateResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/certificate-templates/{certificate_template_id}/disable": {
      "put": {
        "tags": [
          "Certificate templates"
        ],
        "summary": "Disable certificate template",
        "description": "Use this endpoint to disable (suspend) the certificate template with the given ID. \n",
        "operationId": "suspendTemplate",
        "parameters": [
          {
            "name": "certificate_template_id",
            "description": "ID of the certificate template to disable.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "2432c889-c2fc-4353-909a-a0ae1705451f"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Certificate template details. If successful, the returned certificate template has a `status` of `DISABLED`.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CertificateTemplateResponseDisabled"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/certificate-templates/{certificate_template_id}/enable": {
      "put": {
        "tags": [
          "Certificate templates"
        ],
        "summary": "Enable certificate template",
        "description": "Use this endpoint to enable the certificate template with the given ID.\n",
        "operationId": "unSuspendTemplate",
        "parameters": [
          {
            "name": "certificate_template_id",
            "description": "ID of the certificate template to enable.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "2432c889-c2fc-4353-909a-a0ae1705451f"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Certificate template details. If successful, the returned certificate template has a `status` of `ACTIVE`.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CertificateTemplateResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/certificate-templates/{id}/fields-specification": {
      "get": {
        "tags": [
          "Certificate templates"
        ],
        "summary": "Get certificate template fields specification",
        "description": "Use this endpoint to get the fields specification for the certificate template with the given ID. \n\nThe returned specification includes details such as the data type, default value, and allowed values for each certificate template field. \n",
        "operationId": "getSpecificationForProfile",
        "parameters": [
          {
            "name": "id",
            "description": "ID of the certificate template in question.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "2432c889-c2fc-4353-909a-a0ae1705451f"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Certificate template field details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CertificateTemplateFieldsSpecification"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/connectors": {
      "post": {
        "tags": [
          "Connectors"
        ],
        "summary": "Create connector",
        "operationId": "createConnector",
        "description": "Use this endpoint to create a new connector. Connectors are integrations that allow DigiCert® Software Trust Manager to utilize functionality from third-party applications.\n\n## Request format\n\n### Provider-agnostic request parameters\n\nAll requests to create a connector use these request body fields, regardless of type or provider:\n* `connector_status`\n\n* `connector_type`\n\n* `provider`\n\n* `provider_id`\n\n### Provider-specific request parameters\n\nRequirements for additional request body fields vary depending on the provider.\n\n* **ReversingLabs**  \nDigiCert® Software Trust Manager Dynamic Application Security Testing (DAST) service (powered by ReversingLabs) scans your software for malware, vulnerabilities, secrets, and more. Advanced features enable capabilities such as threat differential analysis, software posture assessment, and generation of SARIF, SBOM and full risk reports.  \n<br>Requests to create a ReversingLabs connector require these request body fields. For descriptions and allowed values, see the request body schema.\n\n  * `service_tier`\n  \n  * `license_key`\n\n  * `site_key`\n\n* **CertCentral**\n<br>Integrating DigiCert® Software Trust Manager with CertCentral allows you to order and manage publicly trusted\ncertificates from your account.\n<br><br>Requests to create a CertCentral connector require these request body fields. For descriptions and \nallowed values, see the request body schema.\n\n  * `cc_host`\n\n  * `api_key_name`, `api_key`\n\n  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OR\n\n  * `user_name`, `password`\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ConnectorBasic"
                  }
                ],
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ConnectorReversingLabs"
                  },
                  {
                    "$ref": "#/components/schemas/ConnectorCertCentral"
                  }
                ]
              },
              "examples": {
                "createReversingLabsConnectorExample": {
                  "summary": "Create ReversingLabs connector",
                  "value": {
                    "connector_status": "ACTIVE",
                    "connector_type": "SOFTWARE_SCANNER",
                    "provider": "REVERSING_LABS",
                    "provider_id": "d184eb76-01b8-40af-83ba-b1b74338b801",
                    "service_tier": "SCCRAS",
                    "license_key": "<license_key>",
                    "site_key": "<site_key>"
                  }
                },
                "createCertCentralConnectorExample": {
                  "summary": "Create CertCentral connector",
                  "value": {
                    "connector_status": "ACTIVE",
                    "connector_type": "CERTIFICATE_AUTHORITY",
                    "provider": "CERT_CENTRAL",
                    "provider_id": "<cc_account_id>",
                    "cc_host": "US",
                    "api_key_name": "<api_key_name>",
                    "api_key": "<api_key>"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Connector details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Connectors"
        ],
        "summary": "List connectors",
        "operationId": "getConnectors",
        "description": "Use this endpoint to list connectors in your account.\n\nThe response contains a limit of 20 hierarchies by default.\n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/sortPagingParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "List of connectors that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/PaginationResult"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "description": "Array of connector records. Each record is an object that provides information about a connector in your account.",
                          "items": {
                            "$ref": "#/components/schemas/ConnectorResponse"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/connectors/{connector_id}": {
      "put": {
        "tags": [
          "Connectors"
        ],
        "summary": "Update connector",
        "operationId": "updateConnector",
        "description": "Use this endpoint to update a connector. Connectors are integrations that allow DigiCert® Software Trust Manager\n to utilize functionality from third-party applications.\n\n## Request format\n\n### Provider-agnostic request parameters\n\nAll requests to update a connector use these request body fields, regardless of type or provider:\n* `connector_status`\n\n* `provider`\n\n* `provider_id`\n\n### Provider-specific request parameters\n\nRequirements for additional request body fields vary depending on the provider.\n\n* **ReversingLabs**  \nDigiCert® Software Trust Manager Dynamic Application Security Testing (DAST) service (powered by ReversingLabs) scans your software for malware, vulnerabilities, secrets, and more. Advanced features enable capabilities such as threat differential analysis, software posture assessment, and generation of SARIF, SBOM and full risk reports.  \n<br>Requests to create a ReversingLabs connector require these request body fields. For descriptions and allowed values, see the request body schema.\n\n  * `service_tier`\n\n  * `license_key`\n\n  * `site_key`\n\n* **CertCentral**\n<br>Integrating DigiCert® Software Trust Manager with CertCentral allows you to order and manage publicly trusted\ncertificates from your account.\n<br><br>Requests to create a CertCentral connector require these request body fields. For descriptions and \nallowed values, see the request body schema.\n\n  * `cc_host`\n\n  * `api_key_name`, `api_key`\n\n  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OR\n\n  * `user_name`, `password`\n",
        "parameters": [
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of connector to get.",
              "format": "uuid",
              "example": "eced5a79-50d7-4d69-a086-b0b0b76d261a"
            }
          },
          {
            "in": "query",
            "name": "account_id",
            "description": "ID of account the given connector belongs to, if your API token relates to more than one account.",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid",
              "example": "4567896f-4ce8-4d8f-ccec-332bc48df912"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/UpdateConnectorBasic"
                  }
                ],
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/UpdateConnectorReversingLabs"
                  },
                  {
                    "$ref": "#/components/schemas/UpdateConnectorCertCentral"
                  }
                ]
              },
              "examples": {
                "updateReversingLabsConnectorExample": {
                  "summary": "Update ReversingLabs connector",
                  "value": {
                    "connector_status": "ACTIVE",
                    "provider": "REVERSING_LABS",
                    "provider_id": "d184eb76-01b8-40af-83ba-b1b74338b801",
                    "service_tier": "SCCRAS",
                    "license_key": "<license_key>",
                    "site_key": "<site_key>"
                  }
                },
                "updateCertCentralConnectorExample": {
                  "summary": "Update CertCentral connector",
                  "value": {
                    "connector_status": "ACTIVE",
                    "provider": "CERT_CENTRAL",
                    "provider_id": "<cc_account_id>",
                    "cc_host": "US",
                    "api_key_name": "<api_key_name>",
                    "api_key": "<api_key>"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Connector details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Connectors"
        ],
        "summary": "Get connector by ID",
        "operationId": "getConnector",
        "description": "Use this endpoint to get the details of the connector with the given ID.",
        "parameters": [
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of connector to get.",
              "format": "uuid",
              "example": "eced5a79-50d7-4d69-a086-b0b0b76d261a"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Connector details.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ConnectorResponse"
                    },
                    {
                      "$ref": "#/components/schemas/ConnectorAttributes"
                    }
                  ]
                },
                "examples": {
                  "ConnectorResponseReverseLabs": {
                    "summary": "ReverseLabs connector details",
                    "value": {
                      "id": "e8768b4f-759c-41dd-9ee5-e52a7fd897f8",
                      "provider": "REVERSING_LABS",
                      "type": "SOFTWARE_SCANNER",
                      "status": "ACTIVE",
                      "provider_id": "878f8406-3db4-4753-acb8-6f454474f708",
                      "connector_attributes": {
                        "service_tier": "SCCRAS",
                        "license_key": "<license_key>",
                        "site_key": "<site_key>"
                      },
                      "account_id": "4567896f-4ce8-4d8f-ccec-332bc48df912",
                      "account": {
                        "id": "4567896f-4ce8-4d8f-ccec-332bc48df912",
                        "name": "Example Account"
                      },
                      "created_on": "2023-04-25T18:22:25.405Z",
                      "created_by": {
                        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                        "name": "SSM User",
                        "auth_type": "BASIC"
                      },
                      "modified_on": "2023-04-25T18:22:25.405Z",
                      "modified_by": {
                        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                        "name": "SSM User",
                        "auth_type": "BASIC"
                      }
                    }
                  },
                  "ConnectorResponseCertCentral": {
                    "summary": "CertCentral connector details",
                    "value": {
                      "id": "c9f59de5-ccf9-4d90-aa45-a30acb7f3487",
                      "provider": "CERT_CENTRAL",
                      "type": "CERTIFICATE_AUTHORITY",
                      "status": "ACTIVE",
                      "provider_id": 1234567,
                      "connector_attributes": {
                        "api_key_name": "<api_key_name>",
                        "cc_api_key": "<api_key>",
                        "cc_user_name": null,
                        "cc_account_id": 1234567,
                        "host": "US",
                        "keylocker": false
                      },
                      "account_id": "4567896f-4ce8-4d8f-ccec-332bc48df912",
                      "account": {
                        "id": "4567896f-4ce8-4d8f-ccec-332bc48df912",
                        "name": "Example Account"
                      },
                      "created_on": "2023-04-25T18:22:25.405Z",
                      "created_by": {
                        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                        "name": "SSM User",
                        "auth_type": "BASIC"
                      },
                      "modified_on": "2023-04-25T18:22:25.405Z",
                      "modified_by": {
                        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                        "name": "SSM User",
                        "auth_type": "BASIC"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Connectors"
        ],
        "summary": "Delete connector",
        "operationId": "deleteConnector",
        "description": "Use this endpoint to delete a connector.",
        "parameters": [
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of connector to delete.",
              "format": "uuid",
              "example": "eced5a79-50d7-4d69-a086-b0b0b76d261a"
            }
          },
          {
            "in": "query",
            "name": "account_id",
            "description": "ID of account the given connector belongs to, if your API token relates to more than one account.",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid",
              "example": "4567896f-4ce8-4d8f-ccec-332bc48df912"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Connector deleted. No content."
          }
        }
      }
    },
    "/api/v1/connectors/{connector_id}/disable": {
      "patch": {
        "tags": [
          "Connectors"
        ],
        "summary": "Disable a connector",
        "operationId": "disableConnector",
        "description": "Use this endpoint to disable a connector.",
        "parameters": [
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of connector to disable.",
              "format": "uuid",
              "example": "eced5a79-50d7-4d69-a086-b0b0b76d261a"
            }
          },
          {
            "in": "query",
            "name": "account_id",
            "description": "ID of account the given connector belongs to. Required if your API token relates to more than one account.",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid",
              "example": "4567896f-4ce8-4d8f-ccec-332bc48df912"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Connector details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/connectors/{connector_id}/enable": {
      "patch": {
        "tags": [
          "Connectors"
        ],
        "summary": "Enable a connector",
        "operationId": "enableConnector",
        "description": "Use this endpoint to enable a connector.",
        "parameters": [
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of connector to enable.",
              "format": "uuid",
              "example": "eced5a79-50d7-4d69-a086-b0b0b76d261a"
            }
          },
          {
            "in": "query",
            "name": "account_id",
            "description": "ID of account the given connector belongs to. Required if your API token relates to more than one account.",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid",
              "example": "4567896f-4ce8-4d8f-ccec-332bc48df912"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Connector details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/connectors/{connector_id}/verify": {
      "patch": {
        "tags": [
          "Connectors"
        ],
        "summary": "Verify a connector",
        "operationId": "verifyConnector",
        "description": "Use this endpoint to enable a connector.",
        "parameters": [
          {
            "in": "path",
            "name": "connector_id",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of connector to enable.",
              "format": "uuid",
              "example": "eced5a79-50d7-4d69-a086-b0b0b76d261a"
            }
          },
          {
            "in": "query",
            "name": "account_id",
            "description": "ID of account the given connector belongs to. Required if your API token relates to more than one account.",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid",
              "example": "4567896f-4ce8-4d8f-ccec-332bc48df912"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Connector verification response.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/ConnectorVerifyResponse"
                    }
                  ],
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/CertCentralConnectorVerifyResponse"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/hierarchies/": {
      "get": {
        "tags": [
          "Hierarchies"
        ],
        "summary": "List hierarchies",
        "description": "Use this endpoint to list hierarchies in your account. The trailing slash in this endpoint is mandatory. \n\nThe response contains a limit of 20 hierarchies by default.\n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n",
        "operationId": "listHierarchies",
        "parameters": [
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/sortPagingParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "$ref": "#/components/parameters/hierarchyTypeSearchParam"
          },
          {
            "$ref": "#/components/parameters/nameSearchParam"
          },
          {
            "$ref": "#/components/parameters/hierarchyStatusSearchParam"
          },
          {
            "$ref": "#/components/parameters/createdOnSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "List of hierarchies that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/PaginationResult"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "description": "Array of hierarchy records. Each record is an object that provides information about a hierarchy in your account.",
                          "items": {
                            "$ref": "#/components/schemas/HierarchyListing"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Hierarchies"
        ],
        "summary": "Create hierarchy",
        "description": "Use this endpoint to create a new hierarchy. The trailing slash in this endpoint is mandatory.\n\nThe `certificate` string and `hierarchy_type` (`LIMITED` or `UNLIMITED`) are required in your request body.\n\nAll other request body fields are optional. `account` information is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "createHierarchy",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateHierarchyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Hierarchy details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HierarchyDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/hierarchies/{hierarchy_id}": {
      "get": {
        "tags": [
          "Hierarchies"
        ],
        "summary": "Get hierarchy by ID",
        "description": "Use this endpoint to get the details of the hierarchy with the given ID. \n",
        "operationId": "getHierarchy",
        "parameters": [
          {
            "name": "hierarchy_id",
            "description": "ID of the hierarchy to get.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Hierarchy details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HierarchyDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Hierarchies"
        ],
        "summary": "Update hierarchy",
        "description": "Use this endpoint to update the details of the hierarchy with the given ID.   \n\nInclude the hierarchy details to update in the request body. The following hierarchy fields can be updated: \n\n* `comment` — Text comment about the hierarchy. \n\n* `validation_profile` — The validation profile used by the hierarchy. \n\n* `trust_type` — `PUBLIC` or `PRIVATE`. \n\n* `hierarchy_type` — `LIMITED` or `UNLIMITED`. \n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "updateHierarchy",
        "parameters": [
          {
            "name": "hierarchy_id",
            "description": "ID of the hierarchy to update.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateHierarchyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Hierarchy details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HierarchyDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/hierarchies/{hierarchy_id}/approve": {
      "put": {
        "tags": [
          "Hierarchies"
        ],
        "summary": "Approve hierarchy",
        "description": "Use this endpoint to approve the pending hierarchy with the given ID. \n\nThe following hierarchy fields can be included in the request body to be updated as part of the approval:\n\n* `comment` — Text comment about the hierarchy. \n\n* `validation_profile` — The validation profile used by the hierarchy. \n\n* `trust_type` — `PUBLIC` or `PRIVATE`. \n\n* `hierarchy_type` — `LIMITED` or `UNLIMITED`. \n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "approveHierarchy",
        "parameters": [
          {
            "name": "hierarchy_id",
            "description": "ID of the hierarchy to approve.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateHierarchyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Hierarchy details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HierarchyDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/hierarchies/{hierarchy_id}/reject": {
      "put": {
        "tags": [
          "Hierarchies"
        ],
        "summary": "Reject hierarchy",
        "description": "Use this endpoint to reject the pending hierarchy with the given ID. \n\nThe following hierarchy fields can be included in the request body to be updated as part of the rejection:\n\n* `comment` — Text comment about the hierarchy. \n\n* `validation_profile` — The validation profile used by the hierarchy. \n\n* `trust_type` — `PUBLIC` or `PRIVATE`. \n\n* `hierarchy_type` — `LIMITED` or `UNLIMITED`. \n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "rejectHierarchy",
        "parameters": [
          {
            "name": "hierarchy_id",
            "description": "ID of the hierarchy to reject.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateHierarchyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Hierarchy details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HierarchyDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/hierarchies/{hierarchy_id}/suspend": {
      "put": {
        "tags": [
          "Hierarchies"
        ],
        "summary": "Suspend hierarchy",
        "description": "Use this endpoint to suspend the hierarchy with the given ID. \n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "suspendHierarchy",
        "parameters": [
          {
            "name": "hierarchy_id",
            "description": "ID of the hierarchy to suspend.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Hierarchy details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HierarchyDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/hierarchies/{hierarchy_id}/unsuspend": {
      "put": {
        "tags": [
          "Hierarchies"
        ],
        "summary": "Resume hierarchy",
        "description": "Use this endpoint to resume (unsuspend) the hierarchy with the given ID. \n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "unSuspendHierarchy",
        "parameters": [
          {
            "name": "hierarchy_id",
            "description": "ID of the hierarchy to unsuspend.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Hierarchy details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HierarchyDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/hierarchies/{hierarchy_id}/lock": {
      "put": {
        "tags": [
          "Hierarchies"
        ],
        "summary": "Lock hierarchy",
        "description": "Use this endpoint to lock the hierarchy with the given ID.\n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "lockHierarchy",
        "parameters": [
          {
            "name": "hierarchy_id",
            "description": "ID of the hierarchy to lock.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Hierarchy details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HierarchyDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/hierarchies/{hierarchy_id}/unlock": {
      "put": {
        "tags": [
          "Hierarchies"
        ],
        "summary": "Unlock hierarchy",
        "description": "Use this endpoint to unlock the hierarchy with the given ID. \n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "unlockHierarchy",
        "parameters": [
          {
            "name": "hierarchy_id",
            "description": "ID of the hierarchy to update.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Hierarchy details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HierarchyDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/hierarchies/{hierarchy_id}/validation-profile": {
      "put": {
        "tags": [
          "Hierarchies"
        ],
        "summary": "Update hierarchy validation profile",
        "description": "Use this endpoint to update the validation profile used by the hierarchy with the given ID. \n\nInclude the updated `validation_profile` field in the request body. The following fields can also be updated as part of the request body:\n\n* `comment` — Text comment about the hierarchy. \n\n* `trust_type` — `PUBLIC` or `PRIVATE`. \n\n* `hierarchy_type` — `LIMITED` or `UNLIMITED`. \n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "updateHierarchyValidationProfile",
        "parameters": [
          {
            "name": "hierarchy_id",
            "description": "ID of the hierarchy to update.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateHierarchyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Hierarchy details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HierarchyDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/keypairs": {
      "get": {
        "tags": [
          "Keypairs"
        ],
        "summary": "List keypairs",
        "description": "Use this endpoint to list keypairs in your account. \n\nThe response contains a limit of 20 keypairs by default.\n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n\n`only_signable_keys` is an optional boolean query parameter (default: false). If true, results are limited to keypairs you have access to use for signing.\n",
        "operationId": "listKeypairs",
        "parameters": [
          {
            "name": "only_signable_keys",
            "description": "Whether to limit results to keypairs you have access to use for signing.",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/sortPagingParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "$ref": "#/components/parameters/aliasSearchParam"
          },
          {
            "$ref": "#/components/parameters/keyStatusSearchParam"
          },
          {
            "$ref": "#/components/parameters/keyAlgSearchParam"
          },
          {
            "$ref": "#/components/parameters/keyTypeSearchParam"
          },
          {
            "$ref": "#/components/parameters/keyStorageSearchParam"
          },
          {
            "$ref": "#/components/parameters/createdOnSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "List of keypairs that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "total": {
                      "type": "integer",
                      "description": "Total number of records.",
                      "example": 888
                    },
                    "offset": {
                      "type": "integer",
                      "description": "Page index of current results.",
                      "example": 0
                    },
                    "limit": {
                      "type": "integer",
                      "description": "Limit on the number of records included in the results.",
                      "example": 1
                    },
                    "items": {
                      "type": "array",
                      "description": "Array of keypairs. Each keypair is an object that provides information about a keypair in your account.",
                      "items": {
                        "$ref": "#/components/schemas/KeypairResponse"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Keypairs"
        ],
        "summary": "Create keypair",
        "description": "Use this endpoint to create a keypair.\n\nThe following keypair fields are required in the request body: \n\n  * `alias` — must be unique.\n\n  * `key_alg` — `RSA`, `ECDSA`, or `EdDSA`.\n\n  * `key_storage` — `DISK` or `HSM`. \n\n  * `key_type` — `TEST` or `PRODUCTION`. \n\n  * `alg_properties` — `key_size` for RSA keys, `curve` for ECDSA and EdDSA keys.\n\n  * `status` — `ONLINE` or `OFFLINE`.\n\n  * `expiry_type` - `NO_EXPIRY`(Default), `ON_CERTIFICATE_EXPIRY` or `ON_SPECIFIC_DATE`.\n  \n  * `expire_on` - Date and time(in UTC) for when the keypair should expire.\n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n\n**Note:** This operation requires multifactor authentication—include your client certificate and add the `clientauth` prefix to your endpoint URL (e.g. `https://clientauth.one.digicert.com/signingmanager`).\n",
        "operationId": "generateKeypair",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KeypairGenerateRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Keypair details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KeypairResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "multifactorClientAuthError": {
                    "$ref": "#/components/examples/multifactorClientAuthError"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/keypairs/{keypair_id}": {
      "get": {
        "tags": [
          "Keypairs"
        ],
        "summary": "Get keypair by ID",
        "description": "Use this endpoint to get the details for the keypair with the given ID. \n",
        "operationId": "getKeypair",
        "parameters": [
          {
            "name": "keypair_id",
            "description": "ID of the keypair to get.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Keypair details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KeypairResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Keypairs"
        ],
        "summary": "Update keypair",
        "description": "Use this endpoint to update the details for the keypair with the given ID. \n\nInclude one or more keypair fields to update in the request body. The following fields can be updated:\n\n* `alias` — must be unique.\n\n* `key_status` — `ONLINE` or `OFFLINE`.\n\n* `limit_by_users` — `true` or `false`.\n\n* `users` — include an array of allowed users to limit keypair access to.\n\n* `expiry_type` - `NO_EXPIRY`(Default), `ON_CERTIFICATE_EXPIRY` or `ON_SPECIFIC_DATE`.\n\n* `expire_on` - Date and time(in UTC) for when the keypair should expire.\n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "updateKeyPair",
        "parameters": [
          {
            "name": "keypair_id",
            "description": "ID of the keypair to update.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateKeypairRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Updated keypair details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KeypairResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Keypairs"
        ],
        "summary": "Delete keypair",
        "description": "Use this endpoint to delete the keypair with the given ID. \n\nThe applicable `account_id` must be appended to the endpoint URL as a query parameter.\n\nThis operation requires multifactor authentication — include your client certificate and add the `clientauth` prefix to your endpoint URL (e.g. `https://clientauth.one.digicert.com/signingmanager`).\n\n**Note:** This endpoint only accepts software-based keypair IDs (`key_storage`:`DISK`) for deletion. HSM-based keypair IDs result in a `400 - Keypair delete not allowed` error response. \n",
        "operationId": "deleteKeypair",
        "parameters": [
          {
            "name": "keypair_id",
            "description": "ID of the keypair to delete.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "account_id",
            "description": "ID of the account with the keypair to delete.",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Keypair deleted. No content."
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "deleteHSMKeypairError": {
                    "$ref": "#/components/examples/deleteHSMKeypairError"
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "multifactorClientAuthError": {
                    "$ref": "#/components/examples/multifactorClientAuthError"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/keypairs/{keypair_id}/sign": {
      "post": {
        "tags": [
          "Keypairs"
        ],
        "summary": "Sign hash",
        "description": "Use this endpoint to sign a file hash string using the keypair with the given ID.\n\nThe file `hash` to be signed and signature algorithm (`sig_alg`) to use are required in the request body fields.\n\nThe `params` object is optional in the request body and only used for `RSA PSS` / `ECDSA` signature algorithms.\n\n`account` information is also optional and is only included in the request body if the API token relates to more than one account.\n\n**Note:** This operation requires multi-factor authentication—include your client certificate and add the `clientauth` prefix to your endpoint URL (e.g. `https://clientauth.one.digicert.com/signingmanager`).\n",
        "operationId": "sign",
        "parameters": [
          {
            "name": "keypair_id",
            "description": "ID of the keypair to sign with.",
            "in": "path",
            "required": true,
            "example": "acccc652-4c91-4505-b32b-01b2f5b87d2d",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SigningRequestWithParams"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Signature details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SigningResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "multifactorClientAuthError": {
                    "$ref": "#/components/examples/multifactorClientAuthError"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/keypairs/{keypair_id}/batch-sign": {
      "post": {
        "tags": [
          "Keypairs"
        ],
        "summary": "Batch sign multiple hashes",
        "description": "Use this endpoint to sign multiple file hashes using the keypair with the given ID in a single batch operation.\n\nThe following fields are required in the request body:\n\n* `batch_id` — A unique identifier for this batch signing operation.\n\n* `sig_alg` — The signature algorithm to use for signing all hashes in the batch.\n\n* `hashes` — An array of hash objects, each containing an `id` and `hash` to be signed.\n\nThe params object is optional in the request body, and can only be used for RSA PSS / ECDSA signature algorithms.\n\n`account` information is also optional and is only included in the request body if the API token relates to more than one account.\n\nThis operation requires MFA. Include your client certificate, and add the clientauth prefix to your endpoint URL (e.g. https://clientauth.one.digicert.com/signingmanager).\n",
        "operationId": "batchSign",
        "parameters": [
          {
            "name": "keypair_id",
            "description": "ID of the signing keypair.",
            "in": "path",
            "required": true,
            "example": "acccc652-4c91-4505-b32b-01b2f5b87d2d",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchSigningRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Batch signature details containing signatures for all provided hashes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchSigningResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request; invalid input parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "multifactorClientAuthError": {
                    "$ref": "#/components/examples/multifactorClientAuthError"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/keypairs/{keypair_id}/certificates": {
      "post": {
        "tags": [
          "Keypairs"
        ],
        "summary": "Generate certificate",
        "description": "Use this endpoint to generate a certificate for the keypair with the given ID. \n\nInclude the `certificate_profile` and `alias`, along with the required certificate fields, in the request body.\n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "generateCertificate",
        "parameters": [
          {
            "name": "keypair_id",
            "description": "ID of the keypair to use to generate the certificate.",
            "in": "path",
            "required": true,
            "example": "9edf3d96-f47f-4846-b5bf-5637cd6fd059",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CertificateGenerateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Certificate details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CertificateDetailResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/keypairs/{keypair_id}/suspend": {
      "put": {
        "tags": [
          "Keypairs"
        ],
        "summary": "Suspend keypair",
        "description": "Use this endpoint to suspend the keypair with the given ID. This changes the keypair's `status` to `OFFLINE`.\n\n`account` information can optionally be included in the request body if your API token relates to more than one account.\n\n**Note:** Requires a request body. If account information is not provided, include an empty request body `{}` with your request.\n",
        "operationId": "suspendKeypair",
        "parameters": [
          {
            "name": "keypair_id",
            "description": "ID of the keypair to suspend.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Keypair details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KeypairResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/keypairs/{keypair_id}/unsuspend": {
      "put": {
        "tags": [
          "Keypairs"
        ],
        "summary": "Resume (unsuspend) keypair",
        "description": "Use this endpoint to resume (unsuspend) the keypair with the given ID. This changes the keypair's `status` to `ONLINE`.\n\n`account` information can optionally be included in the request body if your API token relates to more than one account.\n\n**Note:** Requires a request body. If account information is not provided, include an empty request body `{}` with your request.\n",
        "operationId": "unsuspendKeypair",
        "parameters": [
          {
            "name": "keypair_id",
            "description": "ID of the keypair to unsuspend.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Keypair details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KeypairResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/keypairs/{keypair_id}/refresh": {
      "put": {
        "tags": [
          "Keypairs"
        ],
        "operationId": "refreshKeypair",
        "summary": "Refresh dynamic keypair",
        "description": "Use this endpoint to refresh the keypair with the given ID. \n\n**Note:** Only keypairs with `key_modal_type`:`DYNAMIC` can be refreshed. \n",
        "parameters": [
          {
            "name": "keypair_id",
            "description": "ID of the keypair to refresh.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "204": {
            "description": "Keypair refreshed. No content."
          }
        }
      }
    },
    "/api/v1/keypairs/{keypair_id}/access-management": {
      "put": {
        "tags": [
          "Keypairs"
        ],
        "summary": "Update keypair access",
        "description": "Use this endpoint to update the access management details for the keypair with the given ID. \n\nInclude `users` and/or `groups` in the request body to grant keypair access to them.         \n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "updateKeyPairAccessManagement",
        "parameters": [
          {
            "name": "keypair_id",
            "description": "ID of the keypair to update.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAccessManagementRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Updated keypair details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KeypairResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/keypairs/{keypair_id}/generate-csr": {
      "post": {
        "tags": [
          "Keypairs"
        ],
        "summary": "Generate keypair CSR",
        "description": "Use this endpoint to generate a CSR for the keypair with the given ID. \n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "parameters": [
          {
            "name": "keypair_id",
            "description": "ID of the keypair to use to generate the CSR.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CSRGenerateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "CSR details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CSRGenerateResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/keypairs/{keypair_id}/certificates/import": {
      "post": {
        "tags": [
          "Keypairs"
        ],
        "summary": "Import certificate",
        "description": "Use this endpoint to import an existing certificate for the keypair with the given ID. \n\nThe certificate body string (`cert`) is a required field in the request body. The certificate alias (`alias`) and `default_cert` fields are optional.\n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n\n**Note:** The certificate public key must match the keypair ID's private key for the certificate to be associated with the given keypair. This means that the keypair's private key must have been used to generate the certificate. \n",
        "operationId": "importCertificate",
        "parameters": [
          {
            "name": "keypair_id",
            "description": "ID of the keypair to import the certificate for.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CertificateImportRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Keypair details, including the imported certificate.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KeypairResponseWithCertificate"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/keypairs/import": {
      "post": {
        "tags": [
          "Keypairs"
        ],
        "summary": "Import keypair",
        "description": "Use this endpoint to import an existing keypair into your account. \n\nThe following keypair fields are required in the request body: \n\n  * `alias` — must be unique.\n\n  * `key_alg` — `RSA`, `ECDSA`, or `EdDSA`.\n\n  * `private_key` — the keypair's private key string.\n\nImported keypairs have status `OFFLINE` and unlimited access by default. After importing, update the key status and limit access to it as needed.\n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n\n**Note:** This operation requires multi-factor authentication—include your client certificate and add the `clientauth` prefix to your endpoint URL (e.g. `https://clientauth.one.digicert.com/signingmanager`).\n",
        "operationId": "importKeypair",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KeypairImportRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Basic keypair details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KeypairDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "multifactorClientAuthError": {
                    "$ref": "#/components/examples/multifactorClientAuthError"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/keypairs/import-hsm": {
      "post": {
        "tags": [
          "Keypairs"
        ],
        "summary": "Import a keypair that is on the HSM",
        "description": "Use this endpoint to import an existing HSM keypair into your account. \n\nThe following keypair fields are required in the request body: \n\n  * `alias` — must be unique.\n\n  * `key_alg` — `RSA`, `ECDSA`, or `EdDSA`.\n\n  * `hsm_parition_id` - The ID of the HSM partition on which the key resides. The HSM partition needs to be \n  mapped and restricted to the account on CA manager first.\n\nEither of the following two fields can be provided in the request body. If both are given, precedence is \ngiven to the public key.\n\n  * `public_key` — the keypair's public key in base64.\n\n  * `hsm_key_label` - the keypair's label on the HSM.\n\nImported keypairs have status `OFFLINE` and unlimited access by default. The key status and access can be \nspecified to be different in the request.\n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n\n**Note:** This operation requires multi-factor authentication—include your client certificate and add the `clientauth` prefix to your endpoint URL (e.g. `https://clientauth.one.digicert.com/signingmanager`).\n",
        "operationId": "importHsmKeypair",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KeypairHsmImportRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Basic keypair details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KeypairDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "multifactorClientAuthError": {
                    "$ref": "#/components/examples/multifactorClientAuthError"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/keypairs/export": {
      "post": {
        "tags": [
          "Keypairs"
        ],
        "summary": "Request keypair export",
        "description": "Use this endpoint to request the export of the keypair with the given ID. \n\nInclude the `keypair_id`, along with information about the admins to request approval from, in the request body. \n\nAdmin approval can be requested as follows:\n\n* Provide the appropriate admin IDs in the `admin_id` array field.\n\n* Alternatively, include the `all_admins` boolean field (set to `true`) to send the keypair export request to _all_ appropriate admin users. \n\nNotification of the export request is delivered to the admin users via email. \n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n\n**Note:** Only keypairs with `key_modal_type`:`STATIC` can be requested for export. \n",
        "operationId": "requestKeypairExport",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExportKeypairRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Export request created. No content."
          }
        }
      }
    },
    "/api/v1/keypairs/export/{export_request_id}": {
      "get": {
        "tags": [
          "Keypairs"
        ],
        "summary": "Get keypair export request details",
        "description": "Use this endpoint to get the details of the keypair export request with the given ID. \n\nThis operation requires multifactor authentication — include your client certificate and add the `clientauth` prefix to your endpoint URL (e.g. `https://clientauth.one.digicert.com/signingmanager`).\n",
        "operationId": "getExportRequestDetails",
        "parameters": [
          {
            "name": "export_request_id",
            "description": "ID of the keypair export request to get.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Export request details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportKeypairRequestDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "multifactorClientAuthError": {
                    "$ref": "#/components/examples/multifactorClientAuthError"
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Keypairs"
        ],
        "summary": "Approve/Reject keypair export request",
        "description": "Use this endpoint to approve or reject the keypair export request with the given ID. \n\nInclude the `approved` boolean property in the request body, set to `true` to approve the keypair export\nrequest or `false` to reject it.\n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n\nThis operation requires multifactor authentication — include your client certificate and add the `clientauth` prefix to your endpoint URL (e.g. `https://clientauth.one.digicert.com/signingmanager`).\n",
        "operationId": "submitDecision",
        "parameters": [
          {
            "name": "export_request_id",
            "description": "ID of the keypair export request to approve or reject.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExportKeyDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Export decision successful. No content."
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "multifactorClientAuthError": {
                    "$ref": "#/components/examples/multifactorClientAuthError"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/keypairs/export/download/{export_request_id}": {
      "get": {
        "tags": [
          "Keypairs"
        ],
        "summary": "Download exported key",
        "description": "Use this endpoint to download the private key for the approved keypair export request with the given ID. \n\n`account_id` is required, to be appended to the endpoint URL as a query parameter. \n\nThis operation requires multifactor authentication — include your client certificate and add the `clientauth` prefix to your endpoint URL (e.g. `https://clientauth.one.digicert.com/signingmanager`).\n",
        "operationId": "downloadPrivateKey",
        "parameters": [
          {
            "name": "export_request_id",
            "description": "ID of the keypair export request to download the private key for.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "account_id",
            "description": "ID of the account to download the exported private key from.",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Exported keypair details including the private key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportKeyDownloadResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "multifactorClientAuthError": {
                    "$ref": "#/components/examples/multifactorClientAuthError"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/gpg-keypairs": {
      "get": {
        "tags": [
          "GPG keypairs"
        ],
        "summary": "List GPG keypairs",
        "description": "Use this endpoint to list GPG keypairs in your account.   \n\nThe response contains a limit of 20 GPG keypairs by default.\n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n",
        "operationId": "listGPGKeypairs",
        "parameters": [
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/sortPagingParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "$ref": "#/components/parameters/keyTypeSearchParam"
          },
          {
            "$ref": "#/components/parameters/aliasSearchParam"
          },
          {
            "$ref": "#/components/parameters/keyStatusSearchParam"
          },
          {
            "$ref": "#/components/parameters/createdOnSearchParam"
          },
          {
            "$ref": "#/components/parameters/keyStorageSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "List of GPG keypairs that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/PaginationResult"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "description": "Array of GPG keypair listings. Each listing is an object that provides basic information about a GPG keypair in your account.",
                          "items": {
                            "$ref": "#/components/schemas/GPGKeypairListing"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "GPG keypairs"
        ],
        "summary": "Create GPG keypair",
        "description": "Use this endpoint to create a GPG keypair. \n\nThe following GPG keypair fields are required in the request body:\n\n  * `alias` — must be unique.\n\n  * `key_storage` — `DISK` or `HSM`.\n\n  * `key_type` — `TEST` or `PRODUCTION`.\n\n  * `key_alg` — `RSA`, `ECDSA`, or `EdDSA`.\n\n  * `alg_properties` — `key_size` for RSA keys, `curve` for ECDSA and EdDSA keys.\n\n  * `status` — `ONLINE` or `OFFLINE`.\n\n  * `user_id_list` — List of user IDs with access to the GPG keypair. Only required for GPG master keys. \n\n  * `can_sign` — If true, the GPG key being created can be used to sign code. `false` denotes a GPG master key, which is not used for file hash signing. \n  \n  * `expiry_type` - `NO_EXPIRY`(Default) or `ON_SPECIFIC_DATE`.\n  \n  * `expire_on` - Date and time(in UTC) for when the keypair should expire.\n\n  `account` information is optional and is only included in the request body if the API token relates to more than one account.\n\n**Note:** This operation requires multi-factor authentication—include your client certificate and add the `clientauth` prefix to your endpoint URL (e.g. `https://clientauth.one.digicert.com/signingmanager`).\n",
        "operationId": "CreateGPGKeypair",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GPGKeypairGenerateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Keypair details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GPGKeypairResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "multifactorClientAuthError": {
                    "$ref": "#/components/examples/multifactorClientAuthError"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/gpg-keypairs/{gpg_keypair_id}": {
      "get": {
        "tags": [
          "GPG keypairs"
        ],
        "summary": "Get GPG keypair by ID",
        "description": "Use this endpoint to get the details of the GPG keypair with the given ID. \n",
        "operationId": "getGPGKeypairById",
        "parameters": [
          {
            "name": "gpg_keypair_id",
            "description": "ID of the GPG keypair to get.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "GPG keypair details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GPGKeypairResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "GPG keypairs"
        ],
        "summary": "Update GPG keypair",
        "description": "Use this endpoint to update the GPG keypair with the given ID. \n\nInclude only the details to be updated in the request body. GPG keypair attributes not listed in the request body are not updated. \n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "updateGPGKeypairById",
        "parameters": [
          {
            "name": "gpg_keypair_id",
            "description": "ID of the GPG keypair to update.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GPGKeypairUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "GPG keypair details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GPGKeypairResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "GPG keypairs"
        ],
        "summary": "Delete GPG keypair",
        "description": "Use this endpoint to delete the GPG keypair with the given ID. \n",
        "operationId": "deleteGPGKeypairById",
        "parameters": [
          {
            "name": "gpg_keypair_id",
            "description": "ID of the GPG keypair to delete.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "204": {
            "description": "GPG keypair deleted. No content."
          }
        }
      }
    },
    "/api/v1/gpg-keypairs/{gpg_keypair_id}/sign": {
      "post": {
        "tags": [
          "GPG keypairs"
        ],
        "summary": "Sign hash",
        "description": "Use this endpoint to sign a file hash string using the GPG keypair with the given ID.\n\nThe file `hash` to be signed and signature algorithm (`sig_alg`) to use are required in the request body.\n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n\n**Note:** This operation requires multi-factor authentication—include your client certificate and add the `clientauth` prefix to your endpoint URL (e.g. `https://clientauth.one.digicert.com/signingmanager`).\n",
        "operationId": "signGPG",
        "parameters": [
          {
            "name": "gpg_keypair_id",
            "description": "ID of the GPG keypair to sign with.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SigningRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Signature details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SigningResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "multifactorClientAuthError": {
                    "$ref": "#/components/examples/multifactorClientAuthError"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/gpg-keypairs/{gpg_keypair_id}/suspend": {
      "put": {
        "tags": [
          "GPG keypairs"
        ],
        "summary": "Suspend GPG keypair",
        "description": "Use this endpoint to suspend the GPG keypair with the given ID. This changes the GPG keypair's `status` to `OFFLINE`.   \n\n`account` information can optionally be included in the request body if your API token relates to more than one account.\n\n**Note:** Requires a request body. If account information is not provided, include an empty request body `{}` with your request.\n",
        "operationId": "suspendGPGKeypairById",
        "parameters": [
          {
            "name": "gpg_keypair_id",
            "description": "ID of the GPG keypair to suspend.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GPGKeypairSuspendRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "GPG keypair details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GPGKeypairResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/gpg-keypairs/{gpg_keypair_id}/unsuspend": {
      "put": {
        "tags": [
          "GPG keypairs"
        ],
        "summary": "Resume (unsuspend) GPG keypair",
        "description": "Use this endpoint to resume (unsuspend) the GPG keypair with the given ID. This changes the GPG keypair's `status` to `ONLINE`.   \n\n`account` information can optionally be included in the request body if your API token relates to more than one account.\n\n**Note:** Requires a request body. If account information is not provided, include an empty request body `{}` with your request.\n",
        "operationId": "unsuspendGPGKeypairById",
        "parameters": [
          {
            "name": "gpg_keypair_id",
            "description": "ID of the GPG keypair to unsuspend.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GPGKeypairSuspendRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "GPG keypair details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GPGKeypairResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/gpg-keypairs/{gpg_keypair_id}/revoke": {
      "put": {
        "tags": [
          "GPG keypairs"
        ],
        "summary": "Revoke GPG keypair",
        "description": "Use this endpoint to revoke the GPG keypair with the given ID. \n\n`revocation_type` is a required field in the request body. The `reason` for revocation is optional in the request body.\n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "revokeGPGKeypairById",
        "parameters": [
          {
            "name": "gpg_keypair_id",
            "description": "ID of the GPG keypair to revoke.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GPGKeypairRevokeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "GPG keypair details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GPGKeypairResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/gpg-keypairs/{gpg_keypair_id}/access-management": {
      "put": {
        "tags": [
          "GPG keypairs"
        ],
        "summary": "Update GPG keypair access",
        "description": "Use this endpoint to update the access management details for the GPG keypair with the given ID. \n\nInclude `users` and/or `groups` in the request body to grant keypair access to them.\n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "updateGPGKeypairAccess",
        "parameters": [
          {
            "name": "gpg_keypair_id",
            "description": "ID of the GPG keypair to update.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAccessManagementRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated GPG keypair details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GPGKeypairResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/gpg-keypairs/gpg-keyring": {
      "get": {
        "tags": [
          "GPG keypairs"
        ],
        "summary": "Download GPG keyring",
        "description": "Use this endpoint to download a public keyring collection file for the GPG master keys with the given IDs. \n\nAppend the list of GPG master key IDs to the endpoint URL as a query parameter with comma-separated values (e.g. `?id=3fa85f64-5555-6666-b4fd-2c963f66afa6,4gb85f64-3333-4444-b3fc-4d012g44ada3`). \n",
        "operationId": "downloadGPGKeypairKeyring",
        "parameters": [
          {
            "name": "id",
            "description": "Array of comma-separated GPG master key IDs.",
            "in": "query",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "GPG public keyring collection file."
          }
        }
      }
    },
    "/api/v1/gpg-keypairs/inspect-sec-ring": {
      "post": {
        "tags": [
          "GPG keypairs"
        ],
        "operationId": "inspectGPGSecretKeyring",
        "summary": "Inspect GPG secret keyring",
        "description": "Use this endpoint to upload a GPG secret keyring and view details about its master and sub keypairs.\n\nAfter you inspect a GPG secret keyring, you can save valid keypairs to DigiCert ONE and assign them aliases with the [Save GPG keypairs](#/GPG%20keypairs/saveGPGKeypairs) API endpoint.\n\nRequest format:\n\n* In the request header, set the `content-type` to `multipart/form-data`.\n\n* Use the `file` parameter to upload your GPG secret keyring as an .asc or .gpg file.\n\n* Use `password` request parameter to provide the password for your GPG secret keyring.\n\n**Note:** This operation requires multi-factor authentication—include your client certificate and add the `clientauth` prefix to your endpoint URL (e.g. `https://clientauth.one.digicert.com/signingmanager`).\n",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "file",
                  "password"
                ],
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary",
                    "description": "GPG secret keyring, formatted as an .asc or .gpg file."
                  },
                  "password": {
                    "type": "string",
                    "description": "Password for GPG secret keyring.",
                    "example": "Password!1"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Object with GPG secret keyring details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportGPGSecretKeyringResponse"
                },
                "example": {
                  "master_key_pair": {
                    "finger_print": "D9AB9B1DD68F55E13D7FA3734C30A440C7F99999",
                    "can_authenticate": true,
                    "can_sign": true,
                    "can_encrypt": true,
                    "can_certify": true,
                    "key_created_on": "2023-01-09T23:01:02.632Z",
                    "expire_on": "2023-01-09T23:01:02.632Z",
                    "algorithm": "RSA",
                    "key_size": 4096,
                    "key_curve": null,
                    "status": "ONLINE",
                    "invalid_reason_list": [],
                    "user_id_list": [
                      {
                        "user_id": "user01 (Example comment) <user@example.com>",
                        "name": "user01",
                        "comment": "Example comment",
                        "email": "user@example.com",
                        "primary": false
                      }
                    ],
                    "valid_key": true
                  },
                  "sub_key_pair_list": [
                    {
                      "finger_print": "D9AB9B1DD68F55E13D7FA3734C30A440C7F99999",
                      "can_authenticate": true,
                      "can_sign": true,
                      "can_encrypt": true,
                      "can_certify": false,
                      "key_created_on": "2023-01-09T23:01:02.632Z",
                      "expire_on": "2023-01-09T23:01:02.632Z",
                      "algorithm": "RSA",
                      "key_size": 2048,
                      "key_curve": "P256",
                      "status": "ONLINE",
                      "invalid_reason_list": [],
                      "valid_key": true
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/gpg-keypairs/import-sec-ring": {
      "post": {
        "tags": [
          "GPG keypairs"
        ],
        "operationId": "saveGPGKeypairs",
        "summary": "Save GPG keypairs",
        "description": "Use this endpoint to save valid keypairs to DigiCert ONE after you [inspect a GPG secret keyring](#/GPG%20keypairs/inspectGPGSecretKeyring).\n\n**Note:** This operation requires multi-factor authentication—include your client certificate and add the `clientauth` prefix to your endpoint URL (e.g. `https://clientauth.one.digicert.com/signingmanager`).\n",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SaveImportedGPGKeypairsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Keypairs saved. No content."
          }
        }
      }
    },
    "/api/v1/gpg-keypairs/secring/export": {
      "post": {
        "tags": [
          "GPG keypairs"
        ],
        "summary": "Request secret keyring export",
        "description": "Use this endpoint to request the export of the secret keyring for the master keypair with the given ID. The exported secret keyring contains private and public key information for the master key and all subkeys on the keyring.\n\nInclude the `master_keypair_id`, along with information about the admins to request approval from, in the request body. \n\nAdmin approval can be requested as follows:\n\n* Provide the appropriate admin IDs in the `admin_id` array field.\n\n* Alternatively, include the `all_admins` boolean field (set to `true`) to send the keypair export request to _all_ appropriate admin users. \n\nNotification of the export request is delivered to the admin users via email. \n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "requestSecringExport",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExportSecringRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Export request created. No content."
          }
        }
      }
    },
    "/api/v1/gpg-keypairs/secring/export/{export_request_id}": {
      "get": {
        "tags": [
          "GPG keypairs"
        ],
        "summary": "Get secret keyring export request details",
        "description": "Use this endpoint to get the details of the secret keyring export request with the given ID. \n\nThis operation requires multifactor authentication — include your client certificate and add the `clientauth` prefix to your endpoint URL (e.g. `https://clientauth.one.digicert.com/signingmanager`).\n",
        "operationId": "getSecringExportRequestDetails",
        "parameters": [
          {
            "name": "export_request_id",
            "description": "ID of the secret keyring export request to get.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Export request details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportSecringRequestDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "multifactorClientAuthError": {
                    "$ref": "#/components/examples/multifactorClientAuthError"
                  }
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "GPG keypairs"
        ],
        "summary": "Approve/Reject secret keyring export request",
        "description": "Use this endpoint to approve or reject the secret keyring export request with the given ID. \n\nInclude the `approved` boolean property in the request body, set to `true` to approve the keypair export request or `false` to reject it.\n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n\nThis operation requires multifactor authentication — include your client certificate and add the `clientauth` prefix to your endpoint URL (e.g. `https://clientauth.one.digicert.com/signingmanager`).\n",
        "operationId": "submitDecisionSecringExport",
        "parameters": [
          {
            "name": "export_request_id",
            "description": "ID of the secret keyring export request to approve or reject.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExportKeyDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Export decision successful. No content."
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "multifactorClientAuthError": {
                    "$ref": "#/components/examples/multifactorClientAuthError"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/gpg-keypairs/secring/export/{export_request_id}/download": {
      "put": {
        "tags": [
          "GPG keypairs"
        ],
        "summary": "Download exported secret keyring",
        "description": "Use this endpoint to download the secret keyring for the approved secret keyring export request with the given ID. The exported secret keyring contains private and public key information for the master key and all subkeys on the keyring.\n\nThis operation requires multifactor authentication — include your client certificate and add the `clientauth` prefix to your endpoint URL (e.g. `https://clientauth.one.digicert.com/signingmanager`).\n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "downloadSecring",
        "parameters": [
          {
            "name": "export_request_id",
            "description": "ID of the master key export request.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExportSecringDownloadRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "ASCII-armored data for the GPG secret keyring.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportSecringDownloadResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "multifactorClientAuthError": {
                    "$ref": "#/components/examples/multifactorClientAuthError"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/keypair-profiles": {
      "get": {
        "tags": [
          "Keypair profiles"
        ],
        "summary": "List keypair profiles",
        "description": "Use this endpoint to list keypair profiles in your account. \n\nThe response contains a limit of 20 keypair profiles by default.\n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n\n`is_access_policy_restricted` is an optional boolean query parameter (default: false). If true, results are limited to keypair profiles that are restricted by access policy.\n",
        "operationId": "listAllKeypairProfiles",
        "parameters": [
          {
            "name": "is_access_policy_restricted",
            "description": "Whether to limit results to keypair profiles that are restricted by access policy.",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false,
              "example": false
            }
          },
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/sortPagingParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "$ref": "#/components/parameters/keyTypeSearchParam"
          },
          {
            "$ref": "#/components/parameters/nameSearchParam"
          },
          {
            "$ref": "#/components/parameters/keyStatusSearchParam"
          },
          {
            "$ref": "#/components/parameters/createdOnSearchParam"
          },
          {
            "$ref": "#/components/parameters/keyAlgSearchParam"
          },
          {
            "$ref": "#/components/parameters/keyStorageSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "List of keypair profiles that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "total": {
                      "type": "integer",
                      "description": "Total number of records.",
                      "example": 61
                    },
                    "offset": {
                      "type": "integer",
                      "description": "Page index of current results.",
                      "example": 0
                    },
                    "limit": {
                      "type": "integer",
                      "description": "Limit on the number of records included in the results.",
                      "example": 2
                    },
                    "items": {
                      "type": "array",
                      "description": "Array of keypair profiles. Each keypair profile is an object that provides information about a keypair profile in your account.",
                      "items": {
                        "anyOf": [
                          {
                            "$ref": "#/components/schemas/KeyPairProfileListResponseRSA"
                          },
                          {
                            "$ref": "#/components/schemas/KeyPairProfileListResponseECDSAorEdDSA"
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Keypair profiles"
        ],
        "summary": "Create keypair profile",
        "description": "Use this endpoint to create a keypair profile. \n\nThe following fields are required in the request body:\n\n* `key_alg` — The keypair algorithm to apply to all keypairs created using this profile.\n\n* `key_category` — The keypair category to apply to all keypairs created using this profile. \n\n* `key_status` — The keypair status to apply to all keypairs created using this profile.\n\n* `key_storage` — The storage medium to apply to all keypairs created using this profile.\n\n* `name` — The keypair profile name. \n\n* `profile_status` — The keypair profile status. \n\n* `profile_type` — The keypair profile type. \n\n* `scope` — The keypair profile account scope.\n\n* `expiry_type` - `NO_EXPIRY`(Default), `ON_CERTIFICATE_EXPIRY` or `ON_SPECIFIC_DATE`.\n  \n* `expire_on` - Date and time(in UTC) for when the keypair should expire.\n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "create_2",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateKeyPairProfileRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Keypair profile details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KeyPairProfileResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/keypair-profiles/{keypair_profile_id}": {
      "get": {
        "tags": [
          "Keypair profiles"
        ],
        "summary": "Get keypair profile by ID",
        "description": "Use this endpoint to get the details of the keypair profile with the given ID.   \n",
        "operationId": "getProfile",
        "parameters": [
          {
            "name": "keypair_profile_id",
            "description": "ID of keypair profile to get.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Keypair profile details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KeyPairProfileResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Keypair profiles"
        ],
        "summary": "Update keypair profile",
        "description": "Use this endpoint to update the details of the keypair profile with the given ID. \n\nInclude the fields to be updated in the request body.   \n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "update_3",
        "parameters": [
          {
            "name": "keypair_profile_id",
            "description": "ID of keypair profile to update.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateKeyPairProfileRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Keypair profile details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KeyPairProfileResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/keypair-profiles/{keypair_profile_id}/disable": {
      "put": {
        "tags": [
          "Keypair profiles"
        ],
        "summary": "Disable keypair profile",
        "description": "Use this endpoint to disable the keypair profile with the given ID. \n\n`account` information must be included in the request body.   \n",
        "operationId": "disable_1",
        "parameters": [
          {
            "name": "keypair_profile_id",
            "description": "ID of keypair profile to disable.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseRequestRequired"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Keypair profile details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KeyPairProfileResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/keypair-profiles/{keypair_profile_id}/enable": {
      "put": {
        "tags": [
          "Keypair profiles"
        ],
        "summary": "Enable keypair profile",
        "description": "Use this endpoint to enable the keypair profile with the given ID. \n\n`account` information must be included in the request body.         \n",
        "operationId": "enable_1",
        "parameters": [
          {
            "name": "keypair_profile_id",
            "description": "ID of keypair profile to enable.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseRequestRequired"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Keypair profile details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KeyPairProfileResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/key-rotation": {
      "get": {
        "tags": [
          "Key rotation"
        ],
        "summary": "List key rotations",
        "description": "Use this endpoint to list key rotations in your account. \n\nThe response contains a limit of 20 key rotations by default.\n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n",
        "operationId": "getAllKeyRotations",
        "parameters": [
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/sortPagingParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "$ref": "#/components/parameters/nameSearchParam"
          },
          {
            "$ref": "#/components/parameters/statusSearchParam"
          },
          {
            "$ref": "#/components/parameters/createdOnSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "List of key rotations that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/PaginationResult"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "description": "Array of key rotation listings. Each listing is an object that provides basic information about a key rotation in your account.",
                          "items": {
                            "$ref": "#/components/schemas/KeyRotationListing"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Key rotation"
        ],
        "summary": "Create key rotation",
        "description": "Use this endpoint to create a new key rotation. \n\nThe following fields are required in the request body: \n\n* `name` — A unique alias for the key rotation. \n\n* `keypair_ids` — A list of keypair IDs to include in the key rotation. \n\n* `rotation_frequency` — The interval of key rotation. \n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "createKeyRotation",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KeyRotationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Key rotation details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KeyRotationDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/key-rotation/{key_rotation_id}": {
      "get": {
        "tags": [
          "Key rotation"
        ],
        "summary": "Get key rotation by ID",
        "description": "Use this endpoint to get the details of the key rotation with the given ID. \n",
        "operationId": "getKeyRotationById",
        "parameters": [
          {
            "name": "key_rotation_id",
            "description": "ID of the key rotation to get.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Key rotation details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KeyRotationDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Key rotation"
        ],
        "summary": "Update key rotation",
        "description": "Use this endpoint to update the details of the key rotation with the given ID. \n\nThe following fields are required in the request body:\n\n* `name` — Key rotation name. \n\n* `keypair_ids` — IDs of the keypairs used in the key rotation. \n\n* `rotation_frequency` — Key rotation frequency. \n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "update_1",
        "parameters": [
          {
            "name": "key_rotation_id",
            "description": "ID of the key rotation to update.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KeyRotationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Key rotation details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KeyRotationDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/key-rotation/{key_rotation_name}/refresh": {
      "put": {
        "tags": [
          "Key rotation"
        ],
        "operationId": "refreshKeyRotation",
        "summary": "Refresh key rotation",
        "description": "Use this endpoint to refresh the key rotation with the given name. \n",
        "parameters": [
          {
            "name": "key_rotation_name",
            "description": "Name of the key rotation to refresh.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "204": {
            "description": "Key rotation refreshed. No content."
          }
        }
      }
    },
    "/api/v1/release-windows/": {
      "get": {
        "tags": [
          "Release windows"
        ],
        "summary": "List release windows",
        "description": "Use this endpoint to list release windows in your account. The trailing slash in this endpoint is mandatory.\n\nThe response contains a limit of 20 release windows by default.\n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n",
        "operationId": "listReleaseWindows",
        "parameters": [
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/sortPagingParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "$ref": "#/components/parameters/typeSearchParam"
          },
          {
            "$ref": "#/components/parameters/nameSearchParam"
          },
          {
            "$ref": "#/components/parameters/statusSearchParam"
          },
          {
            "$ref": "#/components/parameters/createdOnSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "List of release windows that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/PaginationResult"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "description": "Array of release window records. Each record is an object that provides information about a release window in your account.",
                          "items": {
                            "$ref": "#/components/schemas/ReleaseWindowResponse"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Release windows"
        ],
        "summary": "Create release window",
        "description": "Use this endpoint to create a new release window. The trailing slash in this endpoint is mandatory.\n\nThe following release window fields are always required in the request body:\n\n* `name` — Release window name.\n\n* `status` — Release window status. Allowed values: `APPROVED` or `PENDING`.\n\n* `key_pair_ids` — IDs of the keypairs used in the release window.   \n\n* `start_date` — Release window start date. \n\n* `end_date` — Release window end date. \n\n* `type` — Release window type. Allowed values: `ONLINE`, `OFFLINE`, or `TEST`.\n\n* `key_pair_type` — Keypair type. Allowed values: `STANDARD` or `GPG`.\n\nThe following fields are required under certain conditions:\n\n* `team_id` — Required if teams is enabled for your account.\n\n* `key_pair_with_certificates` — Required set to `false` if keypair type is `GPG`.\n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "createReleaseWindow",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReleaseWindowRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Release window details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReleaseWindowResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/release-windows/{release_window_id}": {
      "get": {
        "tags": [
          "Release windows"
        ],
        "summary": "Get release window by ID",
        "description": "Use this endpoint to get the details for the release window with the given ID.   \n",
        "operationId": "getReleaseWindow",
        "parameters": [
          {
            "name": "release_window_id",
            "description": "ID of the release window to get.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Release window details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReleaseWindowResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/release-windows/{release_window_id}/": {
      "put": {
        "tags": [
          "Release windows"
        ],
        "summary": "Update release window",
        "description": "Use this endpoint to update the details of the release window with the given ID. \n\nThe following release window fields are always required in the request body:\n\n* `name` — Release window name.\n\n* `status` — Release window status. Allowed values: `APPROVED` or `PENDING`.\n\n* `key_pair_ids` — IDs of the keypairs used in the release window.   \n\n* `start_date` — Release window start date. \n\n* `end_date` — Release window end date. \n\n* `type` — Release window type. Allowed values: `ONLINE`, `OFFLINE`, or `TEST`.\n\n* `key_pair_type` — Keypair type. Must match the existing keypair type in the release window. You cannot change the keypair type after a release window is created. Allowed values: `STANDARD` or `GPG`. \n\nThe following fields are required under certain conditions:\n\n* `team_id` — Required if teams is enabled for your account.\n\n* `key_pair_with_certificates` — Required set to `false` if keypair type is `GPG`.\n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "updateReleaseWindow",
        "parameters": [
          {
            "name": "release_window_id",
            "description": "ID of the release window to update.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateReleaseWindowRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Release window details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReleaseWindowResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/release-windows/{release_window_id}/approve": {
      "put": {
        "tags": [
          "Release windows"
        ],
        "summary": "Approve release window",
        "description": "Use this endpoint to approve the pending release window with the given ID. This changes the release window `status` to `APPROVED`. \n\n`account` information can optionally be included in the request body if your API token relates to more than one account.\n\n**Note:** Requires a request body. If account information is not provided, include an empty request body `{}` with your request.\n",
        "operationId": "approveReleaseWindow",
        "parameters": [
          {
            "name": "release_window_id",
            "description": "ID of the pending release window to approve.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Release window details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReleaseWindowResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/release-windows/{release_window_id}/reject": {
      "put": {
        "tags": [
          "Release windows"
        ],
        "summary": "Reject release window",
        "description": "Use this endpoint to reject the pending release window with the given ID. This changes the release window `status` to `REJECTED`.    \n\n`account` information can optionally be included in the request body if your API token relates to more than one account.\n\n**Note:** Requires a request body. If account information is not provided, include an empty request body `{}` with your request.\n",
        "operationId": "rejectReleaseWindow",
        "parameters": [
          {
            "name": "release_window_id",
            "description": "ID of the pending release window to reject.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Release window details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReleaseWindowResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/release-windows/{release_window_id}/approve-signature-limit": {
      "put": {
        "tags": [
          "Release windows"
        ],
        "summary": "Approve signature limit",
        "description": "Use this endpoint to approve the maximum signature limit in the release window with the given ID.\n\n`account` information can optionally be included in the request body if your API token relates to more than one account.\n\n**Note:** Requires a request body. If account information is not provided, include an empty request body `{}` with your request.\n",
        "operationId": "approveReleaseWindowSig",
        "parameters": [
          {
            "name": "release_window_id",
            "description": "ID of the release window to approve the signature limit for.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Release window details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReleaseWindowResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/release-windows/{release_window_id}/reject-signature-limit": {
      "put": {
        "tags": [
          "Release windows"
        ],
        "summary": "Reject signature limit",
        "description": "Use this endpoint to reject the maximum signature limit in the release window with the given ID.\n\n`account` information can optionally be included in the request body if your API token relates to more than one account.\n\n**Note:** Requires a request body. If account information is not provided, include an empty request body `{}` with your request.\n",
        "operationId": "rejectReleaseWindowSig",
        "parameters": [
          {
            "name": "release_window_id",
            "description": "ID of the release window to reject the signature limit for.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Release window details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReleaseWindowResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/release-windows/{release_window_id}/close": {
      "put": {
        "tags": [
          "Release windows"
        ],
        "summary": "Close release window",
        "description": "Use this endpoint to close the release window with the given ID. This changes the release window `status` to `COMPLETED`.\n\n`account` information can optionally be included in the request body if your API token relates to more than one account.\n\n**Note:** Requires a request body. If account information is not provided, include an empty request body `{}` with your request.\n",
        "operationId": "closeReleaseWindow",
        "parameters": [
          {
            "name": "release_window_id",
            "description": "ID of the release window to close.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Release window details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReleaseWindowResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/release-windows/{release_window_id}/baseline": {
      "put": {
        "tags": [
          "Release windows"
        ],
        "summary": "Assign baseline release window",
        "description": "Use this endpoint to assign the release window with the given ID as the baseline for a release window comparison. This changes the release window `status` to `BASELINE`. \n\nInclude the `release_window_comparison_id` field in the request body to identify the release window comparison that should use the given release window as its baseline. \n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "createBaseline",
        "parameters": [
          {
            "name": "release_window_id",
            "description": "ID of the release window to use as the baseline.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaselineReleaseWindowRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Release window details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReleaseWindowResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/release-windows/{release_window_id}/map-resources": {
      "put": {
        "tags": [
          "Release windows"
        ],
        "summary": "map resources (Scans) to Release Window",
        "description": "Use this endpoint to map scans to Release Window.\n",
        "operationId": "mapResourcesToReleaseWindow",
        "parameters": [
          {
            "name": "release_window_id",
            "description": "ID of the release window to update.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MapResourcesToReleaseWindowRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Release window details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReleaseWindowResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/release-windows/{release_window_id}/delete-resources": {
      "delete": {
        "tags": [
          "Release windows"
        ],
        "summary": "Remove resources (Scans) from Release Window",
        "description": "Use this endpoint to remove scans from Release Window.\n",
        "operationId": "deleteResourceFromReleaseWindow",
        "parameters": [
          {
            "name": "release_window_id",
            "description": "ID of the release window to update.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MapResourcesToReleaseWindowRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Release window details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReleaseWindowResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/release-windows/{release_window_id}/consolidate-scan": {
      "delete": {
        "tags": [
          "Release windows"
        ],
        "summary": "Create Consolidated Scan from the Scans mapped to Release Window",
        "description": "Use this endpoint to create consolidated scan. SCA and SBOM Import scans already mapped will get added to the consolidated scan at Fossa.\n",
        "operationId": "createReleaseGroup",
        "parameters": [
          {
            "name": "release_window_id",
            "description": "ID of the release window to update.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateConsolidatedScanRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Release window details."
          },
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConsolidatedScanResponse"
              }
            }
          }
        }
      }
    },
    "/api/v1/release-windows/compare": {
      "get": {
        "tags": [
          "Release window comparison"
        ],
        "summary": "List release window comparisons",
        "description": "Use this endpoint to list release window comparisons for your account. \n\nThe response contains a limit of 20 release window comparisons by default.\n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n",
        "operationId": "listReleaseWindowComparison",
        "parameters": [
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/sortPagingParam"
          },
          {
            "$ref": "#/components/parameters/idSearchParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "$ref": "#/components/parameters/accountNameSearchParam"
          },
          {
            "$ref": "#/components/parameters/createdOnSearchParam"
          },
          {
            "$ref": "#/components/parameters/createdBySearchParam"
          },
          {
            "$ref": "#/components/parameters/modifiedOnSearchParam"
          },
          {
            "$ref": "#/components/parameters/modifiedBySearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Release window comparison list.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/PaginationResult"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "description": "Array of release window comparison records. Each record is an object that provides information about a release window comparison in your account.",
                          "items": {
                            "$ref": "#/components/schemas/ReleaseWindowComparisonDetails"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Release window comparison"
        ],
        "summary": "Create release window comparison",
        "description": "Use this endpoint to create a release window comparison. \n\nIn the request body, populate the `release_window_id` array field with the list of release window IDs to include in the comparison.\n\nThe request body must also include a `name` for the new release window comparison. \n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "compareReleaseWindows",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReleaseWindowCompareRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Release window comparison details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReleaseWindowComparisonDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/release-windows/compare/{release_window_comparison_id}": {
      "get": {
        "tags": [
          "Release window comparison"
        ],
        "summary": "Get release window comparison by ID",
        "description": "Use this endpoint to get the details of the release window comparison with the given ID. \n",
        "operationId": "getReleaseWindowComparison",
        "parameters": [
          {
            "name": "release_window_comparison_id",
            "description": "ID of the release window comparison to get.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Release window comparison details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReleaseWindowComparisonDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/release-windows/compare/{release_window_comparison_id}/download": {
      "get": {
        "tags": [
          "Release window comparison"
        ],
        "summary": "Download release window comparison report",
        "description": "Use this endpoint to download a report of the release window comparison with the given ID in CSV format. \n",
        "operationId": "downloadReport",
        "parameters": [
          {
            "name": "release_window_comparison_id",
            "description": "ID of the release window comparison to download.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Release window comparison report in CSV format."
          }
        }
      }
    },
    "/api/v1/scans": {
      "get": {
        "tags": [
          "Scans"
        ],
        "summary": "List scans",
        "description": "Use this endpoint to list software scans in your account.\n\nRequired permissions: `VIEW_SM_SOFTWARE_SCAN`\n\nIf the authenticated user has access to more than one DigiCert ONE account, you must identify the account you want to search by appending an `account_id` query string to the endpoint URL (for example, `?account_id=f3a6cfb6-246f-4642-8bba-54a6933ac604`).\n\nThe response contains a limit of 20 scans by default.\n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n",
        "operationId": "getAllScans",
        "parameters": [
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/sortPagingParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "List of scans that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/PaginationResult"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "description": "Array of software scan records. Each record is an object that provides information about a software scan in your account.",
                          "items": {
                            "$ref": "#/components/schemas/ScanDetailsBasic"
                          }
                        }
                      }
                    }
                  ]
                },
                "example": {
                  "total": 2,
                  "offset": 0,
                  "limit": 20,
                  "items": [
                    {
                      "id": "fab877f4-313f-48c7-9653-d9042e2435c8",
                      "name": "Example RL scan",
                      "type": "DAST",
                      "result_status": "PASS",
                      "checksum": "1cdab3ee8992d2983afbfa5c8caa28348c40g8g0",
                      "checksum_type": "SHA1",
                      "file_name": "example.exe",
                      "package_version": "1.0.0",
                      "tool_used": "REVERSING_LABS",
                      "software_project_code": "example_project",
                      "software_project_id": "469c5cdf-13d5-4b48-85e5-6b0c128974d1",
                      "account": {
                        "id": "4567896f-4ce8-4d8f-ccec-332bc48df912",
                        "name": "Example Account"
                      },
                      "created_on": "2022-10-13T11:04:29Z",
                      "created_by": {
                        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                        "name": "SSM User",
                        "auth_type": "BASIC"
                      },
                      "modified_on": "2023-04-19T18:20:37Z",
                      "modified_by": {
                        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                        "name": "SSM User",
                        "auth_type": "BASIC"
                      },
                      "team_name": null,
                      "deleted": false
                    },
                    {
                      "id": "049c16b3-ac2f-4f32-8f4a-b2e6857e5492",
                      "name": "Example FOSSA scan",
                      "type": "SCA",
                      "result_status": "PASS",
                      "checksum": "",
                      "checksum_type": "NONE",
                      "file_name": "",
                      "package_version": "1.2.0",
                      "tool_used": "FOSSA",
                      "software_project_code": "example_project",
                      "software_project_id": "469c5cdf-13d5-4b48-85e5-6b0c128974d1",
                      "account": {
                        "id": "4567896f-4ce8-4d8f-ccec-332bc48df912",
                        "name": "Example Account"
                      },
                      "created_on": "2022-10-13T11:04:29Z",
                      "created_by": {
                        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                        "name": "SSM User",
                        "auth_type": "BASIC"
                      },
                      "modified_on": "2023-04-19T18:20:37Z",
                      "modified_by": {
                        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
                        "name": "SSM User",
                        "auth_type": "BASIC"
                      },
                      "team_name": null,
                      "deleted": false
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Scans"
        ],
        "summary": "Delete scans",
        "operationId": "deleteScans",
        "description": "Use this endpoint to delete one or more scans.\n\nRequired permissions: `MANAGE_SM_SOFTWARE_SCAN`\n",
        "parameters": [
          {
            "in": "query",
            "name": "id",
            "required": true,
            "description": "Comma-separated list of IDs for the scans to delete.",
            "schema": {
              "type": "string",
              "example": "c38fe834-eda4-4b83-bca2-0db22ab9b3b0,0f1e2e49-ac67-45a9-9313-c95b675bb717"
            }
          },
          {
            "in": "query",
            "name": "account_id",
            "description": "ID of account the given scans belong to, if your API token relates to more than one account.",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid",
              "example": "4567896f-4ce8-4d8f-ccec-332bc48df912"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Scans deleted. No content."
          }
        }
      }
    },
    "/api/v1/scans/{scan_id}": {
      "get": {
        "tags": [
          "Scans"
        ],
        "summary": "Get scan by ID",
        "description": "Use this endpoint get the details the software scan with the given ID.\n\nRequired permissions: `VIEW_SM_SOFTWARE_SCAN`\n\nIf the authenticated user has access to more than one DigiCert ONE account, you must identify the account you want to search by appending an `account_id` query string to the endpoint URL (for example, `?account_id=f3a6cfb6-246f-4642-8bba-54a6933ac604`).\n",
        "operationId": "getScan",
        "parameters": [
          {
            "in": "path",
            "required": true,
            "name": "scan_id",
            "schema": {
              "type": "string",
              "description": "ID of scan to get.",
              "example": "1c8df1d3-52a9-4209-b78b-d77c01e6acbf",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Scan details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScanDetails"
                },
                "example": {
                  "id": "cb9ee572-a7a8-430e-a8c3-b49a89d6866c",
                  "name": "Example scan",
                  "result_status": "PASS",
                  "checksum": "1cdab3ee8992d2983afbfa5c8caa28348c40g8g0",
                  "checksum_type": "SHA1",
                  "file_name": "example.exe",
                  "package_version": "1.0.0",
                  "tool_used": "REVERSING_LABS",
                  "software_project_code": "example_project",
                  "scan_summary": "{\"duration\":\"00:00:02.472\",\"report\":{\"info\":{\"detections\":{\"Unknown\":{\"No Threats Detected\":1}},...}",
                  "account": {
                    "id": "5de23a9c-5910-4c67-afcb-4832f655996a",
                    "name": "Example Account"
                  },
                  "created_on": "2023-04-19T18:20:37Z",
                  "created_by": {
                    "id": "8cc9da2d-f1fe-4ffb-923d-230dfe48972d",
                    "name": "SSM User",
                    "auth_type": "BASIC"
                  },
                  "modified_on": "2023-04-19T18:20:37Z",
                  "modified_by": {
                    "id": "8cc9da2d-f1fe-4ffb-923d-230dfe48972d",
                    "name": "SSM User",
                    "auth_type": "BASIC"
                  },
                  "scan_report_dto": {
                    "id": "16144711-ba9f-43f6-9fa7-59c438fbcb8d",
                    "scan_id": "ebd0fe98-37d8-4e61-b558-d85e8c7e8b32",
                    "html_report_available": true,
                    "sbom_report_available": true,
                    "sarif_report_available": true
                  },
                  "type": "DAST",
                  "software_project_name": "Test Project",
                  "software_project_status": "OPEN",
                  "software_project_id": "469c5cdf-13d5-4b48-85e5-6b0c128974d1",
                  "team": {
                    "id": "e64928e5-62fb-4b6f-84c9-8f5262ac3670",
                    "name": "team-01"
                  },
                  "deleted": false
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/scans/download-report": {
      "get": {
        "operationId": "downloadScanReport",
        "tags": [
          "Scans"
        ],
        "summary": "Download scan report",
        "description": "Use this endpoint to download a report for the given scan.\n\nIn the request URL, use the `report_type` query parameter to choose the report you want to download:\n\n- HTML: Full risk report in HTML format.\n\n- SBOM: Software bill of materials (SBOM) in CycloneDX specification format.\n\n- SARIF: Static analysis results in Static Analysis Results Interchange Format (SARIF).\n\nThis endpoint returns a compressed ZIP file with the scan report. In the response, the `Content-Type` header is `application/octet-stream`.\n",
        "parameters": [
          {
            "in": "query",
            "required": true,
            "name": "scan_id",
            "description": "Scan ID.",
            "schema": {
              "format": "uuid",
              "example": "52ba1d14-f003-4ebe-b598-bab807c08ad6",
              "type": "string"
            }
          },
          {
            "in": "query",
            "required": true,
            "name": "report_type",
            "description": "Report type. Allowed values:\n- `html`: Downloads full risk report in HTML format.  \n\n- `sbom`: Downloads JSON file with software bill of materials (SBOM) report in CycloneDX specification format.\n\n- `sarif`: Downloads JSON file with static analysis results in Static Analysis Results Interchange Format (SARIF).\n",
            "schema": {
              "example": "52ba1d14-f003-4ebe-b598-bab807c08ad6",
              "type": "string",
              "enum": [
                "html",
                "sbom",
                "sarif"
              ]
            }
          },
          {
            "in": "query",
            "name": "account_id",
            "description": "ID of DigiCert ONE account the scan belongs to. Required if your API token relates to more than one account.\n",
            "schema": {
              "type": "string",
              "example": "8148bb48-b587-4c4d-b65d-da2fd90c8025",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Scan report.",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/scans/fossa/report/download": {
      "get": {
        "operationId": "downloadFossaScanReport",
        "tags": [
          "Scans"
        ],
        "summary": "Download FOSSA scan report",
        "description": "Use this endpoint to download FOSSA report for a given FOSSA scan ID.\n\nThis endpoint returns a file with the scan report. In the response, the `Content-Type` header is `application/octet-stream`.\n",
        "parameters": [
          {
            "in": "query",
            "required": true,
            "name": "scan_id",
            "description": "FOSSA Scan ID.",
            "schema": {
              "format": "uuid",
              "example": "52ba1d14-f003-4ebe-b598-bab807c08ad6",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "account_id",
            "description": "Provide the DigiCert ONE account ID associated with the scan. Required if your API token is tied to more than one account.\n",
            "schema": {
              "type": "string",
              "example": "8148bb48-b587-4c4d-b65d-da2fd90c8025",
              "format": "uuid"
            }
          },
          {
            "in": "query",
            "required": true,
            "name": "report_type",
            "description": "Report type. Allowed values:\n- `LICENSING`: For all the license infromation and issues.  \n\n- `VULNERABILITY`: For all the vulnerabilities.\n\n- `SBOM`: For all the dependencies.\n",
            "schema": {
              "type": "string",
              "enum": [
                "LICENSING",
                "VULNERABILITY",
                "SBOM"
              ]
            }
          },
          {
            "in": "query",
            "required": true,
            "name": "report_format",
            "description": "Report format. Allowed values vary based on report_type parameter.\n",
            "schema": {
              "type": "string",
              "enum": [
                "HTML",
                "MD",
                "CSV",
                "TXT",
                "SPDX",
                "SPDX_JSON",
                "CYCLONEDX_JSON",
                "CYCLONEDX_XML"
              ]
            }
          },
          {
            "in": "query",
            "required": false,
            "name": "include_project_license",
            "description": "Project declared license.",
            "schema": {
              "type": "boolean",
              "example": true
            }
          },
          {
            "in": "query",
            "required": false,
            "name": "include_license_scan",
            "description": "First Party Licenses.",
            "schema": {
              "type": "boolean",
              "example": true
            }
          },
          {
            "in": "query",
            "required": false,
            "name": "include_direct_dependencies",
            "description": "Direct Dependencies.",
            "schema": {
              "type": "boolean",
              "example": true
            }
          },
          {
            "in": "query",
            "required": false,
            "name": "include_deep_dependencies",
            "description": "Transitive Dependencies.",
            "schema": {
              "type": "boolean",
              "example": true
            }
          },
          {
            "in": "query",
            "required": false,
            "name": "include_license_list",
            "description": "Full License List.",
            "schema": {
              "type": "boolean",
              "example": true
            }
          },
          {
            "in": "query",
            "required": false,
            "name": "include_file_matches",
            "description": "License File Matches.",
            "schema": {
              "type": "boolean",
              "example": true
            }
          },
          {
            "in": "query",
            "required": false,
            "name": "include_copyright_list",
            "description": "Copyrights.",
            "schema": {
              "type": "boolean",
              "example": true
            }
          },
          {
            "in": "query",
            "required": false,
            "name": "include_license_headers",
            "description": "License Headers.",
            "schema": {
              "type": "boolean",
              "example": true
            }
          },
          {
            "in": "query",
            "required": false,
            "name": "include_dependency_summary",
            "description": "Dependency Summary.",
            "schema": {
              "type": "boolean",
              "example": true
            }
          },
          {
            "in": "query",
            "required": false,
            "name": "dependency_info_options",
            "description": "Dependency Metadata.",
            "schema": {
              "type": "string",
              "example": null,
              "enum": [
                "Library",
                "Authors",
                "Description",
                "License",
                "CustomTextLicense",
                "FullTextLicense",
                "IssueNotes",
                "DependencyPaths",
                "PackageDownloadUrl",
                "ProjectUrl",
                "Source",
                "OtherLicenses"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "FOSSA scan report.",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/scans/{scan_id}/map-release": {
      "put": {
        "tags": [
          "Release windows"
        ],
        "summary": "map Scan to Release Windows",
        "description": "Use this endpoint to map scan to multiple Release Windows.\n",
        "operationId": "mapScanToReleaseWindows",
        "parameters": [
          {
            "name": "scan_id",
            "description": "ID of the scan to update.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MapScanToReleaseWindowRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Release window details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScanDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/signatures": {
      "get": {
        "tags": [
          "Signatures"
        ],
        "summary": "List signatures",
        "description": "Use this endpoint to list signatures in your account. \n\nThe response contains a limit of 20 signatures by default.\n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n",
        "operationId": "getAllSignatures",
        "parameters": [
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/durationParam"
          },
          {
            "$ref": "#/components/parameters/sortPagingParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "$ref": "#/components/parameters/sigAlgSearchParam"
          },
          {
            "$ref": "#/components/parameters/accountNameSearchParam"
          },
          {
            "$ref": "#/components/parameters/signingStatusSearchParam"
          },
          {
            "$ref": "#/components/parameters/createdOnSearchParam"
          },
          {
            "$ref": "#/components/parameters/startTimestampSearchParam"
          },
          {
            "$ref": "#/components/parameters/endTimestampSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "List of signatures that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "total": {
                      "type": "integer",
                      "description": "Total number of records.",
                      "example": 8938
                    },
                    "offset": {
                      "type": "integer",
                      "description": "Page index of current results.",
                      "example": 0
                    },
                    "limit": {
                      "type": "integer",
                      "description": "Limit on the number of records included in the results.",
                      "example": 1
                    },
                    "items": {
                      "type": "array",
                      "description": "Array of signature records. Each record is an object that provides information about a signature in your account.",
                      "items": {
                        "$ref": "#/components/schemas/SignatureDetails"
                      }
                    },
                    "log_count": {
                      "description": "Total number of signature log events in your account.",
                      "type": "number",
                      "example": 312737
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/signatures": {
      "get": {
        "tags": [
          "Signatures"
        ],
        "summary": "List signatures",
        "description": "Use this endpoint to list signatures in your account. \n\nThe response contains a limit of 20 signatures by default.\n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n",
        "operationId": "getAllSignaturesV2",
        "parameters": [
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/durationParam"
          },
          {
            "$ref": "#/components/parameters/signatureV2SortPagingParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "$ref": "#/components/parameters/signatureTypeSearchParam"
          },
          {
            "$ref": "#/components/parameters/signingStatusSearchParam"
          },
          {
            "$ref": "#/components/parameters/createdBySearchParam"
          },
          {
            "$ref": "#/components/parameters/startTimestampSearchParam"
          },
          {
            "$ref": "#/components/parameters/endTimestampSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "List of signatures that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "total": {
                      "type": "integer",
                      "description": "Total number of records.",
                      "example": 8938
                    },
                    "offset": {
                      "type": "integer",
                      "description": "Page index of current results.",
                      "example": 0
                    },
                    "limit": {
                      "type": "integer",
                      "description": "Limit on the number of records included in the results.",
                      "example": 1
                    },
                    "items": {
                      "type": "array",
                      "description": "Array of signature records. Each record is an object that provides information about a signature in your account.",
                      "items": {
                        "$ref": "#/components/schemas/SignatureV2Details"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/signatures/{signature_id}": {
      "get": {
        "tags": [
          "Signatures"
        ],
        "summary": "Get signature by ID",
        "description": "Use this endpoint to get the details of the signature with the given ID. \n",
        "operationId": "getSignature",
        "parameters": [
          {
            "name": "signature_id",
            "description": "ID of the signature to get.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Signature details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SignatureDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/signatures/log/download-recent": {
      "get": {
        "tags": [
          "Signatures"
        ],
        "summary": "Download most recent signature logs",
        "description": "Use this endpoint to download the most recent signature logs from your account in CSV format. \n\nReturns the most recent signature logs, to a maximum of 10,000. \n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n\n`timezone` is optional, appended to the endpoint URL as a query parameter. Specify the `timezone` using the IANA time zone code (see [https://www.iana.org/time-zones](https://www.iana.org/time-zones)). If no `timezone` is specified, this defaults to UTC.\n",
        "operationId": "download_recent_signature_log",
        "parameters": [
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/sortPagingParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "$ref": "#/components/parameters/accountNameSearchParam"
          },
          {
            "$ref": "#/components/parameters/sigAlgSearchParam"
          },
          {
            "$ref": "#/components/parameters/signingStatusSearchParam"
          },
          {
            "$ref": "#/components/parameters/createdOnSearchParam"
          },
          {
            "name": "timezone",
            "description": "Search for records timestamped in the given timezone.",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Signature logs CSV file."
          }
        }
      }
    },
    "/api/v1/signatures/log/download-non-archived": {
      "get": {
        "tags": [
          "Signatures"
        ],
        "summary": "Download non-archived signature logs",
        "description": "Use this endpoint to download the non-archived signature logs from your account in CSV format. \n\n`timezone` is optional, appended to the endpoint URL as a query parameter. Specify the `timezone` using the IANA time zone code (see [https://www.iana.org/time-zones](https://www.iana.org/time-zones)). If no `timezone` is specified, this defaults to UTC.\n",
        "operationId": "download_non_archived_signature_log",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "name": "timezone",
            "description": "Search for records timestamped in the given timezone.",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Signature logs CSV file."
          }
        }
      }
    },
    "/api/v1/signatures/log/archived-log": {
      "get": {
        "tags": [
          "Signatures"
        ],
        "summary": "List archived signature log files",
        "description": "Use this endpoint to list archived signature log files in your account. \n\nThe response contains a limit of 20 archived signature log files by default.\n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n",
        "operationId": "list_archived_signature_log",
        "parameters": [
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/sortPagingParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "name": "start_timestamp",
            "description": "Starting timestamp range to search for.",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "end_timestamp",
            "description": "Ending timestamp range to search for.",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of archived signature log files that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/PaginationResult"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "description": "Array of archived signature log files. Each record is an object that provides information about a signature log file in your account.",
                          "items": {
                            "$ref": "#/components/schemas/ArchivedLogFile"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/signatures/log/download-archived/{log_file_id}": {
      "get": {
        "tags": [
          "Signatures"
        ],
        "summary": "Download archived signature log file",
        "description": "Use this endpoint to download the archived signature log file with the given ID in CSV format. \n",
        "operationId": "download_archived_signature_log_id",
        "parameters": [
          {
            "name": "log_file_id",
            "description": "ID of the log file to download.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Archived signature log file in CSV format."
          }
        }
      }
    },
    "/api/v1/software-projects": {
      "get": {
        "tags": [
          "Software Projects"
        ],
        "summary": "List software-projects",
        "description": "Use this endpoint to list software projects in your account. \n\nThe response contains a limit of 20 software projects by default.\n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n",
        "operationId": "list",
        "parameters": [
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/sortPagingParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "$ref": "#/components/parameters/createdOnSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "List of software projects that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "total": {
                      "type": "integer",
                      "description": "Total number of records.",
                      "example": 5
                    },
                    "offset": {
                      "type": "integer",
                      "description": "Page index of current results.",
                      "example": 0
                    },
                    "limit": {
                      "type": "integer",
                      "description": "Limit on the number of records included in the results.",
                      "example": 1
                    },
                    "items": {
                      "type": "array",
                      "description": "Array of Software Project. Each Software Project is an object that provides information about a Software Project in your account.",
                      "items": {
                        "$ref": "#/components/schemas/SoftwareProjectEntity"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Software Projects"
        ],
        "summary": "Create Software Project",
        "description": "Use this endpoint to create a software project.\n\n`account` information is also optional and is only included in the request body if the API token relates to more than one account. \n`name` and `code` fields are required.\n`directory`, `documentation`, `resources` are optional fields.\n`team` is required field when team is enabled in account settings\n",
        "operationId": "create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SoftwareProjectCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Object with software project details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SoftwareProjectResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/software-projects/{id}": {
      "get": {
        "tags": [
          "Software Projects"
        ],
        "summary": "Get Software Project by ID",
        "description": "Use this endpoint to get the details of the software project with the given ID.\n",
        "operationId": "get",
        "parameters": [
          {
            "name": "id",
            "description": "ID of the Software Project to get.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Software Project details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SoftwareProjectResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Software Projects"
        ],
        "summary": "Delete Software Project by ID",
        "description": "Use this endpoint to delete Software Project with the given ID.\n",
        "operationId": "delete",
        "parameters": [
          {
            "name": "id",
            "description": "ID of the Software Project to delete. If successful, the returned Software project has a `status` of `DELETED`.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "204": {
            "description": "Software Project deleted. No content."
          }
        }
      },
      "put": {
        "tags": [
          "Software Projects"
        ],
        "summary": "Update Software Project by ID",
        "description": "Use this endpoint to update Software Project with the given ID.\n",
        "operationId": "update",
        "parameters": [
          {
            "name": "id",
            "description": "ID of the Software Project to update.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SoftwareProjectCreateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Software project details. If successful, the returned updated Software project.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SoftwareProjectResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/software-projects/{software_project_id}/close": {
      "put": {
        "tags": [
          "Software Projects"
        ],
        "summary": "De-activate (Close) Software Project by ID",
        "description": "Use this endpoint to disable (close) the Software project with the given ID.\n",
        "operationId": "deactivate",
        "parameters": [
          {
            "name": "software_project_id",
            "description": "ID of the Software project to de-activate (close).",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "2432c889-c2fc-4353-909a-a0ae1705451f"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Software project details. If successful, the returned Software project has a `status` of `CLOSED`.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SoftwareProjectResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/software-projects/{software_project_id}/open": {
      "put": {
        "tags": [
          "Software Projects"
        ],
        "summary": "Activate (Open) Software Project by ID",
        "description": "Use this endpoint to activate (open) the Software project with the given ID.\n",
        "operationId": "activate",
        "parameters": [
          {
            "name": "software_project_id",
            "description": "ID of the Software project to activate (open).",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "2432c889-c2fc-4353-909a-a0ae1705451f"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Software project details. If successful, the returned Software project has a `status` of `OPEN`.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SoftwareProjectResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/software-projects/{software_project_id}/map-resources": {
      "post": {
        "tags": [
          "Software Projects"
        ],
        "summary": "map resources to Software Project by ID",
        "description": "Use this endpoint to map resources to a software project for given ID.\n\n`account` information is also optional and is only included in the request body if the API token relates to more than one account.\nResources allowed to map to Software project are:\n`RELEASE_WINDOW`\n`SCANS`\n",
        "operationId": "mapResourceToSoftwareProject",
        "parameters": [
          {
            "name": "software_project_id",
            "description": "ID of the Software Project to map respources to.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MapSoftwareProjectResourcesRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Software project details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SoftwareProjectResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/software-projects/{software_project_id}/delete-resources": {
      "delete": {
        "tags": [
          "Software Projects"
        ],
        "summary": "Delete mapped respirces to Software Project by ID",
        "description": "Use this endpoint to remove (delete) resources mapped to a software project.\n\n`account` information is also optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "deleteResourceFromSoftwareProject",
        "parameters": [
          {
            "name": "software_project_id",
            "description": "ID of the Software Project to rmove mapped respources from.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MapSoftwareProjectResourcesRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Software project details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SoftwareProjectResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/teams": {
      "get": {
        "tags": [
          "Teams"
        ],
        "summary": "List teams",
        "description": "Use this endpoint to list available teams.\n\nThe response contains a limit of 20 teams by default.\n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n",
        "operationId": "getAllTeams",
        "parameters": [
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/sortPagingParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "$ref": "#/components/parameters/nameSearchParam"
          },
          {
            "$ref": "#/components/parameters/createdOnSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "List of teams that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/PaginationResult"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "description": "Array of teams records. Each record is an object that provides information about a team in your account.",
                          "items": {
                            "$ref": "#/components/schemas/TeamResponse"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Teams"
        ],
        "summary": "Create team",
        "description": "Use this endpoint to create a team.\n\n`expiry_date` and `resources` are optional fields in the request body.\n\n`account` information is also optional and is only included in the request body if the API token relates to more than one account. \n\nAll other request body fields are required.\n",
        "operationId": "createTeam",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TeamRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Object with team details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/teams/{team_id}": {
      "get": {
        "tags": [
          "Teams"
        ],
        "summary": "Get team by ID",
        "description": "Use this endpoint to get the details for the team with the given ID.\n",
        "operationId": "getTeamById",
        "parameters": [
          {
            "in": "path",
            "name": "team_id",
            "description": "ID of the team to get.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Team details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Teams"
        ],
        "summary": "Update team",
        "description": "Use this endpoint to update the details for the team with the given ID.\n\n`expiry_date` and `resources` are optional fields in the request body.\n\n`account` information is also optional and is only included in the request body if the API token relates to more than one account. \n\nAll other request body fields are required.\n",
        "operationId": "updateTeam",
        "parameters": [
          {
            "in": "path",
            "name": "team_id",
            "description": "ID of the team to update.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TeamRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated team details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Teams"
        ],
        "summary": "Delete team",
        "description": "Use this endpoint to delete the team with the given ID.\n",
        "operationId": "deleteTeam",
        "parameters": [
          {
            "in": "path",
            "name": "team_id",
            "description": "ID of the team to delete.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Team deleted. No content."
          }
        }
      }
    },
    "/api/v1/teams/{team_id}/deactivate": {
      "put": {
        "tags": [
          "Teams"
        ],
        "summary": "Deactivate team",
        "description": "Use this endpoint to deactivate the team with the given ID.\n",
        "operationId": "deactivateTeam",
        "parameters": [
          {
            "in": "path",
            "name": "team_id",
            "description": "ID of the team to deactivate.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Team deactivated. No content."
          }
        }
      }
    },
    "/api/v1/teams/{team_id}/activate": {
      "put": {
        "tags": [
          "Teams"
        ],
        "summary": "Activate team",
        "description": "Use this endpoint to activate the team with the given ID.\n",
        "operationId": "activateTeam",
        "parameters": [
          {
            "in": "path",
            "name": "team_id",
            "description": "ID of the team to activate.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Team activated. No content."
          }
        }
      }
    },
    "/api/v1/teams/{team_id}/resources": {
      "get": {
        "tags": [
          "Teams"
        ],
        "summary": "List team resources",
        "description": "Use this endpoint to list resources mapped to the team with the given ID.\n\nTo check if specific resources are mapped to the team, append the `resource_type` as a query parameter (e.g. `?resource_type=KEYPAIR`).\n",
        "operationId": "listTeamResources",
        "parameters": [
          {
            "in": "path",
            "name": "team_id",
            "description": "Team ID to check for resource mappings.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "in": "query",
            "name": "resource_type",
            "description": "Resource type to check.",
            "schema": {
              "$ref": "#/components/schemas/ListTeamResourceType"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Array of current resource mappings for the team.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TeamResourceMapping"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/teams/{team_id}/map-resources": {
      "post": {
        "tags": [
          "Teams"
        ],
        "summary": "Map resources to a team",
        "description": "Use this endpoint to map resources to the team with the given ID.\n\n `account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "mapTeamResources",
        "parameters": [
          {
            "in": "path",
            "name": "team_id",
            "description": "Team ID to map resources to.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TeamResourceMappingRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resources mapped. No content."
          }
        }
      }
    },
    "/api/v1/teams/available-resources": {
      "get": {
        "tags": [
          "Teams"
        ],
        "summary": "List available resources",
        "description": "Use this endpoint to list available resources that can be mapped to teams.\n\n`resource_type` is required, to be appended to the endpoint URL as a query parameter (e.g. `?resource_type= KEYPAIR`).\n",
        "operationId": "listAvailableResources",
        "parameters": [
          {
            "in": "query",
            "name": "resource_type",
            "description": "Resource type to check.",
            "schema": {
              "$ref": "#/components/schemas/TeamResourceTypeForAvailableResource"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Array of available resource mappings.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TeamResourceMapping"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/multi-person-approval": {
      "get": {
        "tags": [
          "Teams multi-person approvals"
        ],
        "summary": "List multi-person approval requests",
        "description": "Use this endpoint to list current multi-person approval requests in your account.\n\nThe response contains a limit of 20 approval requests by default.\n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n",
        "operationId": "getAllTeamsMultiPersonApprovals",
        "parameters": [
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/sortPagingParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "$ref": "#/components/parameters/idSearchParam"
          },
          {
            "$ref": "#/components/parameters/statusSearchParam"
          },
          {
            "name": "type_of_approval",
            "in": "query",
            "description": "Limit results to the given approval request type.",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "KEYPAIR_EXPORT",
                "CERTIFICATE_REVOKE",
                "KEYPAIR_DELETE",
                "OFFLINE_RELEASE_WINDOW",
                "GPG_KEYRING_EXPORT",
                "GPG_MASTER_KEYPAIR_DELETE",
                "GPG_SUB_KEYPAIR_DELETE"
              ],
              "example": "KEYPAIR_EXPORT"
            }
          },
          {
            "name": "created_by",
            "in": "query",
            "description": "Limit results to approval requests created by the user with the given ID.",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "resource_id",
            "in": "query",
            "description": "Limit results to approval requests involving the resource with the given ID. Can be a keypair, certificate, or release window ID.",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of multi-person approval requests that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/PaginationResult"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "description": "Array of multi-person approval request records. Each record is an object that provides information about a multi-person approval request in your account.",
                          "items": {
                            "$ref": "#/components/schemas/MultiPersonApprovalResponse"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/multi-person-approval/request": {
      "post": {
        "tags": [
          "Teams multi-person approvals"
        ],
        "summary": "Create multi-person approval request",
        "description": "Use this endpoint to create a multi-person approval request for a team. This endpoint can create approval requests for these actions:\n\n- Revoke a certificate.\n\n- Create an offline release window.\n\n- Export a secret keyring.\n\n- Export a standard keypair.\n\n- Delete a standard keypair.\n\nProvide the relevant `resource_id`, `approval_type`, and `team_id` in the request body.\n\nUse the `approval_specific_data` request body field to add data specific to the current approval type. This field is required in `CERTIFICATE_REVOKE` requests. For other approval request types, it is optional.\n\n`account` information is optional and is only included in the request body if the API token relates to more than one account. \n",
        "operationId": "createTeamsMultiPersonApproval",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MultiPersonApprovalRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Multi-person approval request created. No content."
          }
        }
      }
    },
    "/api/v1/multi-person-approval/request/{approval_request_id}": {
      "get": {
        "tags": [
          "Teams multi-person approvals"
        ],
        "summary": "Get multi-person approval request by ID",
        "description": "Use this endpoint to get the details for the multi-person approval request with the given ID.\n",
        "operationId": "getTeamsMultiPersonApprovalById",
        "parameters": [
          {
            "in": "path",
            "name": "approval_request_id",
            "description": "ID of the multi-person approval request to get.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Multi-person approval request details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MultiPersonApprovalResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Teams multi-person approvals"
        ],
        "summary": "Update multi-person approval request",
        "description": "Use this endpoint to update the details and record an approval decision for the multi-person approval request with the given ID.\n\nInclude the details to update in the request body. The `approval_status_type` can be either `APPROVED` or `REJECTED`.\n\n`account` information is optional and is only included in the request body if the API token relates to more than one account. \n",
        "operationId": "updateTeamsMultiPersonApproval",
        "parameters": [
          {
            "in": "path",
            "name": "approval_request_id",
            "description": "ID of the multi-person approval request to update.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMultiPersonApprovalRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Multi-person approval request updated. No content."
          }
        }
      }
    },
    "/api/v1/multi-person-approval/action/{approval_request_id}": {
      "put": {
        "tags": [
          "Teams multi-person approvals"
        ],
        "summary": "Perform action for multi-person approval request",
        "description": "Use this endpoint to action the multi-person approval request with the given ID after it has been approved.\n\nProvide the relevant `resource_id`, `action_type`, and `team_id` in the request body.\n\n`account` information is optional and is only included in the request body if the API token relates to more than one account. \n\n**Note:** Currently this operation only applies to `KEYPAIR_EXPORT` and `GPG_KEYRING_EXPORT` requests. Once the request has been approved, use this endpoint to perform the `KEYPAIR_EXPORT` or `GPG_KEYRING_EXPORT` action.\n",
        "operationId": "actionTeamsMultiPersonApproval",
        "parameters": [
          {
            "in": "path",
            "name": "approval_request_id",
            "description": "ID of the multi-person approval request to action.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActionMultiPersonApprovalRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Action performed for multi-person approval request.",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ExportStandardKeyDownloadResponse"
                    },
                    {
                      "$ref": "#/components/schemas/ExportSecringDownloadResponse"
                    }
                  ]
                },
                "examples": {
                  "KEYPAIR_EXPORT": {
                    "description": "JSON response for `KEYPAIR_EXPORT` action type.",
                    "summary": "KEYPAIR_EXPORT",
                    "value": {
                      "private_key_file": "<base64-encoded private keypair file>",
                      "password": "<password>",
                      "file_name": "Keypair001.pem"
                    }
                  },
                  "GPG_KEYRING_EXPORT": {
                    "description": "JSON response for `GPG_KEYRING_EXPORT` action type.",
                    "summary": "GPG_KEYRING_EXPORT",
                    "value": {
                      "armored_secret_key_ring": "-----BEGIN PGP PRIVATE KEY BLOCK----(Base64-encoded secret keyring)-----END PGP PRIVATE KEY BLOCK-----\r\n",
                      "password": "<password>",
                      "file_name": "MasterKey001SecretKeyring.asc"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/users/me/teams": {
      "get": {
        "tags": [
          "User teams membership"
        ],
        "summary": "List teams for logged-in user",
        "description": "Use this endpoint to list the teams the logged-in user belongs to.\n\nOptional `resource_type` and `resource_id` query parameters can be used to narrow the results to teams with matching resources.\n",
        "operationId": "getUserTeams",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "in": "query",
            "name": "resource_id",
            "description": "Resource ID to check.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "in": "query",
            "name": "resource_type",
            "description": "Resource type to check.",
            "schema": {
              "$ref": "#/components/schemas/TeamResourceType"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Array of teams that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TeamResponse"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/users/me/teams/resources": {
      "get": {
        "tags": [
          "User teams membership"
        ],
        "summary": "List teams resources for logged-in user",
        "description": "Use this endpoint to list resources mapped to the teams the logged-in user belongs to.\n\nAn optional `team_id` query parameter can be used to search for resources in specific teams.\n\nOptional `resource_type` and `resource_id` query parameters can be used to search for specific resource mappings.\n",
        "operationId": "getUserResources",
        "parameters": [
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "in": "query",
            "name": "team_id",
            "description": "Team ID to search for resources in.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "in": "query",
            "name": "resource_id",
            "description": "Resource ID to search for.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "in": "query",
            "name": "resource_type",
            "description": "Resource type to search for.",
            "schema": {
              "$ref": "#/components/schemas/TeamResourceType"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Array of resource mappings that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TeamResourceMapping"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/users/me/teams/{team_id}": {
      "get": {
        "tags": [
          "User teams membership"
        ],
        "summary": "Get team by ID for logged-in user",
        "description": "Use this endpoint to get the details for the team with the given ID only if the logged-in user belongs to it.\n",
        "operationId": "getUserTeamDetails",
        "parameters": [
          {
            "in": "path",
            "name": "team_id",
            "description": "ID of the team to get.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Team details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/users/me/teams/{team_id}/resources": {
      "get": {
        "tags": [
          "User teams membership"
        ],
        "summary": "Get resources by team ID for logged-in user",
        "description": "Use this endpoint to list resources mapped to the team with the given ID only if the logged-in user belongs to it.\n\nAn optional `resource_type` query parameter can be used to search for specific resource mappings.\n",
        "operationId": "getUserResourceDetails",
        "parameters": [
          {
            "in": "path",
            "name": "team_id",
            "description": "ID of the team to get.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "in": "query",
            "name": "resource_type",
            "description": "Resource type to search for.",
            "schema": {
              "$ref": "#/components/schemas/TeamResourceType"
            }
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "Array of resource mappings that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TeamResourceMapping"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user-active-account": {
      "get": {
        "tags": [
          "User active account"
        ],
        "summary": "Get active account for logged-in user",
        "description": "Use this endpoint to get the active account for the logged-in user. \n",
        "operationId": "getUserActiveAccount",
        "responses": {
          "200": {
            "description": "Object with active account details for the user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserActiveAccountResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "User active account"
        ],
        "summary": "Update active account for logged-in user",
        "description": "Use this endpoint to update the active account for the logged-in user. \n\nInclude the new `account` information in the request body.         \n",
        "operationId": "updateUserActiveAccount",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BaseRequestRequired"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Object with active account details for the user.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserActiveAccountResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "deleteHSMKeypairError": {
                    "$ref": "#/components/examples/userActiveAccountError"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user-groups": {
      "get": {
        "tags": [
          "User groups"
        ],
        "summary": "List user groups",
        "description": "Use this endpoint to list user groups in your account. \n\nThe response contains a limit of 20 user groups by default.\n\nResults can optionally be filtered using search and paging parameters appended to the endpoint URL as a query string (e.g. `?limit=5&offset=3`).\n",
        "operationId": "listUserGroups",
        "parameters": [
          {
            "$ref": "#/components/parameters/limitPagingParam"
          },
          {
            "$ref": "#/components/parameters/offsetPagingParam"
          },
          {
            "$ref": "#/components/parameters/sortPagingParam"
          },
          {
            "$ref": "#/components/parameters/accountIdSearchParam"
          },
          {
            "$ref": "#/components/parameters/typeSearchParam"
          },
          {
            "$ref": "#/components/parameters/nameSearchParam"
          },
          {
            "$ref": "#/components/parameters/statusSearchParam"
          },
          {
            "$ref": "#/components/parameters/createdOnSearchParam"
          }
        ],
        "responses": {
          "200": {
            "description": "List of user groups that meet the search criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "allOf": [
                    {
                      "$ref": "#/components/schemas/PaginationResult"
                    },
                    {
                      "type": "object",
                      "properties": {
                        "items": {
                          "type": "array",
                          "description": "Array of user group listings. Each listing is an object that provides basic information about a user group in your account.",
                          "items": {
                            "$ref": "#/components/schemas/UserGroupListing"
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "User groups"
        ],
        "summary": "Create user group",
        "description": "Use this endpoint to create a user group in your account. \n\nInclude a unique `name` for the user group in the request body. Optionally include an array of `users` to be included in the new group. \n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "create_1",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserGroupRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "User group details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserGroupDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/user-groups/{user_group_id}": {
      "get": {
        "tags": [
          "User groups"
        ],
        "summary": "Get user group by ID",
        "description": "Use this endpoint to get the details of the user group with the given ID. \n",
        "operationId": "getUserGroup",
        "parameters": [
          {
            "name": "user_group_id",
            "description": "ID of the user group to get.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "target_account_id",
            "description": "Search for records in the account with the given ID if your API token relates to more than one account.",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid",
              "example": "4567896f-4ce8-4d8f-ccec-332bc48df912"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "User group details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserGroupDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "User groups"
        ],
        "summary": "Update user group",
        "description": "Use this endpoint to update the user group with the given ID. \n\nInclude the user group `name` in the request body. Optionally include an array of `users` to be included in the group. \n\n`account` information is optional and is only included in the request body if the API token relates to more than one account.\n",
        "operationId": "update_2",
        "parameters": [
          {
            "name": "user_group_id",
            "description": "ID of the user group to update.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserGroupRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "User group details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserGroupDetails"
                }
              }
            }
          }
        }
      }
    }
  },
  "security": [
    {
      "ApiKeyAuth": []
    }
  ],
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key"
      }
    },
    "parameters": {
      "limitPagingParam": {
        "name": "limit",
        "in": "query",
        "description": "Limit on the number of records to include in the results.",
        "required": false,
        "schema": {
          "type": "integer",
          "default": 20,
          "example": 5
        }
      },
      "offsetPagingParam": {
        "name": "offset",
        "in": "query",
        "description": "Page index of results to include, based on the limit. For example, `?limit=5&offset=3` returns record numbers 16-20.",
        "required": false,
        "schema": {
          "type": "integer",
          "default": 0,
          "example": 3
        }
      },
      "durationParam": {
        "name": "duration",
        "in": "query",
        "description": "Duration in minutes to filter logs.  \nIf set to 1 or greater, only records from the last `duration` minutes are returned, overriding any start or end timestamp filters.  \nIf not set or set to 0, the start and end timestamp filters (if provided) are used instead.  \nThis parameter allows quick retrieval of recent logs without specifying explicit time ranges.\n",
        "required": false,
        "schema": {
          "type": "integer",
          "default": 0,
          "example": 5
        }
      },
      "sortPagingParam": {
        "name": "sort",
        "in": "query",
        "description": "Sort results by the given property.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "name"
        }
      },
      "signatureV2SortPagingParam": {
        "name": "sort",
        "in": "query",
        "description": "Sort results by the given property. Signatures list can only be sorted by the field createdOn.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "createdOn"
        }
      },
      "idSearchParam": {
        "name": "id",
        "in": "query",
        "description": "Limit results to records with an ID that contains the given string.",
        "required": false,
        "schema": {
          "type": "string",
          "format": "uuid",
          "example": "12345c6f-4ce8-4d8f-bbdb-194bc48df476"
        }
      },
      "nameSearchParam": {
        "name": "name",
        "in": "query",
        "description": "Limit results to records with a name that contains the given string.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "Code signing"
        }
      },
      "aliasSearchParam": {
        "name": "alias",
        "in": "query",
        "description": "Limit results to records with a name that contains the given alias.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "keypair1"
        }
      },
      "accountIdSearchParam": {
        "name": "account_id",
        "description": "Search for records in the account with the given ID if your API token relates to more than one account.",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "format": "uuid",
          "example": "4567896f-4ce8-4d8f-ccec-332bc48df912"
        }
      },
      "accountNameSearchParam": {
        "name": "name",
        "description": "Search for records in the account with the given name if your API token relates to more than one account.",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string",
          "example": "Test Account 1"
        }
      },
      "statusSearchParam": {
        "name": "status",
        "in": "query",
        "description": "Limit results to records with the given status.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "ACTIVE"
        }
      },
      "keyStatusSearchParam": {
        "name": "key_status",
        "in": "query",
        "description": "Limit results to records with the given key status.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "ONLINE"
        }
      },
      "signingStatusSearchParam": {
        "name": "signing_status",
        "in": "query",
        "description": "Limit results to records with the given signing status.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "SUCCESS"
        }
      },
      "signatureTypeSearchParam": {
        "name": "signature_type",
        "in": "query",
        "description": "Limit results to records with the given signature type.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "PRODUCTION"
        }
      },
      "auditLogStatusSearchParam": {
        "name": "status",
        "in": "query",
        "description": "Limit results to records with the given audit Log status.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "SUCCESS"
        }
      },
      "typeSearchParam": {
        "name": "type",
        "in": "query",
        "description": "Limit results to records of the given type.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "CUSTOM"
        }
      },
      "hierarchyTypeSearchParam": {
        "name": "hierarchy_type",
        "in": "query",
        "description": "Limit results to records of the given type.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "UNLIMITED"
        }
      },
      "hierarchyStatusSearchParam": {
        "name": "hierarchy_status",
        "in": "query",
        "description": "Limit results to records of the given status.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "APPROVED"
        }
      },
      "resourceTypeSearchParam": {
        "name": "resource_type",
        "in": "query",
        "description": "Limit results to records of the given resource type.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "KEYPAIR"
        }
      },
      "sigAlgSearchParam": {
        "name": "sig_alg",
        "in": "query",
        "description": "Limit results to records of the given sig Algorithm.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "SHA256WithRSA"
        }
      },
      "keyAlgSearchParam": {
        "name": "key_alg",
        "in": "query",
        "description": "Limit results to records with the given key alg.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "RSA"
        }
      },
      "keyTypeSearchParam": {
        "name": "key_type",
        "in": "query",
        "description": "Limit results to records with the given key type.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "PRODUCTION"
        }
      },
      "keyStorageSearchParam": {
        "name": "key_storage",
        "in": "query",
        "description": "Limit results to records with the given key storage.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "HSM"
        }
      },
      "enrollmentMethodSearchParam": {
        "name": "enrollment_method",
        "in": "query",
        "description": "Limit results to records with the given enrollment method.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "CM_GENERATE"
        }
      },
      "templateSearchParam": {
        "name": "template",
        "in": "query",
        "description": "Limit results to records with the given template category.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "PRODUCTION"
        }
      },
      "createdOnSearchParam": {
        "name": "created_on",
        "in": "query",
        "description": "Limit results to records created on the given date.",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/Date"
        }
      },
      "createdBySearchParam": {
        "name": "created_by",
        "in": "query",
        "description": "Limit results to records created by the user with the given ID.",
        "required": false,
        "schema": {
          "type": "string",
          "format": "uuid",
          "example": "9123245d-45e9-9d9f-ccec-919bc48df322"
        }
      },
      "modifiedOnSearchParam": {
        "name": "modified_on",
        "in": "query",
        "description": "Limit results to records last modified on the given date.",
        "required": false,
        "schema": {
          "$ref": "#/components/schemas/Date"
        }
      },
      "modifiedBySearchParam": {
        "name": "modified_by",
        "in": "query",
        "description": "Limit results to records last modified by the user with the given ID.",
        "required": false,
        "schema": {
          "type": "string",
          "format": "uuid",
          "example": "8080845d-12e1-8d8f-ddef-545cd32df535"
        }
      },
      "keypairAliasSearchParam": {
        "name": "keyPair_alias",
        "in": "query",
        "description": "Limit results to records by the Keypair alias.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "KeypairAlias1"
        }
      },
      "releaseWindowNameSearchParam": {
        "name": "release_window_name",
        "in": "query",
        "description": "Limit results to records by the Release window name.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "ReleaseWindow1"
        }
      },
      "startTimestampSearchParam": {
        "name": "start_timestamp",
        "in": "query",
        "description": "Starting timestamp range to search for.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "21-Dec-2022%2000:00:00"
        }
      },
      "endTimestampSearchParam": {
        "name": "end_timestamp",
        "in": "query",
        "description": "Ending timestamp range to search for.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "23-Dec-2023%2023:59:59"
        }
      }
    },
    "examples": {
      "deleteHSMKeypairError": {
        "summary": "Error — attempt to delete HSM keypair",
        "value": {
          "error": {
            "status": "Keypair delete not allowed",
            "message": "Keypair delete not allowed"
          }
        }
      },
      "multifactorClientAuthError": {
        "summary": "Multi-factor client authentication error",
        "value": {
          "error": {
            "status": "access_denied",
            "message": "User is not multi-factor authenticated. Missing Client Authentication Certificate. As per compliance rules, user needs to be authenticated using multi-factor for performing operation."
          }
        }
      },
      "userActiveAccountError": {
        "summary": "User active account access error",
        "value": {
          "error": {
            "status": "invalid_input_field",
            "message": "User 99fddf38-742e-4794-8e47-31310056b150 does not have access to account f577d776-ff1f-4948-881c-5d1a33a2be6f."
          }
        }
      }
    },
    "schemas": {
      "PaginationResult": {
        "type": "object",
        "properties": {
          "total": {
            "type": "integer",
            "description": "Total number of records found.",
            "example": 28
          },
          "offset": {
            "type": "integer",
            "description": "Page index of current results.",
            "example": 0
          },
          "limit": {
            "type": "integer",
            "description": "Limit on the number of records included in the results.",
            "example": 1
          }
        }
      },
      "GPGKeypairListing": {
        "type": "object",
        "properties": {
          "id": {
            "description": "GPG keypair ID.",
            "type": "string",
            "format": "uuid"
          },
          "alias": {
            "description": "GPG keypair alias (nickname).",
            "type": "string",
            "example": "my-gpg-keypair-1"
          },
          "user_id_list": {
            "description": "For GPG master keys, array of users who can access the keypair.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserIdList"
            }
          },
          "fingerprint": {
            "description": "GPG keypair fingerprint.",
            "type": "string",
            "format": "binary",
            "example": "D9AB9B1DD68F55E13D7FA3734C30A440C7F99999"
          },
          "keygrip": {
            "description": "GPG keypair keygrip.",
            "type": "string",
            "format": "binary",
            "example": "5555555ff5FAF49F86E694188884B46DBDF55F55"
          },
          "parent_gpg_keypair_id": {
            "description": "For subkeys, displays the master key ID. For master keys, this value is null.",
            "type": "string",
            "format": "uuid"
          },
          "key_alg": {
            "description": "GPG keypair algorithm.",
            "type": "string",
            "enum": [
              "RSA",
              "ECDSA",
              "EdDSA"
            ]
          },
          "key_size": {
            "description": "RSA key size, in bits. Depends on `key_alg` — ECDSA and EdDSA keys have no `key_size` parameter.",
            "type": "number",
            "enum": [
              2048,
              3072,
              4096
            ],
            "example": 3072
          },
          "curve": {
            "description": "ECDSA or EdDSA curve type, depending on `key_alg`. RSA keys have no `curve` parameter.",
            "type": "string",
            "enum": [
              "P256",
              "P-256",
              "p256",
              "prime256v1",
              "secp256r1",
              "P384",
              "P-384",
              "p384",
              "secp384r1",
              "P521",
              "P-521",
              "p521",
              "secp521r1",
              "Ed25519"
            ],
            "example": null
          },
          "key_status": {
            "description": "GPG keypair status.",
            "type": "string",
            "enum": [
              "ONLINE",
              "OFFLINE",
              "DELETED",
              "EXPIRED",
              "REVOKED"
            ]
          },
          "key_type": {
            "description": "GPG keypair type.",
            "type": "string",
            "enum": [
              "PRODUCTION",
              "TEST"
            ]
          },
          "key_storage": {
            "description": "GPG keypair storage location.",
            "type": "string",
            "enum": [
              "DISK",
              "HSM"
            ]
          },
          "limit_access": {
            "description": "Whether to limit access to the GPG keypair.",
            "type": "boolean",
            "example": true
          },
          "can_certify": {
            "description": "Whether the GPG keypair can be used for certifying.",
            "type": "boolean",
            "example": true
          },
          "can_sign": {
            "description": "Whether the GPG keypair can be used to sign code. `false` denotes a GPG master key, which is not used for file hash signing.",
            "type": "boolean",
            "example": true
          }
        }
      },
      "GPGKeypairListingDetails": {
        "type": "object",
        "properties": {
          "public_key": {
            "description": "The Base64-encoded public key.",
            "type": "string",
            "format": "byte",
            "example": "-----BEGIN PGP PUBLIC KEY BLOCK-----...(Base64-encoded public key)......-----END PGP PUBLIC KEY BLOCK-----\n"
          },
          "revocation_reason": {
            "description": "GPG keypair revocation reason, if applicable. Null if not revoked.",
            "type": "string",
            "enum": [
              "KEY_COMPROMISE",
              "AFFILIATION_CHANGED",
              "SUPERSEDED",
              "CESSATION_OF_OPERATION",
              "PRIVILEGE_WITHDRAWN",
              "AA_COMPROMISE"
            ],
            "example": null
          },
          "revocation_type": {
            "description": "GPG keypair revocation type, if applicable. Null if not revoked.",
            "type": "string",
            "enum": [
              "KEY_COMPROMISED",
              "KEY_RETIRED",
              "KEY_SUPERSEDED",
              "NO_REASON",
              "USER_NO_LONGER_VALID"
            ],
            "example": null
          },
          "revoked_on": {
            "description": "GPG keypair revocation date, if applicable. Null if not revoked.",
            "type": "string",
            "format": "date-time",
            "example": null
          },
          "revoked_by": {
            "description": "ID of user who revoked the GPG keypair, if applicable. Null if not revoked.",
            "type": "string",
            "format": "uuid",
            "example": null
          },
          "account": {
            "$ref": "#/components/schemas/AccountIdAndName"
          },
          "created_by_user": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "modified_by_user": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "created_on": {
            "description": "Date and time GPG keypair was created.",
            "type": "string",
            "format": "date-time"
          },
          "modified_on": {
            "description": "Date and time GPG keypair was modified.",
            "type": "string",
            "format": "date-time"
          },
          "users": {
            "description": "Array of users who can access the GPG keypair.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserDetail"
            }
          },
          "user_groups": {
            "description": "Array of user groups who can access the GPG keypair.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserGroupBasic"
            }
          },
          "team": {
            "$ref": "#/components/schemas/TeamIdAndName"
          },
          "expiry_type": {
            "description": "Expiry type for the keypair.",
            "type": "string",
            "enum": [
              "NO_EXPIRY",
              "ON_SPECIFIC_DATE"
            ]
          },
          "expire_on": {
            "description": "Expiry date & time(in UTC) for the keypair.",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "GPGKeypairResponse": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/GPGKeypairListing"
          },
          {
            "$ref": "#/components/schemas/GPGKeypairListingDetails"
          }
        ]
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "status": {
                "description": "Error status.",
                "type": "string"
              },
              "message": {
                "description": "Error message.",
                "type": "string"
              }
            },
            "required": [
              "status",
              "message"
            ]
          }
        }
      },
      "ErrorResponseMethodNotAllowed": {
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "status": {
                "description": "Error status.",
                "type": "string",
                "example": "METHOD_NOT_ALLOWED"
              },
              "message": {
                "description": "Error message.",
                "type": "string",
                "example": "Method not allowed"
              }
            },
            "required": [
              "status",
              "message"
            ]
          }
        }
      },
      "UUID": {
        "type": "string",
        "format": "uuid",
        "description": "Entity ID in UUID format"
      },
      "Account": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Account ID.",
            "type": "string",
            "format": "uuid",
            "example": "4567896f-4ce8-4d8f-ccec-332bc48df912"
          },
          "name": {
            "description": "Account name.",
            "type": "string",
            "example": "Example Account"
          },
          "cert_central_integration_allowed": {
            "description": "Whether the account allows CertCentral integration.",
            "type": "boolean"
          },
          "customer_type": {
            "description": "Customer type.",
            "type": "string",
            "enum": [
              "CUSTOMER",
              "POC_CUSTOMER"
            ]
          },
          "dynamic_test_keypair_allowed": {
            "description": "Whether the account allows dynamic test keypairs.",
            "type": "boolean",
            "default": false
          },
          "gpg_enabled": {
            "description": "Whether GPG keypairs is enabled for the account.",
            "type": "boolean",
            "default": false
          },
          "is_csr_gen_enabled": {
            "description": "Whether the account is configured for CSR generation.",
            "type": "boolean",
            "default": false
          }
        }
      },
      "AccountBasic": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Account ID.",
            "type": "string",
            "format": "uuid",
            "example": "4567896f-4ce8-4d8f-ccec-332bc48df912"
          },
          "name": {
            "description": "Account name.",
            "type": "string",
            "example": "Example Account"
          },
          "cert_central_integration_allowed": {
            "description": "Whether the account can be linked to CertCentral.",
            "type": "boolean"
          },
          "customer_type": {
            "description": "Customer account type.",
            "type": "string",
            "enum": [
              "CUSTOMER",
              "POC_CUSTOMER"
            ]
          }
        }
      },
      "AccountActive": {
        "type": "object",
        "properties": {
          "account": {
            "$ref": "#/components/schemas/Account"
          },
          "active_account": {
            "description": "Whether this account is active.",
            "type": "boolean"
          }
        }
      },
      "AccountId": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Account ID (UUID).",
            "format": "uuid",
            "example": "4567896f-4ce8-4d8f-ccec-332bc48df912"
          }
        }
      },
      "AccountIdAndName": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Account ID (UUID).",
            "format": "uuid",
            "example": "4567896f-4ce8-4d8f-ccec-332bc48df912"
          },
          "name": {
            "type": "string",
            "description": "Account name.",
            "example": "Example Account"
          }
        }
      },
      "UpdateAccountSettingRequest": {
        "type": "object",
        "properties": {
          "account_id": {
            "description": "Account ID to update settings in.",
            "type": "string",
            "format": "uuid"
          },
          "account_settings": {
            "$ref": "#/components/schemas/AccountSettingGeneral"
          }
        }
      },
      "AccountSettingGeneral": {
        "description": "Account settings object.",
        "type": "object",
        "properties": {
          "key": {
            "description": "Account setting key",
            "type": "string",
            "example": "dcone.ssm.team.profile.enabled"
          },
          "type": {
            "description": "Type of account setting",
            "type": "string",
            "enum": [
              "ENABLED",
              "STRING",
              "BOOLEAN",
              "INTEGER",
              "STRING_LIST",
              "INTEGER_LIST",
              "INTEGER_RANGE",
              "LIST_CONTENT_ALLOWED",
              "IP_LIST",
              "IP_CIDR",
              "KEYPAIR_PROPERTIES"
            ],
            "example": "ENABLED"
          },
          "value": {
            "description": "Account setting value",
            "type": "string",
            "example": "true"
          }
        }
      },
      "AccountSettingStringList": {
        "description": "Account settings object.",
        "type": "object",
        "properties": {
          "key": {
            "description": "Account setting key",
            "type": "string",
            "example": "dcone.ssm.keypair.algorithms"
          },
          "type": {
            "description": "Type of account setting",
            "type": "string",
            "enum": [
              "ENABLED",
              "STRING",
              "BOOLEAN",
              "INTEGER",
              "STRING_LIST",
              "INTEGER_LIST",
              "INTEGER_RANGE",
              "LIST_CONTENT_ALLOWED",
              "IP_LIST",
              "IP_CIDR",
              "KEYPAIR_PROPERTIES"
            ],
            "example": "STRING_LIST"
          },
          "value": {
            "description": "Account setting value",
            "type": "string",
            "example": "RSA,ECDSA"
          }
        }
      },
      "AccountSettingEnabled": {
        "description": "Account settings object.",
        "type": "object",
        "properties": {
          "key": {
            "description": "Account setting key.",
            "type": "string",
            "example": "dcone.ssm.key.rotation.enabled"
          },
          "type": {
            "description": "Type of account setting.",
            "type": "string",
            "enum": [
              "ENABLED",
              "STRING",
              "BOOLEAN",
              "INTEGER",
              "STRING_LIST",
              "INTEGER_LIST",
              "INTEGER_RANGE",
              "LIST_CONTENT_ALLOWED",
              "IP_LIST",
              "IP_CIDR",
              "KEYPAIR_PROPERTIES"
            ],
            "example": "ENABLED"
          },
          "value": {
            "description": "Account setting value.",
            "type": "string",
            "example": "false"
          }
        }
      },
      "AccountSettingListContentAllowed": {
        "description": "Account settings object.",
        "type": "object",
        "properties": {
          "key": {
            "description": "Account setting key",
            "type": "string",
            "example": "dcone.ssm.keypair.groups.allowed"
          },
          "type": {
            "description": "Type of account setting",
            "type": "string",
            "enum": [
              "ENABLED",
              "STRING",
              "BOOLEAN",
              "INTEGER",
              "STRING_LIST",
              "INTEGER_LIST",
              "INTEGER_RANGE",
              "LIST_CONTENT_ALLOWED",
              "IP_LIST",
              "IP_CIDR",
              "KEYPAIR_PROPERTIES"
            ],
            "example": "LIST_CONTENT_ALLOWED"
          },
          "value": {
            "description": "Account setting value",
            "type": "string",
            "example": "true"
          }
        }
      },
      "AccountSettingInteger": {
        "description": "Account settings object.",
        "type": "object",
        "properties": {
          "key": {
            "description": "Account setting key.",
            "type": "string",
            "example": "dcone.ssm.release.window.comparison.threshold"
          },
          "type": {
            "description": "Type of account setting",
            "type": "string",
            "enum": [
              "ENABLED",
              "STRING",
              "BOOLEAN",
              "INTEGER",
              "STRING_LIST",
              "INTEGER_LIST",
              "INTEGER_RANGE",
              "LIST_CONTENT_ALLOWED",
              "IP_LIST",
              "IP_CIDR",
              "KEYPAIR_PROPERTIES"
            ],
            "example": "INTEGER"
          },
          "value": {
            "description": "Account setting value",
            "type": "string",
            "example": "2"
          }
        }
      },
      "AccountSettingKeypairProperties": {
        "description": "Account settings object.",
        "type": "object",
        "properties": {
          "key": {
            "description": "Account setting key",
            "type": "string",
            "example": "dcone.ssm.keypair.properties"
          },
          "type": {
            "description": "Type of account setting",
            "type": "string",
            "enum": [
              "ENABLED",
              "STRING",
              "BOOLEAN",
              "INTEGER",
              "STRING_LIST",
              "INTEGER_LIST",
              "INTEGER_RANGE",
              "LIST_CONTENT_ALLOWED",
              "IP_LIST",
              "IP_CIDR",
              "KEYPAIR_PROPERTIES"
            ],
            "example": "KEYPAIR_PROPERTIES"
          },
          "value": {
            "description": "Account setting value",
            "type": "object",
            "properties": {
              "key_size": {
                "description": "Array of allowed key sizes.",
                "type": "array",
                "items": {
                  "type": "string"
                },
                "example": [
                  "2048",
                  "3072",
                  "4096"
                ]
              },
              "curve": {
                "description": "Array of allowed curve types.",
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "P256",
                    "P-256",
                    "p256",
                    "prime256v1",
                    "secp256r1",
                    "P384",
                    "P-384",
                    "p384",
                    "secp384r1",
                    "P521",
                    "P-521",
                    "p521",
                    "secp521r1",
                    "Ed25519"
                  ]
                },
                "example": [
                  "Ed25519",
                  "P256",
                  "P384",
                  "P521"
                ]
              }
            }
          }
        }
      },
      "ClientToolsResponse": {
        "description": "Response containing client tools information for an account.",
        "type": "object",
        "properties": {
          "package_name": {
            "description": "Package type name. Possible values:\n* `STM-PREMIUM`: Standard Software Trust Manager package\n* `KeyLocker`: KeyLocker package\n",
            "type": "string",
            "enum": [
              "STM-PREMIUM",
              "KeyLocker"
            ],
            "example": "STM-PREMIUM"
          },
          "apps_by_operating_system": {
            "description": "List of client tools grouped by operating system.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClientToolsByOs"
            }
          },
          "account": {
            "$ref": "#/components/schemas/Account"
          }
        }
      },
      "ClientToolsByOs": {
        "description": "Client tools available for a specific operating system.",
        "type": "object",
        "properties": {
          "operating_system": {
            "description": "Operating system name.",
            "type": "string",
            "enum": [
              "Windows",
              "Linux",
              "macOs",
              "Aix"
            ],
            "example": "Windows"
          },
          "app_short_names": {
            "description": "Array of client tool names available for this operating system.",
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "smctl",
              "smpkcs11",
              "ksplib",
              "smjce"
            ]
          }
        }
      },
      "allowed_source": {
        "type": "array",
        "description": "List of allowed value sources.\n",
        "items": {
          "type": "string",
          "description": "Value source. Possible values:\n* `csr`: Sourced from CSR.\n* `user_supplied`: Provided in the certificate request. Only applies to the `API`, `PORTAL`, and `BATCH` enrollment methods.\n* `fixed_value` (default): Defined in the certificate profile. The fixed value is used when no `csr` or `user_supplied` value is provided.\n",
          "enum": [
            "csr",
            "user_supplied",
            "fixed_value"
          ]
        }
      },
      "allowed_source_csr": {
        "type": "array",
        "description": "List of allowed value sources.\n",
        "items": {
          "type": "string",
          "description": "Value source. Possible values:\n* `csr`: Sourced from CSR.\n",
          "enum": [
            "csr"
          ]
        }
      },
      "allowed_source_fixed": {
        "type": "array",
        "description": "List of allowed value sources.\n",
        "items": {
          "type": "string",
          "description": "Value source. Possible values:\n* `fixed_value` (default): Defined in the certificate profile. The fixed value is used when no `csr` or `user_supplied` value is provided.\n",
          "enum": [
            "fixed_value"
          ]
        }
      },
      "AuditLogEvent": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Audit log event ID.",
            "type": "string",
            "format": "uuid"
          },
          "account": {
            "$ref": "#/components/schemas/AccountIdAndName"
          },
          "resource_type": {
            "description": "Resource type.",
            "type": "string",
            "example": "KEY_ROTATION"
          },
          "resource_id": {
            "description": "Resource ID.",
            "type": "string",
            "format": "uuid"
          },
          "action": {
            "description": "The action performed on the resource.",
            "type": "string",
            "example": "ROTATE"
          },
          "user": {
            "description": "ID of the user who initiated the event.",
            "type": "object",
            "properties": {
              "id": {
                "description": "User ID",
                "type": "string",
                "format": "uuid",
                "example": "00000000-0000-0000-0000-000000000001"
              }
            }
          },
          "user_detail": {
            "description": "Details about the user who initiated the event.",
            "type": "object",
            "properties": {
              "id": {
                "description": "User ID",
                "type": "string",
                "format": "uuid",
                "example": "00000000-0000-0000-0000-000000000001"
              },
              "name": {
                "description": "User name",
                "type": "string",
                "example": "Automated"
              }
            }
          },
          "auth_type": {
            "description": "How the event action was authenticated.",
            "type": "string",
            "enum": [
              "BASIC",
              "API_TOKEN",
              "INTERNAL"
            ],
            "example": "INTERNAL"
          },
          "timestamp": {
            "description": "Date and time the audit log event occurred.",
            "type": "string",
            "format": "date-time"
          },
          "description": {
            "description": "Description of the audit log event.",
            "type": "string",
            "example": "Key_rotation rotate has been successfully performed."
          },
          "status": {
            "description": "Audit log event status.",
            "type": "string",
            "enum": [
              "SUCCESS",
              "FAILURE"
            ],
            "example": "SUCCESS"
          },
          "data": {
            "description": "The audit log event data.",
            "type": "string",
            "example": "{\"id\":\"555cfaec-dc73-474e-9bd3-8f0535444c45\",\"account\":{\"id\":\"9e55ebdf-201b-41c1-a5da-f0999cba640b\",\"name\":null},\"old_active_keypair_id\":\"55555dd2-cbf9-422d-5549-50a63b70d360\",\"new_active_keypair_id\":\"4b4444c1-7063-42fc-b8fc-b81ec104d441\"}"
          }
        }
      },
      "AuditLogEventDetails": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Audit log event ID.",
            "type": "string",
            "format": "uuid"
          },
          "account": {
            "$ref": "#/components/schemas/Account"
          },
          "resource_type": {
            "description": "Resource type.",
            "type": "string",
            "example": "KEY_ROTATION"
          },
          "resource_id": {
            "description": "Resource ID.",
            "type": "string",
            "format": "uuid"
          },
          "action": {
            "description": "The action performed on the resource.",
            "type": "string",
            "example": "ROTATE"
          },
          "user_detail": {
            "description": "Details about the user who initiated the event.",
            "type": "object",
            "properties": {
              "id": {
                "description": "User ID",
                "type": "string",
                "format": "uuid",
                "example": "00000000-0000-0000-0000-000000000001"
              },
              "name": {
                "description": "User name",
                "type": "string",
                "example": "Automated"
              },
              "auth_type": {
                "$ref": "#/components/schemas/UserAuthType"
              }
            }
          },
          "auth_type": {
            "description": "How the event action was authenticated.",
            "type": "string",
            "enum": [
              "BASIC",
              "API_TOKEN",
              "INTERNAL"
            ],
            "example": "INTERNAL"
          },
          "timestamp": {
            "description": "Date and time the audit log event occurred.",
            "type": "string",
            "format": "date-time"
          },
          "description": {
            "description": "Description of the audit log event.",
            "type": "string",
            "example": "Key_rotation rotate has been successfully performed."
          },
          "status": {
            "description": "Audit log event status.",
            "type": "string",
            "enum": [
              "SUCCESS",
              "FAILURE"
            ],
            "example": "SUCCESS"
          },
          "data": {
            "description": "The audit log event data.",
            "type": "string",
            "example": "{\"id\":\"555cfaec-dc73-474e-9bd3-8f0535444c45\",\"account\":{\"id\":\"9e55ebdf-201b-41c1-a5da-f0999cba640b\",\"name\":null},\"old_active_keypair_id\":\"55555dd2-cbf9-422d-5549-50a63b70d360\",\"new_active_keypair_id\":\"4b4444c1-7063-42fc-b8fc-b81ec104d441\"}"
          }
        }
      },
      "ArchivedLogFile": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Log file ID.",
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "description": "Log file name.",
            "type": "string",
            "example": "Log file 1"
          },
          "account": {
            "$ref": "#/components/schemas/AccountIdAndName"
          },
          "start_date": {
            "description": "Start date of events in the archived log file.",
            "type": "string",
            "format": "date-time"
          },
          "end_date": {
            "description": "End date of events in the archived log file.",
            "type": "string",
            "format": "date-time"
          },
          "number_of_records": {
            "description": "Total number of events in the archived log file.",
            "type": "integer",
            "example": 10000
          },
          "archived_data": {
            "description": "Whether the payload data in each log event is archived.",
            "type": "boolean",
            "example": true
          }
        }
      },
      "CertificateRevokeResponse": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Certificate ID.",
            "type": "string",
            "format": "uuid"
          },
          "alias": {
            "description": "Certificate name.",
            "type": "string",
            "example": "my_cert_1"
          },
          "cert": {
            "description": "Base64-encoded certificate.",
            "type": "string",
            "format": "byte",
            "example": "...(Base64-encoded certificate)..."
          },
          "certificate_fingerprint": {
            "description": "Certificate fingerprint (signature).",
            "type": "string",
            "format": "binary",
            "example": "f+BBb8TTcUx+CxIJ295w73viy1J4c3U7m27QE66ZW00="
          },
          "certificate_status": {
            "type": "string",
            "enum": [
              "ACTIVE",
              "SUSPENDED",
              "REVOKED",
              "DELETED",
              "PENDING_APPROVE",
              "EXPIRED",
              "REVOKED",
              "EXPIRED_REVOKED"
            ],
            "example": "REVOKED"
          },
          "account": {
            "$ref": "#/components/schemas/AccountBasic"
          },
          "keypair": {
            "$ref": "#/components/schemas/KeypairDetailsBasic"
          },
          "default_cert": {
            "description": "Whether it's the default certificate.",
            "type": "boolean"
          },
          "created_on": {
            "$ref": "#/components/schemas/Date"
          },
          "created_by": {
            "type": "string",
            "format": "uuid"
          },
          "created_by_user": {
            "$ref": "#/components/schemas/UserBasic"
          },
          "modified_on": {
            "description": "Modification date.",
            "type": "string",
            "format": "date-time",
            "example": "2022-10-31T08:30:00Z"
          },
          "modified_by": {
            "type": "string",
            "format": "uuid"
          },
          "modified_by_user": {
            "$ref": "#/components/schemas/UserBasic"
          },
          "enrollment_method": {
            "type": "string",
            "enum": [
              "IMPORT",
              "CM_GENERATE",
              "CC_GENERATE",
              "SAS_MIGRATED"
            ],
            "example": "CM_GENERATE"
          },
          "hierarchy": {
            "description": "Certificate authority hierarchy.",
            "type": "string",
            "enum": [
              "PRIVATE",
              "PUBLIC"
            ]
          },
          "certificate_profile": {
            "$ref": "#/components/schemas/CertificateProfileIdResponse"
          },
          "organization": {
            "$ref": "#/components/schemas/OrganizationIdResponse"
          },
          "ca": {
            "$ref": "#/components/schemas/CaIdResponse"
          },
          "ca_certificate": {
            "$ref": "#/components/schemas/CaCertificateIdResponse"
          },
          "chain": {
            "$ref": "#/components/schemas/ArrayOfChainCertificatesIntRoot"
          },
          "revocation_reason": {
            "type": "string",
            "enum": [
              "KEY_COMPROMISE",
              "AFFILIATION_CHANGED",
              "SUPERSEDED",
              "CESSATION_OF_OPERATION",
              "PRIVILEGE_WITHDRAWN",
              "AA_COMPROMISE"
            ]
          },
          "revocation_comment": {
            "description": "Free text comments about revocation.",
            "type": "string",
            "example": "Revoked via API."
          },
          "valid_from": {
            "$ref": "#/components/schemas/Date"
          },
          "valid_to": {
            "description": "Valid to date.",
            "type": "string",
            "format": "date-time",
            "example": "2022-10-31T08:30:00Z"
          },
          "revocation_date": {
            "description": "Revocation date.",
            "type": "string",
            "format": "date-time",
            "example": "2022-10-31T08:30:00Z"
          },
          "auto_renewal": {
            "description": "Whether the certificate will be auto-renewed.",
            "type": "boolean",
            "example": false
          }
        }
      },
      "UpdateCertificateRequest": {
        "required": [
          "alias"
        ],
        "type": "object",
        "properties": {
          "alias": {
            "maxLength": 255,
            "minLength": 1,
            "pattern": "[a-zA-Z0-9-_]*",
            "type": "string",
            "description": "The certificate alias name.",
            "example": "My certificate"
          },
          "auto_renewal": {
            "description": "Whether the certificate will be auto-renewed.",
            "type": "boolean"
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "SigningResponse": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/UUID"
          },
          "signature": {
            "description": "The unique signature produced by signing the file hash with the requested keypair.",
            "type": "string"
          }
        }
      },
      "RevocationRequest": {
        "required": [
          "reason"
        ],
        "type": "object",
        "properties": {
          "reason": {
            "description": "Reason code for revocation.",
            "type": "string",
            "enum": [
              "KEY_COMPROMISE",
              "AFFILIATION_CHANGED",
              "SUPERSEDED",
              "CESSATION_OF_OPERATION",
              "PRIVILEGE_WITHDRAWN",
              "AA_COMPROMISE"
            ]
          },
          "revocation_date": {
            "description": "Date the certificate was revoked.",
            "type": "string",
            "format": "date-time"
          },
          "comments": {
            "description": "Free text comments about revocation.",
            "type": "string",
            "example": "Revoked via API."
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "CaCertificateProfileRequest": {
        "description": "Details for creating or updating a profile of type `CA_PROFILE`.",
        "required": [
          "body",
          "certificate_template_id"
        ],
        "type": "object",
        "properties": {
          "certificate_template_id": {
            "description": "ID of the base template to use.",
            "maxLength": 36,
            "minLength": 36,
            "type": "string",
            "format": "uuid"
          },
          "profile": {
            "type": "string"
          },
          "body": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/CertificateProfileAttribute"
                },
                {
                  "$ref": "#/components/schemas/CertificateProfileAttributeArrayValue"
                }
              ]
            }
          },
          "organization": {
            "$ref": "#/components/schemas/CaOrganization"
          },
          "ca": {
            "$ref": "#/components/schemas/CaCertAuthority"
          }
        }
      },
      "CaCertificateProfileResponse": {
        "description": "Details for a certificate profile of type `CA_PROFILE`.",
        "type": "object",
        "properties": {
          "id": {
            "description": "ID of the certificate profile.",
            "type": "string",
            "format": "uuid"
          },
          "profile": {
            "description": "Profile category.",
            "type": "string",
            "example": "PRODUCTION"
          },
          "certificate_template": {
            "description": "Base template details.",
            "type": "object",
            "properties": {
              "id": {
                "description": "ID of the base template.",
                "type": "string",
                "format": "uuid"
              },
              "name": {
                "description": "Name of the base template.",
                "type": "string",
                "example": "My production certificate template"
              }
            }
          },
          "body": {
            "$ref": "#/components/schemas/CaCertificateProfileBody"
          },
          "organization": {
            "$ref": "#/components/schemas/CaOrganization"
          },
          "ca": {
            "$ref": "#/components/schemas/CaCertAuthority"
          }
        }
      },
      "CaCertAuthority": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Certificate Authority ID",
            "type": "string",
            "example": "5FBBC5E88888D79509990B68C24235DB"
          }
        }
      },
      "CaOrganization": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Organization ID (UUID)",
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "CcCreateCertificateProfileRequest": {
        "description": "Details for creating or updating a profile of type `CC_PROFILE`.",
        "type": "object",
        "properties": {
          "cc_organization_id": {
            "type": "integer",
            "format": "int64"
          },
          "cc_validity_years": {
            "type": "string",
            "enum": [
              "0",
              "1",
              "2",
              "3"
            ]
          },
          "cc_validity_days": {
            "maximum": 397,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "cc_skip_approval": {
            "type": "boolean"
          },
          "certificate_type": {
            "type": "string",
            "enum": [
              "OV",
              "EV"
            ]
          },
          "custom_fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          },
          "organization_units": {
            "type": "string"
          },
          "subject_email": {
            "type": "string"
          }
        }
      },
      "CertificateProfileAttribute": {
        "type": "object",
        "properties": {
          "key": {
            "description": "Attribute name.",
            "type": "string"
          },
          "optional": {
            "description": "Whether the attribute is optional.",
            "type": "boolean"
          },
          "sources": {
            "description": "Where the field value can originate from.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "csr",
                "fixed_value"
              ]
            }
          },
          "value": {
            "description": "Attribute value.",
            "type": "string"
          },
          "enabled": {
            "description": "Whether the attribute is enabled.",
            "type": "boolean"
          }
        }
      },
      "CertificateProfileAttributeArrayValue": {
        "type": "object",
        "properties": {
          "key": {
            "description": "Attribute name.",
            "type": "string"
          },
          "optional": {
            "description": "Whether the attribute is optional.",
            "type": "boolean"
          },
          "sources": {
            "description": "Where the field value can originate from.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "csr",
                "fixed_value"
              ]
            }
          },
          "value": {
            "description": "Attribute value.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "enabled": {
            "description": "Whether the attribute is enabled.",
            "type": "boolean"
          }
        }
      },
      "CaCertificateProfileBody": {
        "description": "Array of certificate profile attributes.",
        "type": "array",
        "items": {
          "anyOf": [
            {
              "$ref": "#/components/schemas/CertificateProfileAttribute"
            },
            {
              "$ref": "#/components/schemas/CertificateProfileAttributeArrayValue"
            }
          ]
        },
        "example": [
          {
            "key": "signature_algorithm",
            "optional": false,
            "sources": [
              "fixed_value"
            ],
            "value": "match_issuer",
            "enabled": true
          },
          {
            "key": "subject.organization_unit",
            "optional": true,
            "sources": [],
            "value": [],
            "enabled": false
          },
          {
            "key": "subject.email",
            "optional": true,
            "sources": [],
            "value": "",
            "enabled": false
          },
          {
            "key": "validity.duration_unit",
            "optional": false,
            "sources": [
              "fixed_value"
            ],
            "value": "years",
            "enabled": true
          },
          {
            "key": "validity.duration_value",
            "optional": false,
            "sources": [
              "fixed_value"
            ],
            "value": 1,
            "enabled": true
          },
          {
            "key": "key_usage.rsa_additional_values",
            "optional": true,
            "sources": [],
            "value": [
              "digital_signature",
              "non_repudiation",
              "key_encipherment"
            ],
            "enabled": false
          },
          {
            "key": "key_usage.ecdsa_additional_values",
            "optional": true,
            "sources": [],
            "value": [
              "digital_signature",
              "non_repudiation"
            ],
            "enabled": false
          },
          {
            "key": "extended_key_usage.additional_values",
            "optional": true,
            "sources": [],
            "value": [
              "code_signing",
              "client_authentication"
            ],
            "enabled": false
          }
        ]
      },
      "CertificateProfileRequest": {
        "required": [
          "name",
          "profile_type"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "example": "my_profile"
          },
          "profile_type": {
            "type": "string",
            "description": "Either `CA_PROFILE` or `CC_PROFILE`. Request body details differ for each (see below)."
          },
          "auto_renewal": {
            "type": "string",
            "enum": [
              "ENABLED",
              "DISABLED",
              "ALLOW_OVERRIDE"
            ],
            "description": "Whether auto-renewal is enabled for certificates issued from this profile. `ALLOW_OVERRIDE` means that auto-renewal is disabled by default, but can be selected/enabled on a case-by-case basis."
          },
          "rekey": {
            "type": "string",
            "enum": [
              "ENABLED",
              "DISABLED"
            ],
            "description": "Whether re-key is enabled for certificates issued from this profile."
          },
          "rekey_alg": {
            "type": "string",
            "enum": [
              "RSA",
              "ECDSA",
              "EdDSA",
              "MLDSA",
              "SLHDSA"
            ],
            "description": "The algorithm to be applied when a keypair is re-keyed.",
            "example": "RSA"
          },
          "rekey_key_strength": {
            "type": "string",
            "description": "The key strength with respect to the algorithm applied for the re-keyed keypair.",
            "example": 3072
          },
          "apply_renewal_option_for_existing_cert": {
            "type": "boolean",
            "description": "Whether auto-renewal and re-key settings are applied for certificates generated using this profile."
          },
          "ca_certificate_profile_request": {
            "$ref": "#/components/schemas/CaCertificateProfileRequest"
          },
          "cc_certificate_profile_request": {
            "$ref": "#/components/schemas/CcCreateCertificateProfileRequest"
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "CertificateProfileResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Certificate profile ID (UUID).",
            "format": "uuid",
            "example": "3543c889-c2fc-4353-909a-a0ae1705451f"
          },
          "name": {
            "type": "string",
            "description": "Unique name for the certificate profile.",
            "example": "Example profile"
          },
          "account": {
            "$ref": "#/components/schemas/Account"
          },
          "status": {
            "type": "string",
            "description": "Certificate profile status.",
            "example": "ACTIVE",
            "enum": [
              "ACTIVE",
              "DISABLED",
              "DELETED"
            ]
          },
          "type": {
            "type": "string",
            "description": "Profile type.",
            "enum": [
              "CA_PROFILE",
              "CC_PROFILE"
            ]
          },
          "created_on": {
            "type": "string",
            "description": "Date and time certificate profile was created. Format: UTC timezone and ISO 8601 format.\n",
            "example": "2022-10-13T11:04:29Z"
          },
          "created_by_user": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "modified_on": {
            "type": "string",
            "description": "Date and time certificate profile was created. Format: UTC timezone and ISO 8601 format.\n",
            "example": "2022-10-13T11:04:29Z"
          },
          "modified_by_user": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "ca_certificate_profile": {
            "$ref": "#/components/schemas/CaCertificateProfileResponse"
          },
          "auto_renewal": {
            "description": "Whether certificates will be auto-renewed.",
            "type": "string",
            "enum": [
              "ENABLED",
              "DISABLED"
            ]
          },
          "rekey": {
            "type": "string",
            "enum": [
              "ENABLED",
              "DISABLED"
            ],
            "description": "Whether re-key is enabled for certificates issued from this profile."
          },
          "rekey_alg": {
            "type": "string",
            "enum": [
              "RSA",
              "ECDSA",
              "EdDSA",
              "MLDSA",
              "SLHDSA"
            ],
            "description": "The algorithm to be applied when a keypair is re-keyed.",
            "example": "RSA"
          },
          "rekey_key_strength": {
            "type": "string",
            "description": "The key strength with respect to the algorithm applied for the re-keyed keypair.",
            "example": 3072
          }
        }
      },
      "CertificateProfileResponseDisabled": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/CertificateProfileResponse/properties/id"
          },
          "name": {
            "$ref": "#/components/schemas/CertificateProfileResponse/properties/name"
          },
          "account": {
            "$ref": "#/components/schemas/Account"
          },
          "status": {
            "type": "string",
            "description": "Certificate profile status.",
            "example": "DISABLED",
            "enum": [
              "ACTIVE",
              "DISABLED",
              "DELETED"
            ]
          },
          "type": {
            "$ref": "#/components/schemas/CertificateProfileResponse/properties/type"
          },
          "created_on": {
            "$ref": "#/components/schemas/CertificateProfileResponse/properties/created_on"
          },
          "created_by_user": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "modified_on": {
            "$ref": "#/components/schemas/CertificateProfileResponse/properties/modified_on"
          },
          "modified_by_user": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "ca_certificate_profile": {
            "$ref": "#/components/schemas/CaCertificateProfileResponse"
          },
          "auto_renewal": {
            "$ref": "#/components/schemas/CertificateProfileResponse/properties/auto_renewal"
          }
        }
      },
      "CustomField": {
        "type": "object",
        "properties": {
          "metadata_id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        }
      },
      "BaseRequest": {
        "type": "object",
        "properties": {
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "BaseRequestRequired": {
        "type": "object",
        "required": [
          "account"
        ],
        "properties": {
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "CertificateTemplateCloneRequest": {
        "description": "Details for how to clone an existing certificate template to create a new certificate template.",
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "description": "Name for the new certificate template.",
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "example": "Example template"
          },
          "custom_template": {
            "description": "Set to `true` when cloning a custom certificate template.",
            "type": "boolean",
            "example": true
          }
        }
      },
      "CertificateTemplateBody": {
        "type": "object",
        "properties": {
          "issue_types": {
            "type": "array",
            "description": "List of allowed authentication types for certificates issued from this template.",
            "items": {
              "type": "string",
              "description": "Authentication type.",
              "enum": [
                "client_authentication",
                "server_authentication",
                "private_smime",
                "code_signing"
              ]
            },
            "example": [
              "code_signing"
            ]
          },
          "cert_type": {
            "type": "string",
            "default": "end_entity",
            "description": "Certificate type.",
            "enum": [
              "end_entity",
              "intermediate",
              "root"
            ]
          },
          "signature_algorithm": {
            "$ref": "#/components/schemas/SignatureAlgorithmDefinition"
          },
          "subject": {
            "$ref": "#/components/schemas/TemplateSubject"
          },
          "extensions": {
            "$ref": "#/components/schemas/TemplateExtensions"
          },
          "validity": {
            "$ref": "#/components/schemas/TemplateValidity"
          }
        }
      },
      "CertificateTemplateRequest": {
        "required": [
          "body",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "description": "Name for the new certificate template.",
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "example": "Example template"
          },
          "body": {
            "$ref": "#/components/schemas/CertificateTemplateBody"
          },
          "custom_template": {
            "description": "Whether it's a custom template.",
            "type": "boolean",
            "example": true,
            "default": true
          },
          "limit_by_accounts": {
            "description": "Whether the template is restricted to certain accounts. If true, then the allowed account IDs must be specified in the `accounts` field.",
            "type": "boolean",
            "example": false
          },
          "template": {
            "description": "Category of the new template.",
            "type": "string",
            "enum": [
              "TESTING",
              "PRODUCTION"
            ],
            "example": "PRODUCTION"
          },
          "accounts": {
            "description": "Account IDs that can use the template. If not empty, then `limit_by_accounts` must be true.",
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": []
          }
        }
      },
      "CertificateTemplateResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Certificate template ID (UUID).",
            "format": "uuid",
            "example": "2432c889-c2fc-4353-909a-a0ae1705451f"
          },
          "name": {
            "type": "string",
            "description": "Unique name for the certificate template.",
            "example": "Example template"
          },
          "body": {
            "$ref": "#/components/schemas/CertificateTemplateBody"
          },
          "status": {
            "type": "string",
            "description": "Certificate template status.",
            "example": "ACTIVE",
            "enum": [
              "ACTIVE",
              "DISABLED",
              "DELETED"
            ]
          },
          "type": {
            "type": "string",
            "description": "Template type. A `CUSTOM` template can be used for signing your code. A `SYSTEM` template can only be cloned.\n",
            "enum": [
              "CUSTOM",
              "SYSTEM"
            ]
          },
          "template": {
            "type": "string",
            "description": "Template category.\n",
            "enum": [
              "PRODUCTION",
              "TEST"
            ]
          },
          "accounts": {
            "type": "array",
            "description": "List of objects with the name and ID of each account that can use this template. If empty, there are no account restrictions.",
            "items": {
              "$ref": "#/components/schemas/AccountIdAndName"
            },
            "example": []
          },
          "created_on": {
            "type": "string",
            "description": "Date and time certificate template was created. Format: UTC timezone and ISO 8601 format.\n",
            "example": "2022-10-09T11:04:29Z"
          },
          "created_by": {
            "type": "string",
            "description": "Account ID (UUID) where the template was created.",
            "example": "dc1e352e-08ab-4516-979d-6c0d398bfb39"
          },
          "created_by_user": {
            "$ref": "#/components/schemas/UserBasic"
          },
          "modified_on": {
            "type": "string",
            "description": "Date and time certificate template was created. Format: UTC timezone and ISO 8601 format.\n",
            "example": "2022-10-09T11:04:29Z"
          },
          "modified_by": {
            "type": "string",
            "description": "Account ID (UUID) where the template was created.",
            "example": "dc1e352e-08ab-4516-979d-6c0d398bfb39"
          },
          "modified_by_user": {
            "$ref": "#/components/schemas/UserBasic"
          }
        }
      },
      "CertificateTemplateResponseDisabled": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/CertificateTemplateResponse/properties/id"
          },
          "name": {
            "$ref": "#/components/schemas/CertificateTemplateResponse/properties/name"
          },
          "body": {
            "$ref": "#/components/schemas/CertificateTemplateBody"
          },
          "status": {
            "type": "string",
            "description": "Certificate template status.",
            "example": "DISABLED",
            "enum": [
              "ACTIVE",
              "DISABLED",
              "DELETED"
            ]
          },
          "type": {
            "$ref": "#/components/schemas/CertificateTemplateResponse/properties/type"
          },
          "template": {
            "$ref": "#/components/schemas/CertificateTemplateResponse/properties/template"
          },
          "accounts": {
            "$ref": "#/components/schemas/CertificateTemplateResponse/properties/accounts"
          },
          "created_on": {
            "$ref": "#/components/schemas/CertificateTemplateResponse/properties/created_on"
          },
          "created_by": {
            "$ref": "#/components/schemas/CertificateTemplateResponse/properties/created_by"
          },
          "created_by_user": {
            "$ref": "#/components/schemas/UserBasic"
          },
          "modified_on": {
            "$ref": "#/components/schemas/CertificateTemplateResponse/properties/created_on"
          },
          "modified_by": {
            "$ref": "#/components/schemas/CertificateTemplateResponse/properties/modified_by"
          },
          "modified_by_user": {
            "$ref": "#/components/schemas/UserBasic"
          }
        }
      },
      "CertificateTemplateFieldsSpecification": {
        "type": "object",
        "description": "Object that describes the fields that make up the certificate template.",
        "required": [
          "fields"
        ],
        "properties": {
          "fields": {
            "type": "array",
            "description": "List of fields that make up the certificate template.",
            "items": {
              "type": "object",
              "description": "Field object.",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Field ID.",
                  "example": "subject.organization_unit"
                },
                "name": {
                  "type": "string",
                  "description": "Field name.",
                  "example": "subject_organization_unit"
                },
                "kind": {
                  "type": "string",
                  "description": "Field kind.",
                  "example": "ORGANIZATION_UNIT"
                },
                "type": {
                  "type": "object",
                  "description": "Field type.",
                  "properties": {
                    "type": {
                      "description": "Data type",
                      "type": "string",
                      "example": "string"
                    },
                    "options": {
                      "description": "Whether it has options.",
                      "type": "boolean",
                      "example": false
                    },
                    "multiple": {
                      "description": "Whether there can be more than one.",
                      "type": "boolean",
                      "example": true
                    }
                  }
                },
                "can_be_removed": {
                  "description": "Whether the field can be removed.",
                  "type": "boolean",
                  "example": true
                },
                "always_mandatory": {
                  "description": "Whether the field is always mandatory.",
                  "type": "boolean",
                  "example": false
                },
                "mandatory": {
                  "description": "Whether the field is mandatory in the current certificate template.",
                  "type": "boolean",
                  "example": false
                },
                "enabled": {
                  "description": "Whether the field is enabled by default.",
                  "type": "boolean",
                  "example": false
                },
                "sources": {
                  "type": "array",
                  "description": "Where the field value can originate from.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "type": "string",
                        "description": "Data source.",
                        "example": "fixed_value",
                        "enum": [
                          "csr",
                          "fixed_value",
                          "user_supplied"
                        ]
                      },
                      "always_selected": {
                        "type": "boolean",
                        "description": "Whether this source is always selected.",
                        "example": false
                      },
                      "checked": {
                        "type": "boolean",
                        "description": "Whether this source is currently selected.",
                        "example": false
                      },
                      "value": {
                        "type": "string",
                        "description": "Current value of this source.",
                        "example": ""
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "DefaultValidity": {
        "type": "object",
        "properties": {
          "min": {
            "$ref": "#/components/schemas/ValidityDurationMin"
          },
          "max": {
            "$ref": "#/components/schemas/ValidityDurationMax"
          }
        }
      },
      "ExtendedKeyUsage": {
        "type": "object",
        "description": "Defines extended key usage extension for the template.",
        "properties": {
          "critical": {
            "type": "boolean",
            "example": true
          },
          "allow_critical_override": {
            "type": "boolean",
            "example": false
          },
          "required_usages": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "code_signing",
                "client_authentication"
              ]
            },
            "example": [
              "code_signing",
              "client_authentication"
            ]
          }
        }
      },
      "KeyUsage": {
        "type": "object",
        "description": "Defines key usage extension for the template.",
        "properties": {
          "critical": {
            "type": "boolean",
            "example": true
          },
          "allow_critical_override": {
            "type": "boolean",
            "example": false
          },
          "required_usages": {
            "$ref": "#/components/schemas/RequiredUsages"
          }
        }
      },
      "RequiredUsages": {
        "type": "object",
        "properties": {
          "rsa": {
            "type": "array",
            "description": "List of required RSA key usages.",
            "items": {
              "type": "string",
              "enum": [
                "digital_signature",
                "non_repudiation",
                "key_encipherment"
              ]
            }
          },
          "ecdsa": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "digital_signature",
                "non_repudiation"
              ]
            }
          }
        },
        "example": {
          "rsa": [
            "digital_signature",
            "non_repudiation",
            "key_encipherment"
          ],
          "ecdsa": [
            "digital_signature",
            "non_repudiation"
          ]
        }
      },
      "SignatureAlgorithmDefinition": {
        "type": "object",
        "description": "Object with details about the template's allowed and default hash and signature algorithms.",
        "required": [
          "allowed_algorithms",
          "default_algorithm"
        ],
        "properties": {
          "allowed_algorithms": {
            "type": "array",
            "description": "List of signature algorithms that can be used to sign certificates.",
            "items": {
              "type": "string",
              "description": "Signature algorithm.",
              "enum": [
                "sha1WithRSA",
                "sha256WithRSA",
                "sha384WithRSA",
                "sha512WithRSA",
                "sha256WithECDSA",
                "sha384WithECDSA",
                "match_issuer"
              ]
            },
            "example": [
              "sha1WithRSA",
              "sha256WithRSA",
              "sha384WithRSA",
              "sha512WithRSA",
              "sha256WithECDSA",
              "sha384WithECDSA",
              "match_issuer"
            ]
          },
          "default_algorithm": {
            "type": "string",
            "description": "Default signature algorithm.",
            "example": "match_issuer",
            "default": "match_issuer",
            "enum": [
              "sha1WithRSA",
              "sha256WithRSA",
              "sha384WithRSA",
              "sha512WithRSA",
              "sha256WithECDSA",
              "sha384WithECDSA",
              "match_issuer"
            ]
          }
        }
      },
      "TeamIdAndName": {
        "description": "Team details.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Team ID (UUID).",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Team name.",
            "example": "example_team"
          }
        }
      },
      "TeamPermission": {
        "description": "Team permission group.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Permission ID.",
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "description": "Permission name.",
            "type": "string",
            "example": "My permission."
          },
          "is_group": {
            "description": "Whether it's a group permission.",
            "type": "boolean"
          },
          "signing_permission": {
            "description": "Whether certificate signing is allowed.",
            "type": "boolean"
          },
          "keypair_export_permission": {
            "description": "Whether keypair export is allowed.",
            "type": "boolean"
          },
          "keypair_del_permission": {
            "description": "Whether keypair deletion is allowed.",
            "type": "boolean"
          },
          "release_approval_permission": {
            "description": "Whether release approval is allowed.",
            "type": "boolean"
          },
          "cert_revocation_permission": {
            "description": "Whether certificate revocation is allowed.",
            "type": "boolean"
          }
        }
      },
      "TeamResourceMapping": {
        "description": "Resource mapping for a team.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Resource ID.",
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "description": "Resource name.",
            "type": "string",
            "example": "My team keypair resource."
          },
          "type": {
            "$ref": "#/components/schemas/TeamResourceType"
          },
          "team_id": {
            "description": "Team ID.",
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "TeamResourceMappingRequest": {
        "type": "object",
        "properties": {
          "resources": {
            "description": "Array of resources to map to the team.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamResourceMapping"
            }
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "TeamResourceType": {
        "description": "Resource type.",
        "type": "string",
        "enum": [
          "KEYPAIR",
          "KEYPAIR_PROFILE",
          "CERTIFICATE_PROFILE",
          "RELEASE_WINDOW",
          "KEY_ROTATION",
          "GPG_KEYPAIR",
          "USER",
          "SOFTWARE_PROJECT"
        ]
      },
      "ListTeamResourceType": {
        "description": "Resource type.",
        "type": "string",
        "enum": [
          "KEYPAIR",
          "GPG_KEYPAIR",
          "KEYPAIR_PROFILE",
          "CERTIFICATE_PROFILE",
          "SOFTWARE_PROJECT"
        ]
      },
      "TeamResourceTypeForAvailableResource": {
        "description": "Resource type.",
        "type": "string",
        "enum": [
          "KEYPAIR",
          "KEYPAIR_PROFILE",
          "CERTIFICATE_PROFILE",
          "GPG_KEYPAIR",
          "SOFTWARE_PROJECT"
        ]
      },
      "TeamRequest": {
        "type": "object",
        "required": [
          "name",
          "no_of_offline_release_approvals_required",
          "no_of_cert_revocation_approvals_required",
          "no_of_keypair_export_approvals_required",
          "no_of_keypair_delete_approvals_required",
          "signatures_limit",
          "active"
        ],
        "properties": {
          "name": {
            "description": "Name of the new team.",
            "type": "string",
            "example": "My Team"
          },
          "no_of_offline_release_approvals_required": {
            "description": "Number of approvals required for offline release.",
            "type": "string",
            "format": "byte"
          },
          "no_of_cert_revocation_approvals_required": {
            "description": "Number of approvals required for certificate revocation.",
            "type": "string",
            "format": "byte"
          },
          "no_of_keypair_export_approvals_required": {
            "description": "Number of approvals required for keypair exports.",
            "type": "string",
            "format": "byte"
          },
          "no_of_keypair_delete_approvals_required": {
            "description": "Number of approvals required for keypair deletion.",
            "type": "string",
            "format": "byte"
          },
          "signatures_limit": {
            "description": "Maximum number of signatures.",
            "type": "integer",
            "minimum": -1,
            "example": 99
          },
          "active": {
            "description": "Whether the team is currently activated.",
            "type": "boolean"
          },
          "expiry_date": {
            "$ref": "#/components/schemas/DateExpiry"
          },
          "resources": {
            "description": "Resources mapped to the team.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamResourceMapping"
            }
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "TeamResponse": {
        "description": "Team details response.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Team ID.",
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "description": "Team name.",
            "type": "string",
            "example": "My Team"
          },
          "no_of_offline_release_approvals_required": {
            "description": "Number of approvals required for offline release.",
            "type": "string",
            "format": "byte"
          },
          "no_of_cert_revocation_approvals_required": {
            "description": "Number of approvals required for certificate revocation.",
            "type": "string",
            "format": "byte"
          },
          "no_of_keypair_export_approvals_required": {
            "description": "Number of approvals required for keypair exports.",
            "type": "string",
            "format": "byte"
          },
          "no_of_keypair_delete_approvals_required": {
            "description": "Number of approvals required for keypair deletion.",
            "type": "string",
            "format": "byte"
          },
          "signatures_limit": {
            "description": "Maximum number of signatures.",
            "type": "integer",
            "example": 99
          },
          "active": {
            "description": "Whether the team is currently activated.",
            "type": "boolean"
          },
          "expiry_date": {
            "$ref": "#/components/schemas/DateExpiry"
          },
          "created_on": {
            "description": "When the team was created.",
            "type": "string",
            "format": "date-time"
          },
          "created_by_user": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "modified_on": {
            "description": "When the team was last modified.",
            "type": "string",
            "format": "date-time"
          },
          "modified_by_user": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "account_id": {
            "description": "ID of the account that holds the team.",
            "type": "string",
            "format": "uuid"
          },
          "created_by_user_name": {
            "description": "Name of the user who created the team.",
            "type": "string",
            "example": "Team Manager"
          },
          "signatures_running_count": {
            "description": "Current number of signatures used by the team.",
            "type": "integer",
            "example": 11
          },
          "resources": {
            "description": "Resources mapped to the team.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamResourceMapping"
            }
          },
          "permissions": {
            "description": "Team permissions.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TeamPermission"
            }
          }
        }
      },
      "UserActiveAccountResponse": {
        "description": "User active account response.",
        "type": "object",
        "properties": {
          "user": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "accounts": {
            "description": "Array of accounts showing active status.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AccountActive"
            }
          }
        }
      },
      "TemplateAttribute": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "include": {
            "type": "string"
          },
          "allowed_source": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "TemplateExtensions": {
        "type": "object",
        "properties": {
          "key_usage": {
            "$ref": "#/components/schemas/KeyUsage"
          },
          "extended_key_usage": {
            "$ref": "#/components/schemas/ExtendedKeyUsage"
          }
        }
      },
      "TemplateSubject": {
        "type": "object",
        "description": "Object that defines the subject attributes and the order in which they appear in the certificate.",
        "required": [
          "attributes"
        ],
        "properties": {
          "attributes": {
            "type": "array",
            "description": "List of attributes to include in the certificate.",
            "items": {
              "type": "object",
              "description": "Attribute object.",
              "required": [
                "type",
                "allowed_source"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "description": "Type of attribute to include in the certificate.\n",
                  "example": "common_name",
                  "enum": [
                    "common_name",
                    "country",
                    "email",
                    "locality",
                    "organization_name",
                    "organization_unit",
                    "postal_code",
                    "serial_number",
                    "state",
                    "street_address",
                    "unique_identifier",
                    "description",
                    "domain_component",
                    "unstructured_address",
                    "unstructured_name",
                    "dn_qualifier",
                    "title",
                    "given_name",
                    "surname",
                    "product_identifier",
                    "vendor_identifier"
                  ]
                },
                "include": {
                  "type": "string",
                  "description": "If `yes` (default), the subject attribute value is required. If `optional`, the subject attribute value is optional.",
                  "example": "optional",
                  "enum": [
                    "yes",
                    "optional"
                  ]
                },
                "allowed_source": {
                  "$ref": "#/components/schemas/allowed_source"
                }
              }
            },
            "example": [
              {
                "type": "common_name",
                "include": "optional",
                "allowed_source": [
                  "csr"
                ]
              },
              {
                "type": "organization_name",
                "include": "optional",
                "allowed_source": [
                  "csr"
                ]
              },
              {
                "type": "organization_unit",
                "include": "optional",
                "allowed_source": [
                  "fixed_value"
                ]
              },
              {
                "type": "email",
                "include": "optional",
                "allowed_source": [
                  "fixed_value"
                ]
              },
              {
                "type": "street_address",
                "include": "optional",
                "allowed_source": [
                  "csr"
                ]
              },
              {
                "type": "postal_code",
                "include": "optional",
                "allowed_source": [
                  "csr"
                ]
              },
              {
                "type": "locality",
                "include": "optional",
                "allowed_source": [
                  "csr"
                ]
              },
              {
                "type": "state",
                "include": "optional",
                "allowed_source": [
                  "csr"
                ]
              },
              {
                "type": "country",
                "allowed_source": [
                  "csr"
                ]
              }
            ]
          }
        }
      },
      "TemplateValidity": {
        "type": "object",
        "properties": {
          "min_duration": {
            "$ref": "#/components/schemas/ValidityDurationMin"
          },
          "max_duration": {
            "$ref": "#/components/schemas/ValidityDurationMax"
          },
          "default_duration": {
            "$ref": "#/components/schemas/DefaultValidity"
          }
        }
      },
      "ValidityDurationMin": {
        "type": "object",
        "properties": {
          "value": {
            "type": "integer",
            "format": "int32",
            "example": 1
          },
          "unit": {
            "type": "string",
            "example": "years"
          }
        }
      },
      "ValidityDurationMax": {
        "type": "object",
        "properties": {
          "value": {
            "type": "integer",
            "format": "int32",
            "example": 3
          },
          "unit": {
            "type": "string",
            "example": "years"
          }
        }
      },
      "UpdateHierarchyRequest": {
        "type": "object",
        "properties": {
          "comment": {
            "description": "Text comment about the hierarchy, if applicable.",
            "type": "string",
            "example": "Example comment about the hierarchy"
          },
          "validation_profile": {
            "description": "Certificate validation profile.",
            "type": "string",
            "example": "[\"EXPIRED\",\"NO_DIGITAL_SIGNATURE\",\"SHA_1\",\"REVOKED_VIA_CRL\",\"REVOKED_VIA_OCSP\"]"
          },
          "trust_type": {
            "description": "Trust type for the hierarchy.",
            "type": "string",
            "enum": [
              "PRIVATE",
              "PUBLIC"
            ],
            "example": "PRIVATE"
          },
          "hierarchy_type": {
            "description": "Hierarchy type.",
            "type": "string",
            "enum": [
              "LIMITED",
              "UNLIMITED"
            ],
            "example": "UNLIMITED"
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "HierarchyBase": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Hierarchy ID.",
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "description": "Hierarchy name.",
            "type": "string",
            "example": "My hierarchy"
          },
          "hierarchy_type": {
            "description": "Hierarchy type.",
            "type": "string",
            "enum": [
              "LIMITED",
              "UNLIMITED"
            ],
            "example": "UNLIMITED"
          },
          "hierarchy_status": {
            "description": "Hierarchy status.",
            "type": "string",
            "enum": [
              "APPROVED",
              "PENDING",
              "REJECTED"
            ],
            "example": "APPROVED"
          },
          "suspended": {
            "description": "Whether the hierarchy is suspended.",
            "type": "boolean",
            "example": false
          },
          "locked": {
            "description": "Whether the hierarchy is locked.",
            "type": "boolean",
            "example": false
          },
          "cert_status": {
            "description": "Default certificate status.",
            "type": "string",
            "enum": [
              "ACTIVE",
              "SUSPEND",
              "DELETED",
              "PENDING_APPROVE",
              "EXPIRED",
              "REVOKED",
              "EXPIRED_REVOKED"
            ],
            "example": "ACTIVE"
          },
          "created_on": {
            "description": "When the hierarchy was created.",
            "type": "string",
            "format": "date-time"
          },
          "created_by": {
            "description": "ID of the user who created the hierarchy.",
            "type": "string",
            "format": "uuid"
          },
          "modified_on": {
            "description": "When the hierarchy was last modified.",
            "type": "string",
            "format": "date-time"
          },
          "modified_by": {
            "description": "ID of the user who last modified the hierarchy.",
            "type": "string",
            "format": "uuid"
          },
          "created_by_user": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "modified_by_user": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "trust_type": {
            "description": "Trust type, if applicable.",
            "type": "string",
            "enum": [
              "PRIVATE",
              "PUBLIC"
            ],
            "example": "PRIVATE"
          },
          "account_id": {
            "description": "Account ID, if applicable.",
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "HierarchyParentId": {
        "type": "object",
        "properties": {
          "parent_id": {
            "description": "ID of the parent hierarchy.",
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "HierarchyCertificate": {
        "type": "object",
        "properties": {
          "certificate": {
            "description": "Array of Base64-encoded certificates.",
            "type": "array",
            "items": {
              "description": "Base64-encoded certificate.",
              "type": "string",
              "format": "byte",
              "example": "...(Base64-encoded certificate)..."
            }
          }
        }
      },
      "HierarchyValidationProfile": {
        "type": "object",
        "properties": {
          "validation_profile": {
            "description": "Certificate validation profile.",
            "type": "string",
            "example": "[\"EXPIRED\",\"NO_DIGITAL_SIGNATURE\",\"SHA_1\",\"REVOKED_VIA_CRL\",\"REVOKED_VIA_OCSP\"]"
          }
        }
      },
      "HierarchyComment": {
        "type": "object",
        "properties": {
          "comment": {
            "description": "Text comment about the hierarchy, if applicable.",
            "type": "string",
            "example": "Example comment about the hierarchy"
          }
        }
      },
      "HierarchyListing": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/HierarchyBase"
          },
          {
            "$ref": "#/components/schemas/HierarchyParentId"
          }
        ]
      },
      "HierarchyDetails": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/HierarchyBase"
          },
          {
            "$ref": "#/components/schemas/HierarchyComment"
          },
          {
            "$ref": "#/components/schemas/HierarchyCertificate"
          },
          {
            "$ref": "#/components/schemas/HierarchyValidationProfile"
          }
        ]
      },
      "UserAuthType": {
        "description": "Authentication method.",
        "type": "string",
        "enum": [
          "BASIC",
          "API_TOKEN",
          "INTERNAL"
        ],
        "example": "BASIC"
      },
      "UserBasic": {
        "type": "object",
        "properties": {
          "id": {
            "description": "User ID.",
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "description": "User name.",
            "type": "string",
            "example": "SSM User"
          }
        }
      },
      "UserDetail": {
        "type": "object",
        "properties": {
          "id": {
            "description": "User ID.",
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "description": "User name.",
            "type": "string",
            "example": "SSM User"
          },
          "auth_type": {
            "$ref": "#/components/schemas/UserAuthType"
          }
        }
      },
      "ArrayOfUsers": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/UserDetail"
        }
      },
      "CreateHierarchyRequest": {
        "required": [
          "certificate",
          "hierarchy_type"
        ],
        "type": "object",
        "properties": {
          "name": {
            "description": "Name of the new hierarchy.",
            "minLength": 1,
            "maxLength": 255,
            "pattern": "^[\\p{L}\\p{Nd}_]+$",
            "type": "string",
            "example": "My hierarchy"
          },
          "certificate": {
            "description": "Base64-encoded certificate string.",
            "type": "string",
            "format": "byte",
            "example": "...(Base64-encoded certificate)..."
          },
          "hierarchy_type": {
            "description": "Hierarchy type.",
            "type": "string",
            "enum": [
              "LIMITED",
              "UNLIMITED"
            ],
            "example": "UNLIMITED"
          },
          "validation_profile": {
            "description": "Certificate validation profile.",
            "type": "string",
            "example": "[\"EXPIRED\",\"NO_DIGITAL_SIGNATURE\",\"SHA_1\",\"REVOKED_VIA_CRL\",\"REVOKED_VIA_OCSP\"]"
          },
          "trust_type": {
            "description": "Trust type.",
            "type": "string",
            "enum": [
              "PUBLIC",
              "PRIVATE"
            ],
            "example": "PRIVATE"
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "SigningRequest": {
        "required": [
          "hash",
          "sig_alg"
        ],
        "type": "object",
        "properties": {
          "hash": {
            "description": "The file hash string to sign.",
            "type": "string",
            "format": "byte",
            "example": "eeUnw3ky7+hI7Kawc9NnZ4CCCenu8rDDfV+YTwNutt+JHXX3LZsVRRjBzViDUobR"
          },
          "sig_alg": {
            "description": "The signature algorithm to use to sign the file hash. SHA3- algorithms are only applicable to keypairs stored on DISK.",
            "type": "string",
            "enum": [
              "NONEWithRSA",
              "SHA1WithRSA",
              "SHA224WithRSA",
              "SHA256WithRSA",
              "SHA384WithRSA",
              "SHA512WithRSA",
              "NONEWithECDSA",
              "SHA1WithECDSA",
              "SHA224WithECDSA",
              "SHA256WithECDSA",
              "SHA384WithECDSA",
              "SHA512WithECDSA",
              "ED25519",
              "SHA3-224WithRSA",
              "SHA3-256WithRSA",
              "SHA3-384WithRSA",
              "SHA3-512WithRSA",
              "SHA3-224WithECDSA",
              "SHA3-256WithECDSA",
              "SHA3-384WithECDSA",
              "SHA3-512WithECDSA"
            ]
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "SigningRequestWithParams": {
        "required": [
          "hash",
          "sig_alg"
        ],
        "type": "object",
        "properties": {
          "hash": {
            "description": "The file hash string to sign.",
            "type": "string",
            "format": "byte",
            "example": "eeUnw3ky7+hI7Kawc9NnZ4CCCenu8rDDfV+YTwNutt+JHXX3LZsVRRjBzViDUobR"
          },
          "sig_alg": {
            "description": "The signature algorithm to use to sign the file hash. SHA3- algorithms are only applicable to keypairs stored on DISK.",
            "type": "string",
            "enum": [
              "NONEWithRSA",
              "SHA1WithRSA",
              "SHA224WithRSA",
              "SHA256WithRSA",
              "SHA384WithRSA",
              "SHA512WithRSA",
              "NONEWithECDSA",
              "SHA1WithECDSA",
              "SHA224WithECDSA",
              "SHA256WithECDSA",
              "SHA384WithECDSA",
              "SHA512WithECDSA",
              "ED25519",
              "SHA3-224WithRSA",
              "SHA3-256WithRSA",
              "SHA3-384WithRSA",
              "SHA3-512WithRSA",
              "SHA3-224WithECDSA",
              "SHA3-256WithECDSA",
              "SHA3-384WithECDSA",
              "SHA3-512WithECDSA",
              "NONEwithRSASSA-PSS",
              "SHA1WithRSA/PSS",
              "SHA224WithRSA/PSS",
              "SHA256WithRSA/PSS",
              "SHA384WithRSA/PSS",
              "SHA512WithRSA/PSS",
              "SHA3-224WithRSA/PSS",
              "SHA3-256WithRSA/PSS",
              "SHA3-384WithRSA/PSS",
              "SHA3-512WithRSA/PSS"
            ],
            "example": "SHA3-512WithRSA/PSS"
          },
          "params": {
            "description": "Signature algorithm parameters. Only applicable for performing RSA PSS signatures for keypairs stored on DISK:\n* NONEwithRSASSA-PSS\n* SHA1WithRSA/PSS\n* SHA224WithRSA/PSS\n* SHA256WithRSA/PSS\n* SHA384WithRSA/PSS\n* SHA512WithRSA/PSS\n* SHA3-224WithRSA/PSS\n* SHA3-256WithRSA/PSS\n* SHA3-384WithRSA/PSS\n* SHA3-512WithRSA/PSS\n",
            "type": "object",
            "properties": {
              "mgf1_algorithm": {
                "description": "MGF1 algorithm to use. Allowed MGF1 algorithms depend on the RSA PSS signature algorithm:\n* NONEwithRSASSA-PSS — `SHA-1`, `SHA-224`, `SHA-256`, `SHA-384`, or `SHA-512`\n* SHA1WithRSA/PSS — `SHA-1`\n* SHA224WithRSA/PSS, SHA3-224WithRSA/PSS — `SHA-224`\n* SHA256WithRSA/PSS, SHA3-256WithRSA/PSS — `SHA-256`\n* SHA384WithRSA/PSS, SHA3-384WithRSA/PSS — `SHA-384`\n* SHA512WithRSA/PSS, SHA3-512WithRSA/PSS — `SHA-512`\n",
                "type": "string",
                "example": "SHA-512"
              },
              "salt_length": {
                "description": "Salt length to use. Depends on the MGF1 algorithm and the key size used for RSA PSS signing.\n\nMinimum salt length — `0`\n\nRecommended salt lengths:\n  * SHA-1 — `20`\n  * SHA-224 — `28`\n  * SHA-256 — `32`\n  * SHA-384 — `48`\n  * SHA-384 — `64`\n\nAllowed maximum salt lengths per MGF1 algorithm (key size):\n  * SHA-1 (2048) — `234`\n  * SHA-1 (3072) — `362`\n  * SHA-1 (4096) — `490`\n  * SHA-1 (8192) — `1002`\n  * SHA-224 (2048) — `226`\n  * SHA-224 (3072) — `354`\n  * SHA-224 (4096) — `4821`\n  * SHA-224 (8192) — `994`\n  * SHA-256 (2048) — `222`\n  * SHA-256 (3072) — `350`\n  * SHA-256 (4096) — `478`\n  * SHA-256 (8192) — `990`\n  * SHA-384 (2048) — `206`\n  * SHA-384 (3072) — `334`\n  * SHA-384 (4096) — `462`\n  * SHA-384 (8192) — `974`\n  * SHA-512 (2048) — `190`\n  * SHA-512 (3072) — `318`\n  * SHA-512 (4096) — `446`\n  * SHA-512 (8192) — `958`\n",
                "type": "integer",
                "example": 318
              },
              "non_decorate_signature": {
                "description": "Indicates whether the returned signature should be ASN1-encoded. For ECDSA signatures, \nsetting this to true returns the raw R & S values concatenated, without ASN1 decoration.\n",
                "type": "boolean",
                "example": false
              }
            }
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "BatchSigningRequest": {
        "required": [
          "batch_id",
          "sig_alg",
          "hashes"
        ],
        "type": "object",
        "properties": {
          "batch_id": {
            "description": "A unique identifier for this batch signing operation.",
            "type": "string",
            "example": "batch-2024-001"
          },
          "sig_alg": {
            "description": "The signature algorithm for all file hashes in the batch; SHA3- algorithms are only for DISK-stored keypairs.",
            "type": "string",
            "enum": [
              "NONEWithRSA",
              "SHA1WithRSA",
              "SHA224WithRSA",
              "SHA256WithRSA",
              "SHA384WithRSA",
              "SHA512WithRSA",
              "NONEWithECDSA",
              "SHA1WithECDSA",
              "SHA224WithECDSA",
              "SHA256WithECDSA",
              "SHA384WithECDSA",
              "SHA512WithECDSA",
              "ED25519",
              "SHA3-224WithRSA",
              "SHA3-256WithRSA",
              "SHA3-384WithRSA",
              "SHA3-512WithRSA",
              "SHA3-224WithECDSA",
              "SHA3-256WithECDSA",
              "SHA3-384WithECDSA",
              "SHA3-512WithECDSA",
              "NONEwithRSASSA-PSS",
              "SHA1WithRSA/PSS",
              "SHA224WithRSA/PSS",
              "SHA256WithRSA/PSS",
              "SHA384WithRSA/PSS",
              "SHA512WithRSA/PSS",
              "SHA3-224WithRSA/PSS",
              "SHA3-256WithRSA/PSS",
              "SHA3-384WithRSA/PSS",
              "SHA3-512WithRSA/PSS"
            ],
            "example": "SHA256WithRSA"
          },
          "params": {
            "description": "Parameters for the signature algorithm; applicable only to RSA-PSS signatures with DISK-stored keypairs:\n* NONEwithRSASSA-PSS\n* SHA1WithRSA/PSS\n* SHA224WithRSA/PSS\n* SHA256WithRSA/PSS\n* SHA384WithRSA/PSS\n* SHA512WithRSA/PSS\n* SHA3-224WithRSA/PSS\n* SHA3-256WithRSA/PSS\n* SHA3-384WithRSA/PSS\n* SHA3-512WithRSA/PSS\n",
            "type": "object",
            "properties": {
              "mgf1_algorithm": {
                "description": "MGF1 algorithm to use.",
                "type": "string",
                "example": "SHA-256"
              },
              "salt_length": {
                "description": "Salt length to use.",
                "type": "integer",
                "example": 32
              },
              "non_decorate_signature": {
                "description": "Whether the signature returned needs to be ASN1 encoded. If specified as true, for ECDSA signatures, \nASN1 decoration is not applied and R & S values of the signature are concatenated and returned.\n",
                "type": "boolean",
                "example": false
              }
            }
          },
          "hashes": {
            "description": "Array of hash objects to be signed. Each hash must have a unique ID and a hash value.",
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "object",
              "required": [
                "id",
                "hash"
              ],
              "properties": {
                "id": {
                  "description": "The unique identifier for this hash within the batch.",
                  "type": "string",
                  "format": "uuid",
                  "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
                },
                "hash": {
                  "description": "The file hash string to sign.",
                  "type": "string",
                  "format": "byte",
                  "minLength": 1,
                  "maxLength": 64,
                  "example": "eeUnw3ky7+hI7Kawc9NnZ4CCCenu8rDDfV+YTwNutt+JHXX3LZsVRRjBzViDUobR"
                }
              }
            }
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "BatchSigningResponse": {
        "type": "object",
        "properties": {
          "signatures": {
            "description": "Array of signature objects, one for each hash in the request.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "description": "The unique identifier for this signature.",
                  "type": "string",
                  "example": "3fa85f64-5717-4562-b3fc-2c963f66afa7"
                },
                "hash_id": {
                  "description": "The unique identifier matching the hash ID from the request.",
                  "type": "string",
                  "format": "uuid",
                  "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
                },
                "signature": {
                  "description": "The signature produced when signing the corresponding hash.",
                  "type": "string",
                  "format": "byte",
                  "example": "dGVzdHNpZ25hdHVyZQ=="
                }
              }
            }
          }
        }
      },
      "CertificateGenerateRequest": {
        "type": "object",
        "properties": {
          "certificate_profile": {
            "$ref": "#/components/schemas/CertificateProfileIdResponse"
          },
          "alias": {
            "maxLength": 255,
            "minLength": 1,
            "pattern": "[a-zA-Z0-9-_]+",
            "type": "string",
            "description": "Unique name for the new certificate.",
            "example": "my_new_cert"
          },
          "default_cert": {
            "description": "Whether it should become the default certificate.",
            "type": "boolean",
            "example": false
          },
          "custom_fields": {
            "description": "Array of custom certificate fields.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          },
          "subject_email": {
            "description": "Subject email for the new certificate.",
            "type": "string",
            "example": "address@example.com"
          },
          "organization_units": {
            "description": "Organizational unit for the new certificate.",
            "type": "string",
            "example": "My OU"
          },
          "auto_renew": {
            "description": "Whether certificate auto-renewal is enabled.",
            "type": "boolean"
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "CertificateIdAndAlias": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Certificate ID.",
            "type": "string",
            "format": "uuid"
          },
          "alias": {
            "description": "Certificate name.",
            "type": "string",
            "example": "mycert1"
          }
        }
      },
      "CertificateIdAliasAndStatus": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Certificate ID.",
            "type": "string",
            "format": "uuid"
          },
          "alias": {
            "description": "Certificate name.",
            "type": "string",
            "example": "mycert1"
          },
          "status": {
            "description": "Certificate status.",
            "type": "string",
            "enum": [
              "ACTIVE",
              "SUSPENDED",
              "REVOKED",
              "DELETED",
              "PENDING_APPROVE",
              "EXPIRED",
              "REVOKED",
              "EXPIRED_REVOKED"
            ]
          }
        }
      },
      "CertificateDetailResponse": {
        "description": "Certificate details.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Certificate ID.",
            "type": "string",
            "format": "uuid"
          },
          "alias": {
            "description": "Certificate name.",
            "type": "string",
            "example": "my_cert_1"
          },
          "cert": {
            "description": "Base64-encoded certificate.",
            "type": "string",
            "format": "byte",
            "example": "...(Base64-encoded certificate)..."
          },
          "certificate_fingerprint": {
            "description": "Certificate fingerprint (signature).",
            "type": "string",
            "format": "binary",
            "example": "f+BBb8TTcUx+CxIJ295w73viy1J4c3U7m27QE66ZW00="
          },
          "certificate_status": {
            "description": "Certificate status.",
            "type": "string",
            "enum": [
              "ACTIVE",
              "SUSPENDED",
              "REVOKED",
              "DELETED",
              "PENDING_APPROVE",
              "EXPIRED",
              "REVOKED",
              "EXPIRED_REVOKED"
            ]
          },
          "account": {
            "$ref": "#/components/schemas/AccountBasic"
          },
          "keypair": {
            "$ref": "#/components/schemas/KeypairDetailsBasic"
          },
          "default_cert": {
            "description": "Whether it's the default certificate.",
            "type": "boolean"
          },
          "created_on": {
            "$ref": "#/components/schemas/Date"
          },
          "created_by": {
            "type": "string",
            "format": "uuid"
          },
          "created_by_user": {
            "$ref": "#/components/schemas/UserBasic"
          },
          "modified_on": {
            "$ref": "#/components/schemas/Date"
          },
          "modified_by": {
            "type": "string",
            "format": "uuid"
          },
          "modified_by_user": {
            "$ref": "#/components/schemas/UserBasic"
          },
          "enrollment_method": {
            "type": "string",
            "enum": [
              "IMPORT",
              "CM_GENERATE",
              "CC_GENERATE",
              "SAS_MIGRATED"
            ],
            "example": "CM_GENERATE"
          },
          "hierarchy": {
            "description": "Certificate authority hierarchy.",
            "type": "string",
            "enum": [
              "PRIVATE",
              "PUBLIC"
            ]
          },
          "certificate_profile": {
            "$ref": "#/components/schemas/CertificateProfileIdResponse"
          },
          "organization": {
            "$ref": "#/components/schemas/OrganizationIdResponse"
          },
          "ca": {
            "$ref": "#/components/schemas/CaIdResponse"
          },
          "ca_certificate": {
            "$ref": "#/components/schemas/CaCertificateIdResponse"
          },
          "chain": {
            "$ref": "#/components/schemas/ArrayOfChainCertificatesIntRoot"
          },
          "valid_from": {
            "$ref": "#/components/schemas/Date"
          },
          "valid_to": {
            "$ref": "#/components/schemas/DateFuture"
          },
          "auto_renewal": {
            "description": "Whether auto-renewal is enabled for the certificate.",
            "type": "boolean"
          },
          "rekey": {
            "type": "string",
            "enum": [
              "ENABLED",
              "DISABLED"
            ],
            "description": "Whether re-key is enabled for certificates issued from this profile."
          },
          "rekey_alg": {
            "type": "string",
            "enum": [
              "RSA",
              "ECDSA",
              "EdDSA",
              "MLDSA",
              "SLHDSA"
            ],
            "description": "The algorithm to be applied when a keypair is re-keyed.",
            "example": "RSA"
          },
          "rekey_key_strength": {
            "type": "string",
            "description": "The key strength with respect to the algorithm applied for the re-keyed keypair.",
            "example": 3072
          }
        }
      },
      "CertificateProfileIdResponse": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/UUID"
          }
        }
      },
      "CertificateProfileIdAndName": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Certificate profile ID (UUID).",
            "example": "dc1e352e-08ab-4516-979d-6c0d398bfb39",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Certificate profile name.",
            "example": "Example certificate profile"
          }
        }
      },
      "OrganizationIdResponse": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/UUID"
          }
        }
      },
      "CaIdResponse": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/UUID"
          }
        }
      },
      "CaCertificateIdResponse": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/UUID"
          }
        }
      },
      "Chain": {
        "type": "object",
        "properties": {
          "cert_type": {
            "type": "string",
            "enum": [
              "ROOT",
              "INTERMEDIATE",
              "END_ENTITY"
            ]
          },
          "blob": {
            "type": "string",
            "format": "byte",
            "example": "...(Base64-encoded certificate)..."
          }
        }
      },
      "ArrayOfChainCertificates": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Chain"
        }
      },
      "ArrayOfChainCertificatesIntRoot": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Chain"
        },
        "example": [
          {
            "type": "INTERMEDIATE",
            "blob": "...(Base64-encoded certificate)..."
          },
          {
            "type": "ROOT",
            "blob": "...(Base64-encoded certificate)..."
          }
        ]
      },
      "KeyAlgProperties": {
        "type": "object",
        "properties": {
          "key_size": {
            "description": "Key size for RSA keys.",
            "type": "integer",
            "format": "int32",
            "enum": [
              2048,
              3072,
              4096
            ]
          },
          "curve": {
            "description": "Curve type for ECDSA or EdDSA keys.",
            "type": "string",
            "enum": [
              "P256",
              "P-256",
              "p256",
              "prime256v1",
              "secp256r1",
              "P384",
              "P-384",
              "p384",
              "secp384r1",
              "P521",
              "P-521",
              "p521",
              "secp521r1",
              "Ed25519"
            ]
          }
        }
      },
      "KeypairGenerateRequestDto": {
        "required": [
          "alias",
          "key_alg",
          "key_storage",
          "key_type",
          "properties",
          "status"
        ],
        "type": "object",
        "properties": {
          "alias": {
            "description": "Keypair alias (nickname).",
            "maxLength": 100,
            "minLength": 1,
            "pattern": "[a-zA-Z0-9-_]+",
            "type": "string",
            "example": "my_new_keypair"
          },
          "key_storage": {
            "description": "Keypair storage location.",
            "type": "string",
            "enum": [
              "DISK",
              "HSM"
            ]
          },
          "key_type": {
            "description": "Keypair type.",
            "type": "string",
            "enum": [
              "PRODUCTION",
              "TEST"
            ]
          },
          "key_alg": {
            "description": "Keypair algorithm.",
            "type": "string",
            "enum": [
              "RSA",
              "ECDSA",
              "EdDSA"
            ]
          },
          "properties": {
            "$ref": "#/components/schemas/KeyAlgProperties"
          },
          "profile_id": {
            "description": "Profile ID, if applicable.",
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "description": "Keypair status.",
            "type": "string",
            "enum": [
              "ONLINE",
              "OFFLINE"
            ]
          },
          "key_modal_type": {
            "description": "Keypair modal type.",
            "type": "string",
            "enum": [
              "STATIC",
              "DYNAMIC",
              "ROTATION"
            ]
          },
          "expiry_type": {
            "description": "Expiry type for the keypair.",
            "type": "string",
            "enum": [
              "NO_EXPIRY",
              "ON_SPECIFIC_DATE",
              "ON_CERTIFICATE_EXPIRY"
            ]
          },
          "expire_on": {
            "description": "Expiry date & time(in UTC) for the keypair.",
            "type": "string",
            "format": "date-time"
          },
          "generate_certificate": {
            "description": "Whether to generate a certificate from the keypair.",
            "type": "boolean"
          },
          "certificate_generate_request": {
            "$ref": "#/components/schemas/CertificateGenerateRequest"
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "KeyProfileIdAndName": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Key profile ID (UUID).",
            "example": "dc1e352e-08ab-4516-979d-6c0d398bfb39",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "description": "Key profile name.",
            "example": "Example key profile"
          }
        }
      },
      "UserIdList": {
        "type": "object",
        "properties": {
          "user_id": {
            "description": "User account ID (name + email).",
            "type": "string",
            "example": "example_account <address@example.com>"
          },
          "name": {
            "description": "User account name.",
            "type": "string",
            "example": "example_account"
          },
          "comment": {
            "description": "Text comment about the user.",
            "type": "string",
            "example": "Example comment about user"
          },
          "email": {
            "description": "User account email.",
            "type": "string",
            "example": "address@example.com"
          },
          "primary": {
            "description": "Whether this is the primary user for the GPG keypair.",
            "type": "boolean",
            "example": true
          }
        }
      },
      "GPGKeypairGenerateRequest": {
        "required": [
          "alias",
          "key_alg",
          "key_storage",
          "key_type",
          "alg_properties",
          "status"
        ],
        "type": "object",
        "properties": {
          "alias": {
            "description": "Unique name for the GPG keypair.",
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "pattern": "[a-zA-Z0-9-_]+",
            "example": "my-gpg-keypair-1"
          },
          "user_id_list": {
            "description": "For GPG master keys, array of user accounts who can access the keypair.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserIdList"
            }
          },
          "key_storage": {
            "description": "GPG keypair storage location.",
            "type": "string",
            "enum": [
              "DISK",
              "HSM"
            ]
          },
          "key_type": {
            "description": "GPG keypair type.",
            "type": "string",
            "enum": [
              "PRODUCTION",
              "TEST"
            ]
          },
          "key_alg": {
            "description": "GPG keypair algorithm.",
            "type": "string",
            "enum": [
              "RSA",
              "ECDSA",
              "EdDSA"
            ]
          },
          "alg_properties": {
            "$ref": "#/components/schemas/KeyAlgProperties"
          },
          "status": {
            "description": "GPG keypair status.",
            "type": "string",
            "enum": [
              "ONLINE",
              "OFFLINE"
            ]
          },
          "master_key_id": {
            "description": "ID of the master key, if applicable.",
            "type": "string",
            "format": "uuid"
          },
          "can_sign": {
            "description": "Whether the GPG keypair can be used to sign code. `false` denotes a GPG master key, which is not used for file hash signing.",
            "type": "boolean",
            "default": false,
            "example": true
          },
          "limit_access": {
            "description": "Whether to limit access to the GPG keypair.",
            "type": "boolean",
            "default": false,
            "example": true
          },
          "team_id": {
            "description": "ID of the team that controls the GPG keypair.",
            "type": "string",
            "format": "uuid"
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          },
          "expiry_type": {
            "description": "Expiry type for the keypair.",
            "type": "string",
            "enum": [
              "NO_EXPIRY",
              "ON_SPECIFIC_DATE"
            ]
          },
          "expire_on": {
            "description": "Expiry date & time(in UTC) for the keypair.",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "GPGKeypairUpdateRequest": {
        "type": "object",
        "properties": {
          "alias": {
            "description": "Unique name for the GPG keypair.",
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "pattern": "[a-zA-Z0-9-_]+",
            "example": "my-gpg-keypair-1"
          },
          "user_id_list": {
            "description": "For GPG master keys, array of user accounts who can access the keypair.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserIdList"
            }
          },
          "status": {
            "description": "GPG keypair status.",
            "type": "string",
            "enum": [
              "ONLINE",
              "OFFLINE",
              "DELETED",
              "EXPIRED",
              "REVOKED"
            ]
          },
          "can_sign": {
            "description": "Whether the GPG keypair can be used to sign code. `false` denotes a GPG master key, which is not used for file hash signing.",
            "type": "boolean",
            "default": false,
            "example": true
          },
          "limit_access": {
            "description": "Whether to limit access to the GPG keypair.",
            "type": "boolean",
            "default": false,
            "example": true
          },
          "team_id": {
            "description": "ID of the team to assign the GPG keypair to.",
            "type": "string",
            "format": "uuid"
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          },
          "expiry_type": {
            "description": "Expiry type for the keypair.",
            "type": "string",
            "enum": [
              "NO_EXPIRY",
              "ON_SPECIFIC_DATE"
            ]
          },
          "expire_on": {
            "description": "Expiry date & time(in UTC) for the keypair.",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "GPGKeypairSuspendRequest": {
        "type": "object",
        "properties": {
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "GPGKeypairRevokeRequest": {
        "type": "object",
        "required": [
          "revocation_type"
        ],
        "properties": {
          "revocation_type": {
            "description": "Type of GPG keypair revocation.",
            "type": "string",
            "enum": [
              "KEY_COMPROMISED",
              "KEY_RETIRED",
              "KEY_SUPERSEDED",
              "NO_REASON",
              "USER_NO_LONGER_VALID"
            ],
            "example": "KEY_COMPROMISED"
          },
          "reason": {
            "description": "GPG keypair revocation reason.",
            "type": "string",
            "example": "Reported compromise"
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "KeypairImportRequestDto": {
        "required": [
          "alias",
          "key_alg",
          "private_key"
        ],
        "type": "object",
        "properties": {
          "alias": {
            "description": "Unique name for the keypair.",
            "maxLength": 255,
            "minLength": 1,
            "pattern": "[a-zA-Z0-9-_]+",
            "type": "string",
            "example": "my_keypair"
          },
          "private_key": {
            "description": "Encoded private key string.",
            "type": "string",
            "format": "byte",
            "example": "MKJF6CDCBBKCIYEAsNhKyZLQ=="
          },
          "passphrase": {
            "description": "Passphrase for the keypair.",
            "type": "string",
            "example": ""
          },
          "key_alg": {
            "description": "Keypair algorithm.",
            "type": "string",
            "enum": [
              "RSA",
              "ECDSA",
              "EdDSA"
            ]
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "KeypairHsmImportRequestDto": {
        "required": [
          "alias",
          "key_alg"
        ],
        "type": "object",
        "properties": {
          "alias": {
            "description": "Unique name for the keypair.",
            "maxLength": 255,
            "minLength": 1,
            "pattern": "[a-zA-Z0-9-_]+",
            "type": "string",
            "example": "my_keypair"
          },
          "hsm_key_label": {
            "description": "The label of the private key on the HSM.",
            "type": "string",
            "example": "my_hsm_key"
          },
          "public_key": {
            "description": "Base64 encoded public key of the keypair.",
            "type": "string",
            "format": "byte",
            "example": "MKJF6CDCBBKCIYEAsNhKyZLQ=="
          },
          "key_alg": {
            "description": "Keypair algorithm.",
            "type": "string",
            "enum": [
              "RSA",
              "ECDSA",
              "EdDSA"
            ]
          },
          "status": {
            "description": "Status of the keypair.",
            "type": "string",
            "default": "OFFLINE",
            "enum": [
              "ONLINE",
              "OFFLINE"
            ]
          },
          "key_type": {
            "description": "Type of the keypair.",
            "type": "string",
            "default": "PRODUCTION",
            "enum": [
              "PRODUCTION",
              "TEST"
            ]
          },
          "hsm_partition_id": {
            "description": "ID of the HSM partition on which the key resides.",
            "type": "string",
            "example": "3D42C433B0E223249E53A052CDBAA995"
          },
          "expiry_type": {
            "description": "The expiry type of the keypair.",
            "type": "string",
            "default": "NO_EXPIRY",
            "enum": [
              "NO_EXPIRY",
              "ON_CERTIFICATE_EXPIRY",
              "ON_SPECIFIC_DATE"
            ]
          },
          "expire_on": {
            "description": "Expiry date & time(in UTC) for the keypair.",
            "type": "string",
            "format": "date-time",
            "example": null
          },
          "users": {
            "description": "Array of users who can access the keypair.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserDetail"
            }
          },
          "groups": {
            "description": "Array of group IDs to grant access to the keypair.",
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "team_id": {
            "description": "The ID of the team to which the keypair should be mapped.",
            "type": "string",
            "format": "uuid"
          },
          "limited": {
            "description": "Flag to indicate whether the keypair is open for all or limited to certain users/groups/team.",
            "type": "boolean",
            "example": true
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "ApiKey": {
        "type": "object",
        "properties": {
          "id": {
            "description": "API key ID.",
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "description": "API key name.",
            "type": "string",
            "example": "my_api_key_1"
          }
        }
      },
      "AuthMethods": {
        "type": "object",
        "properties": {
          "type": {
            "description": "Array of authentication types.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "BASIC",
                "API_TOKEN",
                "INTERNAL"
              ]
            }
          },
          "api_key": {
            "$ref": "#/components/schemas/ApiKey"
          },
          "client_auth": {
            "$ref": "#/components/schemas/ClientAuth"
          },
          "http_basic": {
            "$ref": "#/components/schemas/HttpBasic"
          }
        }
      },
      "ClientAuth": {
        "type": "object",
        "properties": {
          "certificate": {
            "description": "Client authentication certificate.",
            "type": "string",
            "example": "...(Base64-encoded certificate)..."
          },
          "thumbprint": {
            "description": "Certificate thumbprint.",
            "type": "string",
            "example": "...(certificate thumbprint string)..."
          }
        }
      },
      "HttpBasic": {
        "type": "object",
        "properties": {
          "password": {
            "description": "Password for HTTP authentication.",
            "type": "string",
            "example": "mYpA$$w0rD"
          }
        }
      },
      "UpdateKeypairRequest": {
        "type": "object",
        "properties": {
          "alias": {
            "description": "Keypair alias (nickname).",
            "maxLength": 255,
            "minLength": 1,
            "pattern": "[a-zA-Z0-9-_]*",
            "type": "string"
          },
          "default_certificate_id": {
            "description": "ID of the default certificate.",
            "type": "string",
            "format": "uuid"
          },
          "limit_by_users": {
            "description": "Whether to limit keypair access to specific users.",
            "type": "boolean",
            "example": true
          },
          "users": {
            "description": "Array of users allowed to access the keypair.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/User"
            }
          },
          "key_status": {
            "description": "Keypair status.",
            "type": "string",
            "enum": [
              "ONLINE",
              "OFFLINE"
            ]
          },
          "expiry_type": {
            "description": "Expiry type for the keypair.",
            "type": "string",
            "enum": [
              "NO_EXPIRY",
              "ON_SPECIFIC_DATE",
              "ON_CERTIFICATE_EXPIRY"
            ]
          },
          "expire_on": {
            "description": "Expiry date & time(in UTC) for the keypair.",
            "type": "string",
            "format": "date-time"
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "User": {
        "type": "object",
        "properties": {
          "id": {
            "description": "User ID.",
            "type": "string",
            "format": "uuid",
            "example": "dd9d99f1-88d1-5151-6262-2f1d839709ef"
          },
          "first_name": {
            "description": "User's first name.",
            "type": "string",
            "example": "Jane"
          },
          "last_name": {
            "description": "User's last name.",
            "type": "string",
            "example": "Doe"
          },
          "user_name": {
            "description": "User's username.",
            "type": "string",
            "example": "jane.doe.1"
          },
          "email": {
            "description": "User's email address.",
            "type": "string",
            "example": "jane.doe@example.com"
          },
          "access_scope": {
            "description": "User's access scope.",
            "type": "string",
            "enum": [
              "SYSTEM",
              "ACCOUNT",
              "GUEST"
            ],
            "example": "ACCOUNT"
          },
          "active": {
            "description": "Whether the user account is active.",
            "type": "boolean"
          },
          "auth_type": {
            "$ref": "#/components/schemas/UserAuthType"
          },
          "primary_account_id": {
            "description": "ID of user's primary account.",
            "type": "string",
            "format": "uuid",
            "example": "dd9d99f1-88d1-5151-6262-2f1d839709ef"
          },
          "multi_factor_auth": {
            "description": "Whether multifactor authentication is enabled.",
            "type": "boolean"
          },
          "auth_methods": {
            "$ref": "#/components/schemas/AuthMethods"
          },
          "principal_type": {
            "description": "User's principal type.",
            "type": "string",
            "example": "user_principal_type_string"
          },
          "client_ip": {
            "description": "User's client IP.",
            "type": "string",
            "example": "211.22.33.44"
          },
          "client_type": {
            "description": "User's client type.",
            "type": "string",
            "example": "SigningManager-PKCS11/1.31.0 (linux; amd64)"
          }
        }
      },
      "CertificateImportRequest": {
        "type": "object",
        "properties": {
          "certificate": {
            "$ref": "#/components/schemas/CertificateRequestDetail"
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "CertificateRequestDetail": {
        "required": [
          "cert"
        ],
        "type": "object",
        "properties": {
          "alias": {
            "description": "Unique name for the certificate.",
            "maxLength": 255,
            "minLength": 1,
            "pattern": "[a-zA-Z0-9-_]+",
            "type": "string",
            "example": "my_cert_1"
          },
          "cert": {
            "description": "Array with the certificate body string.",
            "type": "array",
            "items": {
              "type": "string",
              "format": "byte"
            }
          },
          "default_cert": {
            "description": "Whether it should become the default certificate.",
            "type": "boolean",
            "example": false
          }
        }
      },
      "ExportKeypairRequest": {
        "required": [
          "keypair_id"
        ],
        "type": "object",
        "properties": {
          "keypair_id": {
            "description": "ID of the keypair to export.",
            "type": "string",
            "format": "uuid"
          },
          "admin_id": {
            "description": "Array of admin user IDs to request approval from.",
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "all_admins": {
            "description": "Whether to request approval from _all_ admins instead of specific admin IDs.",
            "type": "boolean",
            "example": false
          },
          "comments": {
            "description": "Text comments about the keypair export request.",
            "type": "string",
            "example": "Please approve export of the keypair"
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "ExportKeypairRequestDetails": {
        "type": "object",
        "properties": {
          "keypair_id": {
            "description": "ID of the keypair in the export request.",
            "type": "string",
            "format": "uuid"
          },
          "admin_id": {
            "description": "Array of admin user IDs that export approval was requested from.",
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "all_admins": {
            "description": "Whether export approval was requested from _all_ admins instead of specific admin IDs.",
            "type": "boolean",
            "example": false
          },
          "comments": {
            "description": "Text comments about the keypair export request.",
            "type": "string",
            "example": "Please approve export of the keypair"
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "ExportKeyDecisionRequest": {
        "type": "object",
        "properties": {
          "approved": {
            "description": "Set to `true` to approve the keypair export request or `false` to reject it.",
            "type": "boolean",
            "example": true
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "ExportKeyDownloadRequest": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string"
          }
        }
      },
      "ExportKeyDownloadResponse": {
        "type": "object",
        "properties": {
          "account": {
            "$ref": "#/components/schemas/Account"
          },
          "keypair": {
            "$ref": "#/components/schemas/KeypairResponse"
          },
          "private_key": {
            "description": "Base64-encoded private key.",
            "type": "string",
            "format": "byte",
            "example": "...(Base64-encoded private key)..."
          }
        }
      },
      "ExportSecringDownloadRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "description": "Account ID.",
                "example": "ed7099a0-033f-4220-8769-eaaecaae43a7"
              }
            }
          }
        }
      },
      "ExportSecringDownloadResponse": {
        "type": "object",
        "properties": {
          "armored_secret_key_ring": {
            "type": "string",
            "description": "ASCII-armored secret keyring.",
            "format": "byte",
            "example": "-----BEGIN PGP PRIVATE KEY BLOCK-----...(ASCII-armored secret keyring)...-----END PGP PRIVATE KEY BLOCK-----\r\n"
          },
          "password": {
            "type": "string",
            "description": "Password for the exported secret keyring."
          },
          "file_name": {
            "type": "string",
            "description": "Filename of the exported secret keyring.",
            "example": "MasterKey001SecretKeyRing.asc"
          }
        }
      },
      "ExportSecringRequest": {
        "required": [
          "master_keypair_id"
        ],
        "type": "object",
        "properties": {
          "master_keypair_id": {
            "description": "ID of the master keypair for the secret keyring to export.",
            "type": "string",
            "format": "uuid"
          },
          "admin_id": {
            "description": "Array of admin user IDs to request approval from.",
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "all_admins": {
            "description": "Whether to request approval from _all_ admins instead of specific admin IDs.",
            "type": "boolean",
            "example": false
          },
          "comments": {
            "description": "Text comments about the secret keyring export request.",
            "type": "string",
            "example": "Please approve export of the keypair"
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "ExportSecringRequestDetails": {
        "type": "object",
        "properties": {
          "master_keypair_name": {
            "description": "Name of the master keypair in the export request.",
            "type": "string",
            "example": "MasterKey001"
          },
          "requester_name": {
            "description": "Name of the individual that requested the export.",
            "type": "string",
            "example": "John Doe"
          },
          "requested_date": {
            "description": "Date and time the request was created. Format: UTC timezone and ISO 8601 format.\n",
            "type": "string",
            "format": "date-time",
            "example": "2022-12-26T10:11:50"
          }
        }
      },
      "ExportStandardKeyDownloadResponse": {
        "type": "object",
        "properties": {
          "private_key_file": {
            "type": "string",
            "description": "Base64-encoded keypair file.",
            "format": "byte",
            "example": "<base64-encoded keypair>"
          },
          "password": {
            "type": "string",
            "description": "Password for the exported keypair."
          },
          "file_name": {
            "type": "string",
            "description": "Filename of the exported keypair.",
            "example": "Keypair001.pem"
          }
        }
      },
      "ImportGPGSecretKeyringResponse": {
        "type": "object",
        "properties": {
          "master_key_pair": {
            "$ref": "#/components/schemas/GPGKeypairDetails"
          },
          "sub_key_pair_list": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GPGKeypairDetails"
            }
          }
        }
      },
      "GPGKeypairDetails": {
        "type": "object",
        "description": "Object with keypair details.",
        "properties": {
          "finger_print": {
            "type": "string",
            "description": "Keypair fingerprint.",
            "example": "D9AB9B1DD68F55E13D7FA3734C30A440C7F99999"
          },
          "can_authenticate": {
            "type": "boolean",
            "description": "If true, the keypair is capable of authentication. Otherwise, false."
          },
          "can_sign": {
            "type": "boolean",
            "description": "If true, the keypair is capable of signing. Otherwise, false."
          },
          "can_encrypt": {
            "type": "boolean",
            "description": "If true, the keypair is capable of encryption. Otherwise, false."
          },
          "can_certify": {
            "type": "boolean",
            "description": "If true, the keypair is capable of certification. Otherwise, false."
          },
          "key_created_on": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the keypair was created. Format: UTC timezone and ISO 8601 format.\n"
          },
          "expire_on": {
            "type": "string",
            "format": "date-time",
            "description": "Date and time the keypair expires. Format: UTC timezone and ISO 8601 format.\n"
          },
          "algorithm": {
            "type": "string",
            "description": "Keypair algorithm.",
            "enum": [
              "RSA",
              "ECDSA",
              "EdDSA"
            ]
          },
          "key_size": {
            "description": "Key size for RSA keys. Returns `0` if `algorithm` is `ECDSA` or `EdDSA`, or if DigiCert ONE does not support the key size.",
            "type": "string",
            "enum": [
              2048,
              3072,
              4096
            ]
          },
          "key_curve": {
            "type": "string",
            "description": "Curve type for ECDSA or EdDSA keys. Returns `null` if `algorithm` is `RSA`, or if DigiCert ONE does not support the curve.",
            "enum": [
              "P256",
              "P-256",
              "p256",
              "prime256v1",
              "secp256r1",
              "P384",
              "P-384",
              "p384",
              "secp384r1",
              "P521",
              "P-521",
              "p521",
              "secp521r1",
              "Ed25519"
            ]
          },
          "status": {
            "type": "string",
            "description": "Keypair status.",
            "enum": [
              "ONLINE",
              "OFFLINE"
            ]
          },
          "invalid_reason_list": {
            "type": "array",
            "description": "List of reasons the keypair is not valid for use with DigiCert ONE. Returns an empty array (`[]`) if the keypair is valid.",
            "items": {
              "type": "string",
              "enum": [
                "SSM_SUPPORTED_PERMISSION_NOT_FOUND",
                "GPG_INVALID_USER_ID",
                "GPG_KEY_CURVE_NOT_SUPPORTED",
                "GPG_KEY_PAIR_ALGORITHM_NOT_SUPPORTED",
                "GPG_KEY_PAIR_EXPIRED",
                "GPG_KEY_PAIR_REVOKED",
                "GPG_KEY_SIZE_NOT_SUPPORTED",
                "GPG_PRIVATE_KEY_EMPTY"
              ]
            }
          },
          "user_id_list": {
            "type": "array",
            "description": "Array of user IDs associated with the master key. Only returned for the GPG master keypair.",
            "items": {
              "$ref": "#/components/schemas/UserIdList"
            }
          },
          "valid_key": {
            "type": "boolean",
            "description": "If true, the keypair is valid for use with DigiCert ONE. Otherwise, false. To see reasons a keypair is invalid, check the `invalid_reason_list` array.\n"
          }
        }
      },
      "SaveImportedGPGKeypairsRequest": {
        "type": "object",
        "properties": {
          "master_key_pair": {
            "type": "object",
            "description": "Alias and fingerprint of the master keypair to save.",
            "properties": {
              "finger_print": {
                "example": "D9AB9B1DD68F55E13D7FA3734C30A440C7F99999",
                "type": "string",
                "description": "Keypair fingerprint."
              },
              "alias": {
                "example": "ImportedMasterKey001",
                "type": "string",
                "description": "Keypair alias."
              }
            }
          },
          "sub_key_pair_list": {
            "type": "array",
            "description": "List of objects with fingerprint and alias for each sub keypair to save.",
            "items": {
              "type": "object",
              "properties": {
                "finger_print": {
                  "example": "D9AB9B1DD68F55E13D7FA3734C30A440C7F99999",
                  "type": "string",
                  "description": "Keypair fingerprint."
                },
                "alias": {
                  "example": "ImportedSubKey001",
                  "type": "string",
                  "description": "Keypair alias."
                }
              }
            }
          }
        }
      },
      "UpdateAccessManagementRequest": {
        "type": "object",
        "properties": {
          "users": {
            "description": "Array of user IDs to grant access to the keypair.",
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "groups": {
            "description": "Array of group IDs to grant access to the keypair.",
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "limited": {
            "description": "Whether keypair access should be limited to the specified users and/or groups.",
            "type": "boolean"
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "KeyRotationListing": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Key rotation ID.",
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "description": "Key rotation name.",
            "type": "string",
            "example": "my_key_rotation_1"
          },
          "status": {
            "description": "Key rotation status.",
            "type": "string",
            "enum": [
              "ACTIVE",
              "DISABLED",
              "DELETED"
            ]
          },
          "limited": {
            "description": "Whether key rotation access is limited to specific users and/or groups.",
            "type": "boolean"
          },
          "account": {
            "$ref": "#/components/schemas/AccountIdAndName"
          },
          "created_by_user": {
            "$ref": "#/components/schemas/UserBasic"
          },
          "modified_by_user": {
            "$ref": "#/components/schemas/UserBasic"
          },
          "created_on": {
            "description": "Date and time the keypair profile was created.",
            "type": "string",
            "format": "date-time"
          },
          "modified_on": {
            "description": "Date and time the keypair profile was last modified.",
            "type": "string",
            "format": "date-time"
          },
          "users": {
            "description": "Array of users with access to the key rotation.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserBasic"
            }
          },
          "user_groups": {
            "description": "Array of user groups with access to the key rotation.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserGroupBasic"
            }
          }
        }
      },
      "KeyRotationDetails": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Key rotation ID.",
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "description": "Key rotation name.",
            "type": "string",
            "example": "my_key_rotation_1"
          },
          "rotation_frequency": {
            "description": "Interval of key rotation.",
            "type": "integer",
            "format": "int32",
            "example": 7
          },
          "status": {
            "description": "Key rotation status.",
            "type": "string",
            "enum": [
              "ACTIVE",
              "DISABLED",
              "DELETED"
            ]
          },
          "keypair_status": {
            "description": "Keypair status.",
            "type": "string",
            "enum": [
              "ONLINE",
              "OFFLINE",
              "ACTIVE",
              "SUSPENDED",
              "PENDING",
              "DELETED",
              "PENDING_APPROVE",
              "EXPIRED"
            ]
          },
          "active_keypair_id": {
            "description": "Most recent active keypair ID.",
            "type": "string",
            "format": "uuid"
          },
          "limited": {
            "description": "Whether key rotation access is limited.",
            "type": "boolean"
          },
          "account": {
            "$ref": "#/components/schemas/AccountIdAndName"
          },
          "created_by_user": {
            "$ref": "#/components/schemas/UserBasic"
          },
          "modified_by_user": {
            "$ref": "#/components/schemas/UserBasic"
          },
          "created_on": {
            "description": "Date and time the key rotation was created.",
            "type": "string",
            "format": "date-time"
          },
          "modified_on": {
            "description": "Date and time the key rotation was last modified.",
            "type": "string",
            "format": "date-time"
          },
          "keypairs": {
            "description": "Array of keypair objects included in the rotation.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KeypairInfoAndCertSummary"
            }
          },
          "users": {
            "description": "Array of users who can access the key rotation.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserBasic"
            }
          },
          "user_groups": {
            "description": "Array of user groups who can access the key rotation.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserGroupBasic"
            }
          },
          "team": {
            "$ref": "#/components/schemas/TeamIdAndName"
          }
        }
      },
      "KeyRotationRequest": {
        "required": [
          "name",
          "keypair_ids",
          "rotation_frequency"
        ],
        "type": "object",
        "properties": {
          "name": {
            "description": "Unique name for the key rotation.",
            "maxLength": 100,
            "minLength": 1,
            "pattern": "[a-zA-Z0-9-_]+",
            "type": "string",
            "example": "my_key_rotation_1"
          },
          "keypair_ids": {
            "description": "Array of keypair IDs to include in the key rotation.",
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "rotation_frequency": {
            "description": "Interval of key rotation.",
            "type": "integer",
            "format": "int32",
            "example": 7
          },
          "status": {
            "description": "Key rotation status.",
            "type": "string",
            "enum": [
              "ACTIVE",
              "DISABLED",
              "DELETED"
            ]
          },
          "keypair_status": {
            "description": "Keypair status.",
            "type": "string",
            "enum": [
              "ONLINE",
              "OFFLINE",
              "ACTIVE",
              "SUSPENDED",
              "PENDING",
              "DELETED",
              "PENDING_APPROVE",
              "EXPIRED"
            ]
          },
          "limited": {
            "description": "Whether to limit access to the key rotation.",
            "type": "boolean"
          },
          "users": {
            "description": "Array of user IDs with access to the key rotation.",
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "groups": {
            "description": "Array of group IDs with access to the key rotation.",
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "team_id": {
            "description": "Team ID with access to the key rotation.",
            "type": "string",
            "format": "uuid"
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "ReleaseWindowComparisonDetails": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Release window comparison ID.",
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "description": "Release window comparison name.",
            "type": "string",
            "example": "my_release_window_comparison"
          },
          "comparison_threshold_achieved": {
            "description": "Whether the comparison threshold has been achieved.",
            "type": "boolean"
          },
          "indecisive_comparison": {
            "description": "Whether the comparison is indecisive.",
            "type": "boolean",
            "example": false
          },
          "comparison_threshold": {
            "description": "The comparison threshold.",
            "type": "integer",
            "example": 2
          },
          "release_window_hash": {
            "description": "Array of release window hashes.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReleaseWindowHash"
            }
          },
          "release_window_match_list": {
            "description": "Array of matching release windows.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReleaseWindowBasic"
            }
          },
          "release_window_un_match_list": {
            "description": "Array of non-matching release windows.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReleaseWindowBasicNotMatched"
            }
          },
          "release_window_comparison_list": {
            "description": "Array of release window comparison IDs.",
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "created_on": {
            "description": "Date and time the release window comparison was created.",
            "type": "string",
            "format": "date-time"
          },
          "created_by_user": {
            "$ref": "#/components/schemas/UserBasic"
          },
          "modified_on": {
            "description": "Date and time the release window comparison was last modified.",
            "type": "string",
            "format": "date-time"
          },
          "modified_by_user": {
            "$ref": "#/components/schemas/UserBasic"
          },
          "account": {
            "$ref": "#/components/schemas/AccountIdAndName"
          }
        }
      },
      "ReleaseWindowHash": {
        "type": "object",
        "properties": {
          "release_window_id": {
            "description": "Release window ID.",
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "description": "Release window name.",
            "type": "string",
            "example": "my-release-window-1"
          },
          "status": {
            "description": "Release window status.",
            "type": "string",
            "enum": [
              "APPROVED",
              "PENDING",
              "REJECTED",
              "ACTIVE",
              "COMPLETED",
              "EXPIRED",
              "BASELINE",
              "FAILED"
            ],
            "example": "COMPLETED"
          },
          "account": {
            "$ref": "#/components/schemas/Account"
          },
          "present_in_match_list": {
            "description": "Array of matching release window hashes.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReleaseWindowHashListing"
            }
          },
          "not_present_in_match_list": {
            "description": "Array of non-matching release window hashes.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReleaseWindowHashListingNotMatched"
            }
          },
          "match": {
            "description": "Whether there was a match.",
            "type": "boolean"
          }
        }
      },
      "ReleaseWindowBasic": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Release window ID.",
            "type": "string",
            "format": "uuid",
            "example": "5522ca39-93c6-44bd-c88e-d74769f09911"
          },
          "name": {
            "description": "Release window name.",
            "type": "string",
            "example": "matching-release-1"
          },
          "version": {
            "description": "Release window version.",
            "type": "string",
            "example": 1
          }
        }
      },
      "ReleaseWindowBasicNotMatched": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Release window ID.",
            "type": "string",
            "format": "uuid",
            "example": "4433ca39-93c6-55bd-b75f-a74769f06824"
          },
          "name": {
            "description": "Release window name.",
            "type": "string",
            "example": "non-matching-release-1"
          }
        }
      },
      "ReleaseWindowHashListing": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Release window ID.",
            "type": "string",
            "format": "uuid",
            "example": "5522ca39-93c6-44bd-c88e-d74769f09911"
          },
          "unsigned_hash": {
            "description": "Unsigned hash of release window.",
            "type": "string",
            "example": "/mUUIXg0bZXZZoZCAHcB2io1fCb9+hbKJpE/1rPP9+Q="
          }
        }
      },
      "ReleaseWindowHashListingNotMatched": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Release window ID.",
            "type": "string",
            "format": "uuid",
            "example": "4433ca39-93c6-55bd-b75f-a74769f06824"
          },
          "unsigned_hash": {
            "description": "Unsigned hash of release window.",
            "type": "string",
            "example": "mZ1k7cc2g4Y3c44Xespfpnk1ZdbcCywGGZKnmdbM9/Q="
          }
        }
      },
      "ReleaseWindowCompareRequest": {
        "required": [
          "release_window_id",
          "name"
        ],
        "type": "object",
        "properties": {
          "release_window_id": {
            "description": "Array of release window IDs to include in the comparison.",
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            },
            "example": [
              "5522ca39-93c6-44bd-c88e-d74769f09911",
              "4433ca39-93c6-55bd-b75f-a74769f06824"
            ]
          },
          "name": {
            "description": "Unique name for the release window comparison.",
            "maxLength": 255,
            "minLength": 1,
            "pattern": "[a-zA-Z0-9-_]+",
            "type": "string",
            "example": "my_release_window_comparison"
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "ReleaseWindowComparisonSearchParams": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "accountId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "created_on": {
            "type": "string",
            "format": "date-time"
          },
          "created_by": {
            "type": "string"
          },
          "modified_on": {
            "type": "string",
            "format": "date-time"
          },
          "modified_by": {
            "type": "string"
          }
        }
      },
      "BaselineReleaseWindowEntityView": {
        "description": "Object with baseline release window details, if applicable. Omitted if none.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Baseline release window ID.",
            "type": "string",
            "format": "uuid"
          },
          "account": {
            "$ref": "#/components/schemas/Account"
          },
          "name": {
            "description": "Baseline release window name.",
            "type": "string",
            "example": "baseline-release-window-1"
          },
          "version": {
            "type": "string",
            "example": "1.0.0"
          },
          "status": {
            "description": "Baseline release window status.",
            "type": "string",
            "enum": [
              "APPROVED",
              "PENDING",
              "REJECTED",
              "ACTIVE",
              "COMPLETED",
              "EXPIRED",
              "BASELINE",
              "FAILED"
            ]
          },
          "unsigned_hashes": {
            "description": "Array of unsigned hashes, if applicable. Omitted if none.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SignatureReleaseWindowEntityView"
            }
          }
        }
      },
      "Date": {
        "type": "string",
        "format": "date-time",
        "description": "Date and time.",
        "example": "2022-10-20T08:30:00Z"
      },
      "DateExpiry": {
        "description": "When the record will expire.",
        "type": "string",
        "format": "date-time",
        "example": "2025-10-20T08:30:00Z"
      },
      "DateFuture": {
        "type": "string",
        "format": "date-time",
        "description": "Future date and time.",
        "example": "2025-10-20T08:30:00Z"
      },
      "CSRGenerateRequest": {
        "type": "object",
        "properties": {
          "email_id": {
            "description": "Email address for the CSR.",
            "type": "string",
            "example": "address@example.com"
          },
          "organization_units": {
            "description": "Array of organization units (OU) for the CSR.",
            "type": "array",
            "items": {
              "type": "string",
              "example": "My OU"
            }
          },
          "organization_id": {
            "description": "Organization ID.",
            "type": "string",
            "format": "uuid"
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "CSRGenerateResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "csr_data": {
            "type": "string",
            "format": "binary"
          }
        }
      },
      "KeypairInfoResponse": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Keypair ID.",
            "type": "string",
            "format": "uuid"
          },
          "alias": {
            "description": "Keypair name.",
            "type": "string",
            "example": "my_keypair"
          }
        }
      },
      "KeypairInfoAndCertSummary": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Keypair ID.",
            "type": "string",
            "format": "uuid"
          },
          "alias": {
            "description": "Keypair name.",
            "type": "string",
            "example": "my_keypair"
          },
          "certificate": {
            "$ref": "#/components/schemas/CertificateIdAliasAndStatus"
          }
        }
      },
      "KeypairInfoAndCertBasic": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Keypair ID.",
            "type": "string",
            "format": "uuid"
          },
          "alias": {
            "description": "Keypair name.",
            "type": "string",
            "example": "my_keypair"
          },
          "certificate": {
            "$ref": "#/components/schemas/CertificateIdAndAlias"
          }
        }
      },
      "KeypairDetails": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Keypair ID.",
            "type": "string",
            "format": "uuid"
          },
          "alias": {
            "description": "Keypair nickname.",
            "type": "string",
            "example": "my_keypair"
          },
          "limit_by_users": {
            "description": "Whether keypair access is limited to specific users.",
            "type": "boolean",
            "example": true
          },
          "number_of_active_certificates": {
            "description": "Number of active certificates associated with the keypair.",
            "type": "integer",
            "example": 3
          }
        }
      },
      "KeypairDetailsBasic": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Keypair ID.",
            "type": "string",
            "format": "uuid"
          },
          "alias": {
            "description": "Keypair nickname.",
            "type": "string",
            "example": "my_keypair"
          },
          "limit_by_users": {
            "description": "Whether to limit keypair access to specific users.",
            "type": "boolean",
            "example": true
          }
        }
      },
      "KeypairResponse": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/UUID"
          },
          "alias": {
            "description": "Keypair alias (nickname).",
            "type": "string",
            "example": "my_keypair_1"
          },
          "key_size": {
            "description": "RSA key size, in bits. Depends on `key_alg` — ECDSA and EdDSA keys have no `key_size` parameter.",
            "type": "number",
            "enum": [
              2048,
              3072,
              4096
            ],
            "example": 3072
          },
          "key_alg": {
            "description": "The keypair algorithm. If `RSA`, the keypair response contains a `key_size` field. If `ECDSA` or `EdDSA`, the keypair response instead contains a `curve` field with the ECDSA or EdDSA curve type.",
            "type": "string",
            "enum": [
              "RSA",
              "ECDSA",
              "EdDSA"
            ],
            "example": "RSA"
          },
          "key_type": {
            "description": "Keypair type.",
            "type": "string",
            "enum": [
              "PRODUCTION",
              "TEST"
            ]
          },
          "key_storage": {
            "description": "Keypair storage location.",
            "type": "string",
            "enum": [
              "DISK",
              "HSM"
            ]
          },
          "public_key": {
            "description": "The Base64-encoded public key.",
            "type": "string",
            "format": "byte",
            "example": "...(Base64-encoded public key)..."
          },
          "account": {
            "$ref": "#/components/schemas/Account"
          },
          "limit_by_users": {
            "description": "Whether to limit keypair access to specific users.",
            "type": "boolean",
            "example": true
          },
          "users": {
            "$ref": "#/components/schemas/ArrayOfUsers"
          },
          "created_on": {
            "$ref": "#/components/schemas/Date"
          },
          "created_by": {
            "$ref": "#/components/schemas/UUID"
          },
          "created_by_user": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "modified_on": {
            "$ref": "#/components/schemas/Date"
          },
          "modified_by": {
            "$ref": "#/components/schemas/UUID"
          },
          "modified_by_user": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "key_status": {
            "description": "Key status.",
            "type": "string",
            "enum": [
              "ONLINE",
              "OFFLINE"
            ],
            "example": "ONLINE"
          },
          "groups": {
            "description": "Array of groups granted access to the keypair, if applicable.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserGroupBasic"
            }
          },
          "number_of_active_certificates": {
            "description": "The number of active certificates. If nonzero, the keypair contains a `certificates` field with an array of active certificate objects.",
            "type": "integer",
            "example": 0
          },
          "profile_id": {
            "description": "Profile ID, if applicable.",
            "type": "string",
            "format": "uuid"
          },
          "key_modal_type": {
            "description": "Key modal type.",
            "type": "string",
            "enum": [
              "STATIC",
              "DYNAMIC"
            ],
            "example": "STATIC"
          },
          "expiry_type": {
            "description": "Expiry type for the keypair.",
            "type": "string",
            "enum": [
              "NO_EXPIRY",
              "ON_SPECIFIC_DATE",
              "ON_CERTIFICATE_EXPIRY"
            ]
          },
          "expire_on": {
            "description": "Expiry date & time(in UTC) for the keypair.",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "KeypairResponseWithCertificate": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/UUID"
          },
          "alias": {
            "description": "Keypair alias (nickname).",
            "type": "string",
            "example": "my_keypair_2"
          },
          "curve": {
            "type": "string",
            "enum": [
              "P256",
              "P-256",
              "p256",
              "prime256v1",
              "secp256r1",
              "P384",
              "P-384",
              "p384",
              "secp384r1",
              "P521",
              "P-521",
              "p521",
              "secp521r1",
              "Ed25519"
            ],
            "description": "ECDSA or EdDSA curve type, depending on `key_alg`. RSA keys have no `curve` parameter."
          },
          "key_alg": {
            "description": "The keypair algorithm. If `RSA`, the keypair response contains a `key_size` field. If `ECDSA` or `EdDSA`, the keypair response instead contains a `curve` field with the ECDSA or EdDSA curve type.",
            "type": "string",
            "enum": [
              "RSA",
              "ECDSA",
              "EdDSA"
            ],
            "example": "ECDSA"
          },
          "key_type": {
            "description": "Key type.",
            "type": "string",
            "enum": [
              "PRODUCTION",
              "TEST"
            ]
          },
          "key_storage": {
            "description": "Key storage location.",
            "type": "string",
            "enum": [
              "DISK",
              "HSM"
            ]
          },
          "public_key": {
            "description": "The Base64-encoded public key.",
            "type": "string",
            "format": "byte",
            "example": "...(Base64-encoded public key)..."
          },
          "certificates": {
            "description": "Array of active certificate objects for the keypair. Omitted if there are no active certificates.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CertificateDetailResponse"
            }
          },
          "account": {
            "$ref": "#/components/schemas/Account"
          },
          "limit_by_users": {
            "description": "Whether to limit keypair access to specific users.",
            "type": "boolean",
            "example": true
          },
          "users": {
            "$ref": "#/components/schemas/ArrayOfUsers"
          },
          "created_on": {
            "$ref": "#/components/schemas/Date"
          },
          "created_by": {
            "$ref": "#/components/schemas/UUID"
          },
          "created_by_user": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "modified_on": {
            "$ref": "#/components/schemas/Date"
          },
          "modified_by": {
            "$ref": "#/components/schemas/UUID"
          },
          "modified_by_user": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "key_status": {
            "description": "Key status.",
            "type": "string",
            "enum": [
              "ONLINE",
              "OFFLINE"
            ],
            "example": "ONLINE"
          },
          "groups": {
            "description": "Array of groups granted access to the keypair, if applicable.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserGroupBasic"
            }
          },
          "number_of_active_certificates": {
            "description": "The number of active certificates. If nonzero, the keypair contains a `certificates` field with an array of active certificate objects.",
            "type": "integer",
            "example": 1
          },
          "profile_id": {
            "description": "Profile ID, if applicable.",
            "type": "string",
            "format": "uuid"
          },
          "key_modal_type": {
            "description": "Key modal type.",
            "type": "string",
            "enum": [
              "STATIC",
              "DYNAMIC"
            ],
            "example": "STATIC"
          }
        }
      },
      "ReleaseWindowCommentResponse": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Release window comment ID.",
            "type": "string",
            "format": "uuid"
          },
          "comment": {
            "description": "Release window comment text.",
            "type": "string",
            "example": "Example comment about release window"
          },
          "created_on": {
            "type": "string",
            "format": "date-time"
          },
          "created_by_user": {
            "$ref": "#/components/schemas/UserBasic"
          },
          "modified_on": {
            "type": "string",
            "format": "date-time"
          },
          "modified_by_user": {
            "$ref": "#/components/schemas/UserBasic"
          }
        }
      },
      "ReleaseWindowResponse": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Release window ID.",
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "description": "Release window name.",
            "type": "string",
            "example": "my-release-window-1"
          },
          "version": {
            "description": "Release window version, if applicable.",
            "type": "string",
            "example": "1.0.1"
          },
          "status": {
            "description": "Release window status.",
            "type": "string",
            "enum": [
              "APPROVED",
              "PENDING",
              "REJECTED",
              "ACTIVE",
              "COMPLETED",
              "EXPIRED",
              "BASELINE",
              "FAILED"
            ]
          },
          "key_pairs": {
            "description": "Array of keypair objects included in the release window.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KeypairInfoResponse"
            }
          },
          "users": {
            "description": "Array of users with access to the release window.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserBasic"
            }
          },
          "groups": {
            "description": "Array of groups with access to the release window.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserGroupBasic"
            }
          },
          "comments": {
            "description": "Array of comments about the release window.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ReleaseWindowCommentResponse"
            }
          },
          "start_date": {
            "description": "Start date and time of the release window.",
            "type": "string",
            "format": "date-time"
          },
          "end_date": {
            "description": "End date and time of the release window.",
            "type": "string",
            "format": "date-time"
          },
          "max_signatures": {
            "description": "Maximum number of signatures in the release window.",
            "type": "integer",
            "format": "int32",
            "example": 2
          },
          "used_signatures": {
            "description": "Number of signatures used in the release window.",
            "type": "integer",
            "format": "int32",
            "example": 0
          },
          "allowed_ips": {
            "description": "Allowed IPs for the release window, if applicable. Omitted if none.",
            "type": "string"
          },
          "created_on": {
            "description": "Date and time the release window was created.",
            "type": "string",
            "format": "date-time"
          },
          "created_by_user": {
            "$ref": "#/components/schemas/UserBasic"
          },
          "modified_on": {
            "description": "Date and time the release window was last modified.",
            "type": "string",
            "format": "date-time"
          },
          "modified_by_user": {
            "$ref": "#/components/schemas/UserBasic"
          },
          "type": {
            "description": "Type of release window.",
            "type": "string",
            "enum": [
              "ONLINE",
              "OFFLINE",
              "TEST"
            ]
          },
          "key_pair_type": {
            "description": "Keypair type for the release window.",
            "type": "string",
            "enum": [
              "STANDARD",
              "GPG"
            ]
          },
          "key_pair_with_certificates": {
            "description": "Whether the keypair has active certificates.",
            "type": "boolean"
          },
          "baseline_release_window": {
            "$ref": "#/components/schemas/BaselineReleaseWindowEntityView"
          },
          "release_window_change_request_data": {
            "description": "Change request data for the release window, if present. Omitted if none.",
            "type": "string",
            "example": "Example change request data for release window"
          },
          "team": {
            "$ref": "#/components/schemas/TeamResponse"
          },
          "resources": {
            "$ref": "#/components/schemas/ReleaseWindowResource"
          }
        }
      },
      "SignatureReleaseWindowEntityView": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Unsigned hash ID.",
            "type": "string",
            "format": "uuid"
          },
          "hash": {
            "description": "Hash string.",
            "type": "string",
            "format": "byte",
            "example": "eeUnw3ky7+hI7Kawc9NnZ4CCCenu8rDDfV+YTwNutt+JHXX3LZsVRRjBzViDUobR"
          },
          "release_window_id": {
            "description": "Release window ID.",
            "type": "string",
            "format": "uuid"
          },
          "release_window_checked_in": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "release_window_checked_by": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "release_window_present_in": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ReleaseWindowRequest": {
        "required": [
          "end_date",
          "key_pair_ids",
          "key_pair_type",
          "name",
          "start_date",
          "status",
          "type"
        ],
        "type": "object",
        "properties": {
          "name": {
            "description": "Release window name.",
            "maxLength": 255,
            "minLength": 1,
            "pattern": "^[\\p{L}\\p{Nd}\\-_.]+$",
            "type": "string",
            "example": "my-release-window-1"
          },
          "status": {
            "description": "Release window status:\n\n- `PENDING` — The release must be approved to become active at the scheduled start time.\n\n- `APPROVED` — The release is approved and active by default at the scheduled start time.\n",
            "type": "string",
            "enum": [
              "APPROVED",
              "PENDING"
            ]
          },
          "version": {
            "description": "Release window version.",
            "maxLength": 255,
            "minLength": 1,
            "pattern": "^[\\p{L}\\p{Nd}\\-_.]+$",
            "type": "string",
            "example": "1.0.1"
          },
          "key_pair_ids": {
            "description": "Array of keypair IDs used in the release window.",
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "users": {
            "description": "Array of user IDs with access to the release window. By default, if no user IDs and group IDs are provided, this list includes the user who creates the release window. \n",
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "groups": {
            "description": "Array of group IDs with access to the release window.",
            "type": "array",
            "items": {
              "type": "string",
              "format": "uuid"
            }
          },
          "start_date": {
            "description": "Start date for the release window.",
            "type": "string",
            "format": "date-time"
          },
          "end_date": {
            "description": "End date for the release window.",
            "type": "string",
            "format": "date-time"
          },
          "max_signatures": {
            "description": "Maximum number of signatures in the release window.",
            "type": "integer",
            "format": "int32",
            "example": 2
          },
          "allowed_ips": {
            "description": "Allowed IPs for the release window.",
            "type": "string"
          },
          "comment": {
            "description": "Text comment about the release window.",
            "type": "string",
            "example": "Example comment about release window"
          },
          "type": {
            "description": "Release window type.",
            "type": "string",
            "enum": [
              "ONLINE",
              "OFFLINE",
              "TEST"
            ]
          },
          "key_pair_type": {
            "description": "Keypair type for the release window (either `STANDARD` or `GPG`).",
            "type": "string",
            "enum": [
              "STANDARD",
              "GPG"
            ],
            "default": "STANDARD"
          },
          "key_pair_with_certificates": {
            "description": "Whether the keypair has active certificates. Default is `true`. Must be explicitly set to `false` when the keypair type is `GPG`. GPG keypairs cannot have certificates, and release windows using GPG cannot have keypairs with certificates.",
            "type": "boolean",
            "default": true
          },
          "baseline_release_window_id": {
            "description": "ID of the baseline release window. Only applies to standard keypairs. For GPG keypairs, omit it or set to `null`.",
            "type": "string",
            "format": "uuid"
          },
          "team_id": {
            "description": "If teams is enabled, this is a required field. Provide the ID of the team that controls the release window.",
            "type": "string",
            "format": "uuid"
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "ReleaseWindowRequestUpdateFields": {
        "type": "object",
        "properties": {
          "update_baseline_release_window": {
            "description": "Whether to update the baseline release window. Only applies to standard keypairs.",
            "type": "boolean"
          }
        }
      },
      "UpdateReleaseWindowRequest": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/ReleaseWindowRequest"
          },
          {
            "$ref": "#/components/schemas/ReleaseWindowRequestUpdateFields"
          }
        ]
      },
      "BaselineReleaseWindowRequest": {
        "type": "object",
        "properties": {
          "release_window_comparison_id": {
            "description": "ID of the release window comparison to assign the baseline for.",
            "type": "string",
            "format": "uuid"
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "SignatureDetails": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Signature ID.",
            "type": "string",
            "format": "uuid"
          },
          "keypair_id": {
            "description": "Keypair ID.",
            "type": "string",
            "format": "uuid"
          },
          "key_pair": {
            "$ref": "#/components/schemas/KeypairInfoAndCertBasic"
          },
          "signature": {
            "description": "Signature string.",
            "type": "string",
            "example": "...(signature string)..."
          },
          "sig_alg": {
            "description": "Signature algorithm.",
            "type": "string",
            "enum": [
              "sha1WithRSA",
              "sha256WithRSA",
              "sha384WithRSA",
              "sha512WithRSA",
              "sha256WithECDSA",
              "sha384WithECDSA",
              "sha512WithECDSA",
              "ED25519",
              "match_issuer"
            ]
          },
          "hash": {
            "description": "File hash.",
            "type": "string",
            "format": "byte",
            "example": "eeUnw3ky7+hI7Kawc9NnZ4CCCenu8rDDfV+YTwNutt+JHXX3LZsVRRjBzViDUobR"
          },
          "signing_status": {
            "description": "Signing status.",
            "type": "string",
            "enum": [
              "SUCCESS",
              "FAILED"
            ]
          },
          "account": {
            "$ref": "#/components/schemas/Account"
          },
          "created_on": {
            "description": "Date and time the signature was created.",
            "format": "date-time"
          },
          "created_by": {
            "description": "ID of user who created the signature.",
            "type": "string",
            "format": "uuid"
          },
          "created_by_user": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "modified_on": {
            "description": "Date and time the signature was last modified.",
            "format": "date-time"
          },
          "modified_by": {
            "description": "ID of user who last modified the signature.",
            "type": "string",
            "format": "uuid"
          },
          "modified_by_user": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "client_ip": {
            "description": "IP address of client that created the signature.",
            "type": "string",
            "example": "211.22.33.44"
          },
          "certificate_id": {
            "description": "Certificate ID.",
            "type": "string",
            "format": "uuid"
          },
          "client_type": {
            "description": "Type of client that created the signature.",
            "type": "string",
            "example": "SigningManager-PKCS11/1.31.0 (linux; amd64)"
          },
          "signature_type": {
            "description": "Signature type.",
            "type": "string",
            "enum": [
              "PRODUCTION",
              "TESTING"
            ]
          }
        }
      },
      "SignatureV2Details": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Signature ID.",
            "type": "string",
            "format": "uuid"
          },
          "keypair_id": {
            "description": "Keypair ID.",
            "type": "string",
            "format": "uuid"
          },
          "key_pair": {
            "$ref": "#/components/schemas/KeypairInfoAndCertBasic"
          },
          "sig_alg": {
            "description": "Signature algorithm.",
            "type": "string",
            "enum": [
              "sha1WithRSA",
              "sha256WithRSA",
              "sha384WithRSA",
              "sha512WithRSA",
              "sha256WithECDSA",
              "sha384WithECDSA",
              "sha512WithECDSA",
              "ED25519",
              "match_issuer"
            ]
          },
          "signing_status": {
            "description": "Signing status.",
            "type": "string",
            "enum": [
              "SUCCESS",
              "FAILED"
            ]
          },
          "account": {
            "$ref": "#/components/schemas/Account"
          },
          "created_on": {
            "description": "Date and time the signature was created.",
            "format": "date-time"
          },
          "created_by": {
            "description": "ID of user who created the signature.",
            "type": "string",
            "format": "uuid"
          },
          "created_by_user": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "modified_on": {
            "description": "Date and time the signature was last modified.",
            "format": "date-time"
          },
          "modified_by": {
            "description": "ID of user who last modified the signature.",
            "type": "string",
            "format": "uuid"
          },
          "modified_by_user": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "client_ip": {
            "description": "IP address of client that created the signature.",
            "type": "string",
            "example": "211.22.33.44"
          },
          "client_type": {
            "description": "Type of client that created the signature.",
            "type": "string",
            "example": "SigningManager-PKCS11/1.31.0 (linux; amd64)"
          },
          "signature_type": {
            "description": "Signature type.",
            "type": "string",
            "enum": [
              "PRODUCTION",
              "TESTING"
            ]
          }
        }
      },
      "UserGroupBasic": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Group ID.",
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "description": "Group name.",
            "type": "string",
            "example": "example_group"
          }
        }
      },
      "UserGroupListing": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Group ID.",
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "description": "Group name.",
            "type": "string",
            "example": "example_group"
          },
          "status": {
            "description": "Group status.",
            "type": "string",
            "enum": [
              "ACTIVE",
              "DISABLED",
              "DELETED"
            ]
          },
          "created_on": {
            "description": "Date and time the group was created.",
            "format": "date-time"
          },
          "created_by": {
            "description": "ID of user who created the group.",
            "type": "string",
            "format": "uuid"
          },
          "created_by_user": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "modified_on": {
            "description": "Date and time the group was last modified.",
            "format": "date-time"
          },
          "modified_by": {
            "description": "ID of user who last modified the group.",
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "UserGroupDetails": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Group ID.",
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "description": "Group name.",
            "type": "string",
            "example": "example_group"
          },
          "status": {
            "description": "Group status.",
            "type": "string",
            "enum": [
              "ACTIVE",
              "DISABLED",
              "DELETED"
            ]
          },
          "account": {
            "description": "Account information.",
            "type": "object",
            "properties": {
              "id": {
                "description": "Account ID where the group resides.",
                "type": "string",
                "format": "uuid",
                "example": "919191a9-1df9-1919-a19c-fec0d01901d9"
              }
            }
          },
          "users": {
            "description": "Array of users that are in the group.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserDetail"
            }
          },
          "created_on": {
            "description": "Date and time the group was created.",
            "format": "date-time"
          },
          "created_by": {
            "description": "ID of user who created the group.",
            "type": "string",
            "format": "uuid"
          },
          "created_by_user": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "modified_on": {
            "description": "Date and time the group was last modified.",
            "format": "date-time"
          },
          "modified_by": {
            "description": "ID of user who last modified the group.",
            "type": "string",
            "format": "uuid"
          },
          "modified_by_user": {
            "$ref": "#/components/schemas/UserDetail"
          }
        }
      },
      "UserGroupRequest": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "description": "Unique name for the group.",
            "maxLength": 255,
            "minLength": 1,
            "pattern": "^[\\p{L}\\p{Nd}_]+$",
            "type": "string",
            "example": "example_group"
          },
          "users": {
            "description": "Array of users who belong to the group.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/User"
            }
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "UpdateKeyPairProfileRequest": {
        "required": [
          "key_alg",
          "key_category",
          "key_status",
          "key_storage",
          "name",
          "profile_type"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 255,
            "minLength": 1,
            "pattern": "^[\\p{L}\\p{Nd}_]+$",
            "type": "string",
            "example": "my_keypair_profile_1"
          },
          "profile_type": {
            "description": "Keypair profile type.",
            "type": "string",
            "enum": [
              "FIXED",
              "CUSTOMIZABLE"
            ]
          },
          "key_alg": {
            "description": "Keypair profile algorithm.",
            "type": "string",
            "enum": [
              "RSA",
              "ECDSA",
              "EdDSA"
            ]
          },
          "key_category": {
            "description": "Keypair profile key category.",
            "type": "string",
            "enum": [
              "PRODUCTION",
              "TEST"
            ]
          },
          "key_storage": {
            "description": "Keypair profile key storage location.",
            "type": "string",
            "enum": [
              "Disk",
              "HSM"
            ]
          },
          "key_status": {
            "description": "Keypair profile key status.",
            "type": "string",
            "enum": [
              "ONLINE",
              "OFFLINE"
            ]
          },
          "key_size": {
            "description": "RSA key size, in bits. Depends on `key_alg` — ECDSA and EdDSA keys have no `key_size` parameter.",
            "type": "number",
            "enum": [
              2048,
              3072,
              4096
            ],
            "example": 4096
          },
          "key_curve": {
            "description": "ECDSA or EdDSA curve type, depending on `key_alg`. RSA keys have no `curve` parameter.",
            "type": "string",
            "enum": [
              "P256",
              "P-256",
              "p256",
              "prime256v1",
              "secp256r1",
              "P384",
              "P-384",
              "p384",
              "secp384r1",
              "P521",
              "P-521",
              "p521",
              "secp521r1",
              "Ed25519"
            ]
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          },
          "expiry_type": {
            "description": "Expiry type for the keypair.",
            "type": "string",
            "enum": [
              "NO_EXPIRY",
              "ON_SPECIFIC_DATE",
              "ON_CERTIFICATE_EXPIRY"
            ]
          },
          "expire_on": {
            "description": "Expiry date & time(in UTC) for the keypair.",
            "type": "string",
            "format": "date-time"
          },
          "apply_expiry_to_dependents": {
            "description": "Does expiry criteria apply for keypairs generated from the profile.",
            "type": "boolean"
          }
        }
      },
      "KeyPairProfileResponse": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Keypair profile ID.",
            "type": "string",
            "format": "uuid"
          },
          "scope": {
            "description": "Keypair profile scope.",
            "type": "string",
            "enum": [
              "ACCOUNT",
              "SYSTEM"
            ]
          },
          "name": {
            "description": "Keypair profile name.",
            "type": "string",
            "example": "my_keypair_profile_1"
          },
          "key_alg": {
            "description": "Keypair profile algorithm.",
            "type": "string",
            "enum": [
              "RSA",
              "ECDSA",
              "EdDSA"
            ]
          },
          "key_category": {
            "description": "Keypair profile key category.",
            "type": "string",
            "enum": [
              "PRODUCTION",
              "TEST"
            ]
          },
          "key_storage": {
            "description": "Keypair profile key storage location.",
            "type": "string",
            "enum": [
              "Disk",
              "HSM"
            ]
          },
          "key_status": {
            "description": "Keypair profile key status.",
            "type": "string",
            "enum": [
              "ONLINE",
              "OFFLINE"
            ]
          },
          "profile_type": {
            "description": "Keypair profile type.",
            "type": "string",
            "enum": [
              "FIXED",
              "CUSTOMIZABLE"
            ]
          },
          "profile_status": {
            "description": "Keypair profile status.",
            "type": "string",
            "enum": [
              "ACTIVE",
              "DISABLED"
            ]
          },
          "created_on": {
            "description": "Date and time the keypair profile was created.",
            "type": "string",
            "format": "date-time"
          },
          "created_by": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "modified_on": {
            "description": "Date and time the keypair profile was last modified.",
            "type": "string",
            "format": "date-time"
          },
          "modified_by": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "key_curve": {
            "description": "ECDSA or EdDSA curve type, depending on `key_alg`. RSA keys have no `curve` parameter.",
            "type": "string",
            "enum": [
              "P256",
              "P-256",
              "p256",
              "prime256v1",
              "secp256r1",
              "P384",
              "P-384",
              "p384",
              "secp384r1",
              "P521",
              "P-521",
              "p521",
              "secp521r1",
              "Ed25519"
            ]
          },
          "key_size": {
            "description": "RSA key size, in bits. Depends on `key_alg` — ECDSA and EdDSA keys have no `key_size` parameter.",
            "type": "number",
            "enum": [
              2048,
              3072,
              4096
            ],
            "example": 3072
          },
          "account": {
            "$ref": "#/components/schemas/Account"
          },
          "disabled_for_accounts": {
            "description": "Array of accounts for which the keypair profile is disabled, if applicable. Omitted if none.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Account"
            }
          },
          "expiry_type": {
            "description": "Expiry type for the keypair.",
            "type": "string",
            "enum": [
              "NO_EXPIRY",
              "ON_SPECIFIC_DATE",
              "ON_CERTIFICATE_EXPIRY"
            ]
          },
          "expire_on": {
            "description": "Expiry date & time(in UTC) for the keypair.",
            "type": "string",
            "format": "date-time"
          },
          "apply_expiry_to_dependents": {
            "description": "Does expiry criteria apply for keypairs generated from the profile.",
            "type": "boolean"
          }
        }
      },
      "CreateKeyPairProfileRequest": {
        "required": [
          "key_alg",
          "key_category",
          "key_status",
          "key_storage",
          "name",
          "profile_status",
          "profile_type",
          "scope"
        ],
        "type": "object",
        "properties": {
          "name": {
            "description": "Unique name for the keypair profile.",
            "maxLength": 255,
            "minLength": 1,
            "pattern": "^[\\p{L}\\p{Nd}_]+$",
            "type": "string",
            "example": "my_keypair_profile_1"
          },
          "profile_type": {
            "description": "Keypair profile type.",
            "type": "string",
            "enum": [
              "FIXED",
              "CUSTOMIZABLE"
            ]
          },
          "scope": {
            "description": "Keypair profile scope.",
            "type": "string",
            "enum": [
              "ACCOUNT",
              "SYSTEM"
            ]
          },
          "key_alg": {
            "description": "Keypair profile algorithm.",
            "type": "string",
            "enum": [
              "RSA",
              "ECDSA",
              "EdDSA"
            ]
          },
          "key_category": {
            "description": "Category of keypairs to create from the keypair profile.",
            "type": "string",
            "enum": [
              "PRODUCTION",
              "TEST"
            ],
            "example": "TEST"
          },
          "key_storage": {
            "description": "Storage location for keypairs created from the keypair profile.",
            "type": "string",
            "enum": [
              "Disk",
              "HSM"
            ]
          },
          "key_status": {
            "description": "Status of keypairs created from the keypair profile.",
            "type": "string",
            "enum": [
              "ONLINE",
              "OFFLINE"
            ]
          },
          "profile_status": {
            "description": "Keypair profile status.",
            "type": "string",
            "enum": [
              "ACTIVE",
              "DISABLED"
            ]
          },
          "key_size": {
            "type": "number",
            "enum": [
              2048,
              3072,
              4096
            ],
            "description": "RSA key size, in bits. Depends on `key_alg` — ECDSA and EdDSA keys have no `key_size` parameter."
          },
          "key_curve": {
            "type": "string",
            "enum": [
              "P256",
              "P-256",
              "p256",
              "prime256v1",
              "secp256r1",
              "P384",
              "P-384",
              "p384",
              "secp384r1",
              "P521",
              "P-521",
              "p521",
              "secp521r1",
              "Ed25519"
            ],
            "description": "ECDSA or EdDSA curve type, depending on `key_alg`. RSA keys have no `curve` parameter."
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          },
          "expiry_type": {
            "description": "Expiry type for the keypair.",
            "type": "string",
            "enum": [
              "NO_EXPIRY",
              "ON_SPECIFIC_DATE",
              "ON_CERTIFICATE_EXPIRY"
            ]
          },
          "expire_on": {
            "description": "Expiry date & time(in UTC) for the keypair.",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "KeyPairProfileListResponseRSA": {
        "description": "Keypair profile listing for RSA.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Keypair profile ID.",
            "type": "string",
            "format": "uuid"
          },
          "scope": {
            "description": "Keypair profile scope.",
            "type": "string",
            "enum": [
              "ACCOUNT",
              "SYSTEM"
            ]
          },
          "name": {
            "description": "Keypair profile name.",
            "type": "string",
            "example": "my_keypair_profile_for_rsa"
          },
          "key_alg": {
            "description": "Keypair profile algorithm.",
            "type": "string",
            "enum": [
              "RSA",
              "ECDSA",
              "EdDSA"
            ],
            "example": "RSA"
          },
          "key_size": {
            "description": "RSA key size, in bits. Depends on `key_alg` — ECDSA and EdDSA keys have no `key_size` parameter.",
            "type": "number",
            "enum": [
              2048,
              3072,
              4096
            ],
            "example": 3072
          },
          "profile_status": {
            "description": "Keypair profile status.",
            "type": "string",
            "enum": [
              "ACTIVE",
              "DISABLED"
            ]
          },
          "profile_type": {
            "description": "Keypair profile type.",
            "type": "string",
            "enum": [
              "FIXED",
              "CUSTOMIZABLE"
            ]
          },
          "key_category": {
            "description": "Keypair profile key category.",
            "type": "string",
            "enum": [
              "PRODUCTION",
              "TEST"
            ]
          },
          "key_storage": {
            "description": "Keypair profile key storage location.",
            "type": "string",
            "enum": [
              "Disk",
              "HSM"
            ]
          },
          "key_status": {
            "description": "Keypair profile key status.",
            "type": "string",
            "enum": [
              "ONLINE",
              "OFFLINE"
            ]
          },
          "disabled_for_account": {
            "description": "Whether the keypair profile is disabled for the current account.",
            "type": "boolean"
          }
        }
      },
      "KeyPairProfileListResponseECDSAorEdDSA": {
        "description": "Keypair profile listing for ECDSA or EdDSA.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Keypair profile ID.",
            "type": "string",
            "format": "uuid"
          },
          "scope": {
            "description": "Keypair profile scope.",
            "type": "string",
            "enum": [
              "ACCOUNT",
              "SYSTEM"
            ]
          },
          "name": {
            "description": "Keypair profile name.",
            "type": "string",
            "example": "my_keypair_profile_for_ecdsa"
          },
          "key_alg": {
            "description": "Keypair profile algorithm.",
            "type": "string",
            "enum": [
              "RSA",
              "ECDSA",
              "EdDSA"
            ],
            "example": "ECDSA"
          },
          "key_curve": {
            "description": "ECDSA or EdDSA curve type, depending on `key_alg`. RSA keys have no `curve` parameter.",
            "type": "string",
            "enum": [
              "P256",
              "P-256",
              "p256",
              "prime256v1",
              "secp256r1",
              "P384",
              "P-384",
              "p384",
              "secp384r1",
              "P521",
              "P-521",
              "p521",
              "secp521r1",
              "Ed25519"
            ]
          },
          "profile_status": {
            "description": "Keypair profile status.",
            "type": "string",
            "enum": [
              "ACTIVE",
              "DISABLED"
            ]
          },
          "profile_type": {
            "description": "Keypair profile type.",
            "type": "string",
            "enum": [
              "FIXED",
              "CUSTOMIZABLE"
            ],
            "example": "CUSTOMIZABLE"
          },
          "key_category": {
            "description": "Keypair profile key category.",
            "type": "string",
            "enum": [
              "PRODUCTION",
              "TEST"
            ],
            "example": "TEST"
          },
          "key_storage": {
            "description": "Keypair profile key storage location.",
            "type": "string",
            "enum": [
              "Disk",
              "HSM"
            ],
            "example": "HSM"
          },
          "key_status": {
            "description": "Keypair profile key status.",
            "type": "string",
            "enum": [
              "ONLINE",
              "OFFLINE"
            ]
          },
          "disabled_for_account": {
            "description": "Whether the keypair profile is disabled for the current account.",
            "type": "boolean"
          }
        }
      },
      "MultiPersonApprovalRequest": {
        "description": "Multi-person approval request for a team.",
        "type": "object",
        "required": [
          "resource_id",
          "approval_type",
          "team_id"
        ],
        "properties": {
          "resource_id": {
            "description": "ID of the target resource. Can be a keypair, master keypair for a secret keyring, certificate, or release window ID.",
            "type": "string",
            "format": "uuid"
          },
          "approval_type": {
            "description": "Type of approval to request.",
            "type": "string",
            "enum": [
              "KEYPAIR_EXPORT",
              "GPG_KEYRING_EXPORT",
              "CERTIFICATE_REVOKE",
              "KEYPAIR_DELETE",
              "OFFLINE_RELEASE_WINDOW",
              "GPG_MASTER_KEYPAIR_DELETE",
              "GPG_SUB_KEYPAIR_DELETE"
            ],
            "example": "CERTIFICATE_REVOKE"
          },
          "team_id": {
            "description": "Team ID to request approval from.",
            "type": "string",
            "format": "uuid",
            "example": "588af89f-f0cf-42ff-8f8f-fa3afa0184ce"
          },
          "approval_specific_data": {
            "description": "Data specific to the requested approval type.",
            "type": "object",
            "properties": {
              "reason": {
                "description": "Reason for the request. Mandatory for `CERTIFICATE_REVOKE` requests.",
                "type": "string",
                "example": "KEY_COMPROMISE"
              },
              "approval_specific_date": {
                "description": "Date and time of the request.",
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "UpdateMultiPersonApprovalRequest": {
        "description": "Update multi-person approval request for a team.",
        "type": "object",
        "required": [
          "resource_id",
          "approval_status_type",
          "approval_type",
          "team_id"
        ],
        "properties": {
          "resource_id": {
            "description": "ID of the target resource. Can be a keypair, certificate, or release window ID.",
            "type": "string",
            "format": "uuid"
          },
          "approval_status_type": {
            "description": "Approval decision — `APPROVED` or `REJECTED`.",
            "type": "string",
            "enum": [
              "APPROVED",
              "REJECTED"
            ]
          },
          "comment": {
            "description": "Text comment about approval decision.",
            "type": "string",
            "example": "Example comment about approval decision."
          },
          "approval_type": {
            "description": "Approval request type.",
            "type": "string",
            "enum": [
              "KEYPAIR_EXPORT",
              "CERTIFICATE_REVOKE",
              "KEYPAIR_DELETE",
              "OFFLINE_RELEASE_WINDOW",
              "GPG_KEYRING_EXPORT",
              "GPG_MASTER_KEYPAIR_DELETE",
              "GPG_SUB_KEYPAIR_DELETE"
            ],
            "example": "CERTIFICATE_REVOKE"
          },
          "team_id": {
            "description": "Team ID to request approval from.",
            "type": "string",
            "format": "uuid",
            "example": "588af89f-f0cf-42ff-8f8f-fa3afa0184ce"
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "ActionMultiPersonApprovalRequest": {
        "description": "Object with action to perform for multi-person approval request.",
        "type": "object",
        "required": [
          "resource_id",
          "action_type",
          "team_id"
        ],
        "properties": {
          "resource_id": {
            "description": "ID of the target resource. Can be a keypair, certificate, or release window ID.",
            "type": "string",
            "format": "uuid"
          },
          "action_type": {
            "description": "Action to perform for the multi-person approval request.",
            "type": "string",
            "enum": [
              "KEYPAIR_EXPORT",
              "GPG_KEYRING_EXPORT"
            ],
            "example": "KEYPAIR_EXPORT"
          },
          "team_id": {
            "description": "Team ID.",
            "type": "string",
            "format": "uuid",
            "example": "588af89f-f0cf-42ff-8f8f-fa3afa0184ce"
          },
          "account": {
            "$ref": "#/components/schemas/AccountId"
          }
        }
      },
      "MultiPersonApprovalResponse": {
        "description": "Teams multi-person approval details.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Multi-person approval request ID.",
            "type": "string",
            "format": "uuid",
            "example": "3dd2b99e-af39-4eae-8a8c-ccafaf4d10de"
          },
          "type_of_approval": {
            "description": "Type of multi-person approval request.",
            "type": "string",
            "enum": [
              "KEYPAIR_EXPORT",
              "CERTIFICATE_REVOKE",
              "KEYPAIR_DELETE",
              "OFFLINE_RELEASE_WINDOW",
              "GPG_KEYRING_EXPORT",
              "GPG_MASTER_KEYPAIR_DELETE",
              "GPG_SUB_KEYPAIR_DELETE"
            ]
          },
          "created_by": {
            "description": "ID of user who created the request.",
            "type": "string",
            "format": "uuid"
          },
          "created_on": {
            "description": "Date and time the request was created.",
            "type": "string",
            "format": "date-time"
          },
          "modified_by": {
            "description": "ID of user who last modified the request.",
            "type": "string",
            "format": "uuid"
          },
          "modified_on": {
            "description": "Date and time the request was last modified.",
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "description": "Current request status.",
            "type": "string",
            "example": "COMPLETED",
            "enum": [
              "APPROVED",
              "REJECTED",
              "EXPIRED",
              "COMPLETED"
            ]
          },
          "account": {
            "$ref": "#/components/schemas/AccountIdAndName"
          },
          "resource_id": {
            "description": "ID of the target resource. Can be a keypair, certificate, or release window ID.",
            "type": "string",
            "format": "uuid"
          },
          "created_by_user": {
            "$ref": "#/components/schemas/UserBasic"
          },
          "modified_by_user": {
            "$ref": "#/components/schemas/UserBasic"
          },
          "approval_specific_data": {
            "description": "Details specific to this approval request.",
            "type": "object",
            "properties": {
              "reason": {
                "description": "Reason for the request.",
                "type": "string",
                "example": "reason"
              },
              "description": {
                "description": "Description of the request.",
                "type": "string",
                "example": "reason"
              },
              "approval_specific_date": {
                "description": "Date and time approval-specific data was added.",
                "type": "string",
                "format": "date-time",
                "example": null
              },
              "expiration_date": {
                "description": "Date and time the request expires.",
                "type": "string",
                "format": "date-time"
              },
              "team_id": {
                "description": "ID of the team in the approval request.",
                "type": "string",
                "format": "uuid",
                "example": "588af89f-f0cf-42ff-8f8f-fa3afa0184ce"
              }
            }
          },
          "approval_decisions": {
            "description": "Array of approval decisions recorded for the request.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MultiPersonApprovalDecision"
            }
          }
        }
      },
      "MultiPersonApprovalDecision": {
        "type": "object",
        "properties": {
          "user_id": {
            "description": "ID of user who added the approval decision.",
            "type": "string",
            "format": "uuid",
            "example": "3c23deef-1a50-463a-9210-74032d42b9b3"
          },
          "user_name": {
            "description": "Name of user who added the approval decision.",
            "type": "string",
            "example": "SSM Approver"
          },
          "action_taken": {
            "description": "Approval action taken by the user.",
            "type": "string",
            "example": "APPROVED"
          },
          "action_time": {
            "description": "Date and time the approval action was recorded.",
            "type": "string",
            "format": "date-time"
          },
          "approval_request_id": {
            "description": "ID of the applicable multi-person approval request.",
            "type": "string",
            "format": "uuid",
            "example": "3dd2b99e-af39-4eae-8a8c-ccafaf4d10de"
          }
        }
      },
      "ScanDetailsBasic": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Scan ID.",
            "format": "uuid",
            "example": "fab877f4-313f-48c7-9653-d9042e2435c8"
          },
          "name": {
            "type": "string",
            "description": "Scan name.",
            "example": "Example scan"
          },
          "result_status": {
            "type": "string",
            "description": "Scan status.",
            "enum": [
              "PASS",
              "FAIL"
            ]
          },
          "checksum": {
            "type": "string",
            "description": "Checksum.",
            "example": "1cdab3ee8992d2983afbfa5c8caa28348c40g8g0"
          },
          "checksum_type": {
            "type": "string",
            "description": "Checksum hash algorithm.",
            "enum": [
              "SHA1",
              "SHA224",
              "SHA256",
              "SHA384",
              "SHA512",
              "SHA3_224",
              "SHA3_256",
              "SHA3_384",
              "SHA3_512"
            ]
          },
          "file_name": {
            "type": "string",
            "description": "Filename of scanned artifact.",
            "example": "example.exe"
          },
          "package_version": {
            "type": "string",
            "description": "Artifact version number.",
            "example": "1.0.0"
          },
          "tool_used": {
            "type": "string",
            "description": "Tool used to scan the artifact.",
            "example": "REVERSING_LABS"
          },
          "software_project_code": {
            "type": "string",
            "description": "Software project code.",
            "example": "example_project"
          },
          "account": {
            "$ref": "#/components/schemas/AccountIdAndName"
          },
          "created_on": {
            "type": "string",
            "description": "Date and time scan was created. Format: UTC timezone and ISO 8601 format.\n",
            "example": "2022-10-13T11:04:29Z"
          },
          "created_by": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "modified_on": {
            "description": "Date and time the scan was last modified.",
            "type": "string",
            "format": "date-time",
            "example": "2023-04-19T18:20:37Z"
          },
          "modified_by": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "deleted": {
            "type": "boolean",
            "description": "If true, scan is deleted. Otherwise, false.",
            "example": false
          },
          "release_window": {
            "$ref": "#/components/schemas/ReleaseWindowBasic"
          }
        }
      },
      "ScanDetails": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ScanDetailsBasic"
          },
          {
            "type": "object",
            "properties": {
              "scan_summary": {
                "description": "JSON string with scan summary details.",
                "type": "string"
              },
              "scan_report_dto": {
                "description": "Scan report data transfer object.",
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Scan report ID.",
                    "example": "7f1e21ae-8ebf-47eb-bc52-20d9adb4eae8"
                  },
                  "scan_id": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Scan ID.",
                    "example": "1b94da81-81cd-4554-bab4-ecb31e4b1b1f"
                  },
                  "html_report_available": {
                    "type": "boolean",
                    "description": "If true, HTML full risk report is available. Otherwise, false."
                  },
                  "sbom_report_available": {
                    "type": "boolean",
                    "description": "If true, software bill of materials (SBOM) report is available. Otherwise, false."
                  },
                  "sarif_report_available": {
                    "description": "If true, Static Analysis Results Interchange Format (SARIF) report is available. Otherwise, false.",
                    "type": "boolean"
                  }
                }
              }
            }
          }
        ]
      },
      "ConnectorResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "example": "e8768b4f-759c-41dd-9ee5-e52a7fd897f8",
            "description": "Connector ID."
          },
          "provider": {
            "type": "string",
            "description": "Third-party service provider.",
            "enum": [
              "REVERSING_LABS"
            ]
          },
          "type": {
            "type": "string",
            "description": "Connector type.",
            "enum": [
              "SOFTWARE_SCANNER"
            ]
          },
          "status": {
            "type": "string",
            "description": "Connector status.",
            "enum": [
              "ACTIVE"
            ]
          },
          "provider_id": {
            "type": "string",
            "description": "Account ID (if any) of the provider.",
            "format": "uuid",
            "example": "878f8406-3db4-4753-acb8-6f454474f708"
          },
          "account_id": {
            "type": "string",
            "description": "Account ID (UUID).",
            "format": "uuid",
            "example": "4567896f-4ce8-4d8f-ccec-332bc48df912"
          },
          "account": {
            "$ref": "#/components/schemas/AccountIdAndName"
          },
          "created_on": {
            "description": "Date and time connector was created.",
            "type": "string",
            "format": "date-time"
          },
          "created_by": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "modified_on": {
            "description": "Date and time connector was last modified.",
            "type": "string",
            "format": "date-time"
          },
          "modified_by": {
            "$ref": "#/components/schemas/UserDetail"
          }
        }
      },
      "ConnectorBasic": {
        "type": "object",
        "required": [
          "connector_status",
          "connector_type",
          "provider"
        ],
        "properties": {
          "connector_status": {
            "type": "string",
            "description": "Connector status.",
            "enum": [
              "ACTIVE"
            ]
          },
          "connector_type": {
            "type": "string",
            "description": "Connector type.",
            "enum": [
              "SOFTWARE_SCANNER",
              "CERTIFICATE_AUTHORITY"
            ]
          },
          "provider": {
            "type": "string",
            "description": "Third-party service provider.",
            "enum": [
              "REVERSING_LABS",
              "CERT_CENTRAL"
            ]
          },
          "provider_id": {
            "type": "string",
            "example": "d184eb76-01b8-40af-83ba-b1b74338b801",
            "format": "uuid",
            "description": "Account ID (if any) provided by the provider."
          }
        }
      },
      "ConnectorAttributes": {
        "type": "object",
        "properties": {
          "connector_attributes": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/ConnectorReversingLabs"
              },
              {
                "$ref": "#/components/schemas/ConnectorCertCentral"
              }
            ]
          }
        }
      },
      "ConnectorReversingLabs": {
        "type": "object",
        "required": [
          "service_tier",
          "license_key",
          "site_key"
        ],
        "properties": {
          "service_tier": {
            "type": "string",
            "description": "ReversingLabs service tier.\n\nAllowed values:\n\n- `SAS`: Software Assurance Service\n\n- `SCCRAS`: Supply Chain Compromise Risk Assessment Service\n",
            "enum": [
              "SAS",
              "SCCRAS"
            ]
          },
          "license_key": {
            "type": "string",
            "description": "ReversingLabs license key, formatted as a Base64-encoded string of bytes. ReversingLabs provides the license key in a `.key` or `.bin` file.",
            "example": "<license_key>"
          },
          "site_key": {
            "type": "string",
            "example": "<site_key>",
            "description": "ReversingLabs site key."
          }
        }
      },
      "ConnectorCertCentral": {
        "type": "object",
        "required": [
          "api_key_name",
          "api_key",
          "user_name",
          "password",
          "cc_host"
        ],
        "properties": {
          "cc_host": {
            "type": "string",
            "description": "The location of the hosted CertCentral instance that needs to be connected to.\n\nAllowed values:\n\n- `US`: CertCentral Global\n- `EU`: CertCentral EU\n",
            "enum": [
              "US",
              "EU"
            ]
          },
          "api_key_name": {
            "type": "string",
            "description": "Name of the API key.",
            "example": "<api_key_name>"
          },
          "api_key": {
            "type": "string",
            "description": "API key created in CertCentral.",
            "example": "<api_key>"
          },
          "user_name": {
            "type": "string",
            "description": "User name for CertCentral login.",
            "example": "<cc_user_name>"
          },
          "password": {
            "type": "string",
            "description": "Password for CertCentral login.",
            "example": "<password>"
          }
        }
      },
      "ConnectorVerifyResponse": {
        "type": "object"
      },
      "CertCentralConnectorVerifyResponse": {
        "type": "object",
        "properties": {
          "api_key_active": {
            "type": "boolean",
            "description": "If true, the API key is active.",
            "example": true
          }
        }
      },
      "UpdateConnectorBasic": {
        "type": "object",
        "required": [
          "connector_status",
          "provider"
        ],
        "properties": {
          "provider": {
            "type": "string",
            "description": "Third-party service provider.",
            "enum": [
              "REVERSING_LABS",
              "CERT_CENTRAL"
            ]
          },
          "provider_id": {
            "type": "string",
            "example": "d184eb76-01b8-40af-83ba-b1b74338b801",
            "format": "uuid",
            "description": "Account ID (if any) provided by the provider."
          }
        }
      },
      "UpdateConnectorReversingLabs": {
        "type": "object",
        "required": [
          "service_tier",
          "license_key",
          "site_key"
        ],
        "properties": {
          "service_tier": {
            "type": "string",
            "description": "ReversingLabs service tier.\n\nAllowed values:\n\n- `SAS`: Software Assurance Service\n\n- `SCCRAS`: Supply Chain Compromise Risk Assessment Service\n",
            "enum": [
              "SAS",
              "SCCRAS"
            ]
          },
          "license_key": {
            "type": "string",
            "description": "ReversingLabs license key, formatted as a Base64-encoded string of bytes. ReversingLabs provides the license key in a `.key` or `.bin` file.",
            "example": "<license_key>"
          },
          "site_key": {
            "type": "string",
            "example": "<site_key>",
            "description": "ReversingLabs site key."
          }
        }
      },
      "UpdateConnectorCertCentral": {
        "type": "object",
        "required": [
          "api_key_name",
          "api_key",
          "user_name",
          "password",
          "cc_host"
        ],
        "properties": {
          "cc_host": {
            "type": "string",
            "description": "The location of the hosted CertCentral instance that needs to be connected to.\n\nAllowed values:\n\n- `US`: CertCentral Global\n- `EU`: CertCentral EU\n",
            "enum": [
              "US",
              "EU"
            ]
          },
          "api_key_name": {
            "type": "string",
            "description": "Name of the API key.",
            "example": "<api_key_name>"
          },
          "api_key": {
            "type": "string",
            "description": "API key created in CertCentral.",
            "example": "<api_key>"
          },
          "user_name": {
            "type": "string",
            "description": "User name for CertCentral login.",
            "example": "<cc_user_name>"
          },
          "password": {
            "type": "string",
            "description": "Password for CertCentral login.",
            "example": "<password>"
          }
        }
      },
      "SoftwareProjectEntity": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "example": "e8768b4f-759c-41dd-9ee5-e52a7fd897f8",
            "description": "Software Project ID"
          },
          "name": {
            "type": "string",
            "example": "Software Project1",
            "description": "Software Project name"
          },
          "code": {
            "type": "string",
            "example": "software_project_code1",
            "description": "Software Project Code"
          },
          "created_on": {
            "type": "string",
            "description": "Date and time software project was created. Format: UTC timezone and ISO 8601 format.\n",
            "example": "2022-10-13T11:04:29Z"
          },
          "created_by": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "modified_on": {
            "type": "string",
            "description": "Date and time software project was created. Format: UTC timezone and ISO 8601 format.\n",
            "example": "2022-10-13T11:04:29Z"
          },
          "modified_by": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "account": {
            "$ref": "#/components/schemas/AccountIdAndName"
          },
          "team": {
            "$ref": "#/components/schemas/TeamIdAndName"
          },
          "status": {
            "type": "string",
            "example": "ACTIVE",
            "description": "Software Project Status"
          }
        }
      },
      "SoftwareProjectResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "example": "e8768b4f-759c-41dd-9ee5-e52a7fd897f8",
            "description": "Software Project ID"
          },
          "name": {
            "type": "string",
            "example": "Software Project1",
            "description": "Software Project name"
          },
          "code": {
            "type": "string",
            "example": "software_project_code1",
            "description": "Software Project Code"
          },
          "created_on": {
            "type": "string",
            "description": "Date and time software project was created. Format: UTC timezone and ISO 8601 format.\n",
            "example": "2022-10-13T11:04:29Z"
          },
          "created_by": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "modified_on": {
            "type": "string",
            "description": "Date and time software project was created. Format: UTC timezone and ISO 8601 format.\n",
            "example": "2022-10-13T11:04:29Z"
          },
          "modified_by": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "account": {
            "$ref": "#/components/schemas/AccountIdAndName"
          },
          "team": {
            "$ref": "#/components/schemas/TeamIdAndName"
          },
          "status": {
            "type": "string",
            "example": "OPEN",
            "description": "Software Project Status Expected status - OPEN - CLOSED - DELETED"
          },
          "directory": {
            "type": "string",
            "example": "c:/software_project_code1",
            "description": "Software Project Directory Path"
          },
          "documentation": {
            "type": "string",
            "example": "c:/software_project_code1/documentation",
            "description": "Software Project Documentation Path"
          },
          "resources": {
            "$ref": "#/components/schemas/ArrayOfSoftwareProjectResource"
          }
        }
      },
      "ArrayOfSoftwareProjectResource": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/SoftwareProjectResource"
        }
      },
      "SoftwareProjectResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "example": "e8768b4f-759c-41dd-9ee5-e52a7fd897f8",
            "resourceType": "Resource ID",
            "description": "Id of the Resource that is mapped to Software Project.\ne.g Scan ID, Release Window ID\n"
          },
          "name": {
            "type": "string",
            "example": "Scan1",
            "description": "Resource name e.g Scan name, Release window name"
          },
          "resource_type": {
            "$ref": "#/components/schemas/ResourceTypeForSoftwareProject"
          },
          "software_project_id": {
            "type": "string",
            "format": "uuid",
            "example": "e8768b4f-759c-41dd-9ee5-e52a7fd897f8",
            "description": "Software Project ID Optional in Create Software project request body and add mappings to software project request body."
          },
          "code": {
            "type": "string",
            "example": "software_project_code1",
            "description": "Software Project Code Optional in Create Software project request body and add mappings to software project request body."
          },
          "start_date": {
            "type": "string",
            "description": "Date and time software project mapping start date. Format: UTC timezone and ISO 8601 format.\n",
            "example": "2022-10-13T11:04:29Z"
          },
          "end_date": {
            "type": "string",
            "description": "Date and time software project mapping end date. Format: UTC timezone and ISO 8601 format.\n",
            "example": "2022-10-13T11:04:29Z"
          }
        }
      },
      "SoftwareProjectCreateRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Software Project1",
            "description": "Software Project name"
          },
          "code": {
            "type": "string",
            "example": "software_project_code1",
            "description": "Software Project Code"
          },
          "directory": {
            "type": "string",
            "example": "c:/software_project_code1",
            "description": "Software Project Directory Path"
          },
          "documentation": {
            "type": "string",
            "example": "c:/software_project_code1/documentation",
            "description": "Software Project Documentation Path"
          },
          "resources": {
            "$ref": "#/components/schemas/ArrayOfSoftwareProjectResource"
          },
          "team": {
            "$ref": "#/components/schemas/TeamIdAndName"
          },
          "account": {
            "$ref": "#/components/schemas/AccountIdAndName"
          }
        }
      },
      "MapSoftwareProjectResourcesRequest": {
        "type": "object",
        "properties": {
          "account": {
            "$ref": "#/components/schemas/AccountIdAndName"
          },
          "resources": {
            "$ref": "#/components/schemas/ArrayOfSoftwareProjectResource"
          }
        }
      },
      "ResourceTypeForSoftwareProject": {
        "description": "Resource type.",
        "type": "string",
        "enum": [
          "SCAN",
          "RELEASE_WINDOW"
        ]
      },
      "ReleaseWindowResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "example": "e8768b4f-759c-41dd-9ee5-e52a7fd897f8",
            "resourceType": "Resource ID",
            "description": "Id of the Resource that is mapped to Release Window.\ne.g Scan ID\n"
          },
          "resource_type": {
            "$ref": "#/components/schemas/ResourceTypeForReleaseWindows"
          },
          "release_window_id": {
            "type": "string",
            "format": "uuid",
            "example": "e8768b4f-759c-41dd-9ee5-e52a7fd897f8",
            "description": "Release Window ID"
          },
          "project_code": {
            "type": "string",
            "example": "software_project_code1",
            "description": "Software Project Code"
          },
          "created_on": {
            "$ref": "#/components/schemas/Date"
          },
          "created_by": {
            "type": "string",
            "format": "uuid"
          },
          "modified_on": {
            "$ref": "#/components/schemas/Date"
          },
          "modified_by": {
            "type": "string",
            "format": "uuid"
          }
        }
      },
      "ResourceTypeForReleaseWindows": {
        "description": "Resource type.",
        "type": "string",
        "enum": [
          "SCAN"
        ]
      },
      "MapResourcesToReleaseWindowRequest": {
        "type": "object",
        "properties": {
          "account": {
            "$ref": "#/components/schemas/AccountId"
          },
          "resources": {
            "$ref": "#/components/schemas/ArrayOfReleaseWindowResource"
          }
        }
      },
      "ArrayOfReleaseWindowResource": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/ReleaseWindowResource"
        }
      },
      "MapScanToReleaseWindowRequest": {
        "type": "object",
        "properties": {
          "account": {
            "$ref": "#/components/schemas/AccountId"
          },
          "resources": {
            "$ref": "#/components/schemas/ArrayOfReleaseWindowBasic"
          }
        }
      },
      "ArrayOfReleaseWindowBasic": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/ReleaseWindowBasic"
        }
      },
      "CreateConsolidatedScanRequest": {
        "type": "object",
        "properties": {
          "account": {
            "$ref": "#/components/schemas/AccountId"
          },
          "title": {
            "type": "string",
            "example": "condolidated_scan_1",
            "description": "Consolidated Scan Title"
          }
        }
      },
      "ConsolidatedScanResponse": {
        "type": "object",
        "properties": {
          "account": {
            "$ref": "#/components/schemas/AccountId"
          },
          "title": {
            "type": "string",
            "example": "condolidated_scan_1",
            "description": "Consolidated Scan Title"
          },
          "id": {
            "type": "string",
            "format": "uuid",
            "example": "e8768b4f-759c-41dd-9ee5-e52a7fd897f8",
            "description": "Consolidated Scan ID"
          },
          "release_group_id": {
            "type": "string",
            "example": 1234,
            "description": "Fossa Release Group ID"
          },
          "release_id": {
            "type": "string",
            "example": 666676,
            "description": "Fossa Release ID"
          },
          "organization_id": {
            "type": "string",
            "example": 666676,
            "description": "Fossa Organization ID"
          },
          "created_on": {
            "description": "Date and time when consolidated scan was created.",
            "type": "string",
            "format": "date-time"
          },
          "created_by": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "modified_on": {
            "description": "Date and time when consolidated scan was modified.",
            "type": "string",
            "format": "date-time"
          },
          "modified_by": {
            "$ref": "#/components/schemas/UserDetail"
          },
          "scan_summary": {
            "description": "JSON string with scan summary details.",
            "type": "string"
          },
          "type": {
            "type": "string",
            "description": "Scan Type.",
            "enum": [
              "CONSOLIDATED_SCAN"
            ]
          },
          "result_status": {
            "type": "string",
            "description": "Consolidated Scan status.",
            "enum": [
              "MERGED",
              "MERGED_ANALYZING"
            ]
          },
          "release_window": {
            "$ref": "#/components/schemas/ReleaseWindowBasic"
          }
        }
      }
    }
  }
}