openapi: 3.0.3
info:
  title: KMS/SecretManager/CloudHSM API
  version: 1.1.1
  description: さくらのクラウド KMS / SecretManager / CloudHSM API
servers:
- url: https://secure.sakura.ad.jp/cloud/zone/is1a/api/cloud/1.1
  description: 石狩第1ゾーン
- url: https://secure.sakura.ad.jp/cloud/zone/is1b/api/cloud/1.1
  description: 石狩第2ゾーン
- url: https://secure.sakura.ad.jp/cloud/zone/is1c/api/cloud/1.1
  description: 石狩第3ゾーン
- url: https://secure.sakura.ad.jp/cloud/zone/tk1a/api/cloud/1.1
  description: 東京第1ゾーン
- url: https://secure.sakura.ad.jp/cloud/zone/tk1b/api/cloud/1.1
  description: 東京第2ゾーン
paths:
  /cloudhsm/cloudhsms:
    get:
      operationId: listCloudHSMs
      parameters:
      - name: Count
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: From
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - cloudhsm
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCloudHSMList'
          description: ''
    post:
      operationId: createCloudHSM
      tags:
      - cloudhsm
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WrappedCreateCloudHSM'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedCreateCloudHSM'
          description: ''
  /cloudhsm/cloudhsms/{cloudhsm_resource_id}/clients:
    get:
      operationId: listCloudHSMClients
      parameters:
      - name: Count
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: From
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: path
        name: cloudhsm_resource_id
        schema:
          type: string
        required: true
      tags:
      - cloudhsm
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCloudHSMClientList'
          description: ''
    post:
      operationId: createCloudHSMClient
      parameters:
      - in: path
        name: cloudhsm_resource_id
        schema:
          type: string
        required: true
      tags:
      - cloudhsm
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WrappedCreateCloudHSMClient'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedCreateCloudHSMClient'
          description: ''
  /cloudhsm/cloudhsms/{cloudhsm_resource_id}/clients/{id}:
    get:
      operationId: readCloudHSMClient
      parameters:
      - in: path
        name: cloudhsm_resource_id
        schema:
          type: string
        required: true
      - in: path
        name: id
        schema:
          type: string
        description: A unique value identifying this CloudHSMクライアント.
        required: true
      tags:
      - cloudhsm
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedCloudHSMClient'
          description: ''
    put:
      operationId: updateCloudHSMClient
      parameters:
      - in: path
        name: cloudhsm_resource_id
        schema:
          type: string
        required: true
      - in: path
        name: id
        schema:
          type: string
        description: A unique value identifying this CloudHSMクライアント.
        required: true
      tags:
      - cloudhsm
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WrappedCloudHSMClient'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedCloudHSMClient'
          description: ''
    patch:
      operationId: patchCloudHSMClient
      parameters:
      - in: path
        name: cloudhsm_resource_id
        schema:
          type: string
        required: true
      - in: path
        name: id
        schema:
          type: string
        description: A unique value identifying this CloudHSMクライアント.
        required: true
      tags:
      - cloudhsm
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedWrappedCloudHSMClient'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedCloudHSMClient'
          description: ''
    delete:
      operationId: deleteCloudHSMClient
      parameters:
      - in: path
        name: cloudhsm_resource_id
        schema:
          type: string
        required: true
      - in: path
        name: id
        schema:
          type: string
        description: A unique value identifying this CloudHSMクライアント.
        required: true
      tags:
      - cloudhsm
      responses:
        '204':
          description: No response body
  /cloudhsm/cloudhsms/{resource_id}:
    get:
      operationId: readCloudHSM
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - cloudhsm
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedCloudHSM'
          description: ''
    put:
      operationId: updateCloudHSM
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - cloudhsm
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WrappedCloudHSM'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedCloudHSM'
          description: ''
    patch:
      operationId: patchCloudHSM
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - cloudhsm
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedWrappedCloudHSM'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedCloudHSM'
          description: ''
    delete:
      operationId: deleteCloudHSM
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - cloudhsm
      responses:
        '204':
          description: No response body
  /cloudhsm/cloudhsms/{resource_id}/peers:
    get:
      operationId: listCloudHSMPeers
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - cloudhsm
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedCloudHSM'
          description: ''
    post:
      operationId: createCloudHSMPeer
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - cloudhsm
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WrappedCloudHSM'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedCloudHSM'
          description: ''
  /cloudhsm/cloudhsms/{resource_id}/peers/{peer_id}:
    delete:
      operationId: deleteCloudHSMPeer
      parameters:
      - in: path
        name: peer_id
        schema:
          type: string
        required: true
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - cloudhsm
      responses:
        '204':
          description: No response body
  /cloudhsm/licenses:
    get:
      operationId: listCloudHSMLicenses
      parameters:
      - name: Count
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: From
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - cloudhsm
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCloudHSMSoftwareLicenseList'
          description: ''
    post:
      operationId: createCloudHSMLicense
      tags:
      - cloudhsm
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WrappedCreateCloudHSMSoftwareLicense'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedCreateCloudHSMSoftwareLicense'
          description: ''
  /cloudhsm/licenses/{license_resource_id}/documents:
    get:
      operationId: listCloudHSMDocuments
      parameters:
      - name: Count
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: From
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: path
        name: license_resource_id
        schema:
          type: string
        required: true
      tags:
      - cloudhsm
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedCloudHSMDocumentList'
          description: ''
  /cloudhsm/licenses/{license_resource_id}/documents/{id}:
    get:
      operationId: readCloudHSMDocument
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: A unique value identifying this CloudHSMドキュメント.
        required: true
      - in: path
        name: license_resource_id
        schema:
          type: string
        required: true
      tags:
      - cloudhsm
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedCloudHSMDocument'
          description: ''
  /cloudhsm/licenses/{license_resource_id}/documents/{id}/download:
    post:
      operationId: downloadCloudHSMDocument
      parameters:
      - in: path
        name: id
        schema:
          type: string
        description: A unique value identifying this CloudHSMドキュメント.
        required: true
      - in: path
        name: license_resource_id
        schema:
          type: string
        required: true
      tags:
      - cloudhsm
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WrappedCloudHSMDocumentDownload'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedCloudHSMDocumentDownload'
          description: ''
  /cloudhsm/licenses/{resource_id}:
    get:
      operationId: readCloudHSMLicense
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - cloudhsm
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedCloudHSMSoftwareLicense'
          description: ''
    put:
      operationId: updateCloudHSMLicense
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - cloudhsm
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WrappedCloudHSMSoftwareLicense'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedCloudHSMSoftwareLicense'
          description: ''
    patch:
      operationId: patchCloudHSMLicense
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - cloudhsm
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedWrappedCloudHSMSoftwareLicense'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedCloudHSMSoftwareLicense'
          description: ''
    delete:
      operationId: deleteCloudHSMLicense
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - cloudhsm
      responses:
        '204':
          description: No response body
  /kms/keys:
    get:
      operationId: listKeys
      parameters:
      - name: Count
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: From
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - kms-key
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedKeyList'
          description: ''
    post:
      operationId: createKey
      tags:
      - kms-key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WrappedCreateKey'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedCreateKey'
          description: ''
  /kms/keys/{resource_id}:
    get:
      operationId: readKey
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - kms-key
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedKey'
          description: ''
    put:
      operationId: updateKey
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - kms-key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WrappedKey'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedKey'
          description: ''
    patch:
      operationId: patchKey
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - kms-key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedWrappedKey'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedKey'
          description: ''
    delete:
      operationId: deleteKey
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - kms-key
      responses:
        '204':
          description: No response body
  /kms/keys/{resource_id}/decrypt:
    post:
      operationId: decryptDataWithKey
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - kms-key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WrappedKey'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedKey'
          description: ''
  /kms/keys/{resource_id}/encrypt:
    post:
      operationId: encryptDataWithKey
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - kms-key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WrappedKey'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedKey'
          description: ''
  /kms/keys/{resource_id}/rotate:
    post:
      operationId: rotateKey
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - kms-key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WrappedKey'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedKey'
          description: ''
  /kms/keys/{resource_id}/schedule-destruction:
    post:
      operationId: scheduleKeyDestruction
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - kms-key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WrappedScheduleDestructionKey'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedScheduleDestructionKey'
          description: ''
  /kms/keys/{resource_id}/status:
    post:
      operationId: changeKeyStatus
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - kms-key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WrappedChangeKeyState'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedChangeKeyState'
          description: ''
  /secretmanager/secret-rotation-schedules:
    get:
      operationId: listSecretRotationSchedules
      parameters:
      - name: Count
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: From
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - secretmanager-vault
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSecretRotationScheduleList'
          description: ''
    post:
      operationId: createSecretRotationSchedule
      tags:
      - secretmanager-vault
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WrappedCreateSecretRotationSchedule'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedCreateSecretRotationSchedule'
          description: ''
  /secretmanager/secret-rotation-schedules/{resource_id}:
    get:
      operationId: readSecretRotationSchedule
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - secretmanager-vault
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedSecretRotationSchedule'
          description: ''
    put:
      operationId: updateSecretRotationSchedule
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - secretmanager-vault
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WrappedSecretRotationSchedule'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedSecretRotationSchedule'
          description: ''
    patch:
      operationId: patchSecretRotationSchedule
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - secretmanager-vault
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedWrappedSecretRotationSchedule'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedSecretRotationSchedule'
          description: ''
    delete:
      operationId: deleteSecretRotationSchedule
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - secretmanager-vault
      responses:
        '204':
          description: No response body
  /secretmanager/secret-rotation-schedules/{resource_id}/execute:
    post:
      operationId: executeSecretRotation
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - secretmanager-vault
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WrappedSecretRotationSchedule'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedSecretRotationSchedule'
          description: ''
  /secretmanager/secret-rotation-schedules/{secret_rotation_schedule_resource_id}/histories:
    get:
      operationId: listSecretRotationScheduleHistories
      parameters:
      - name: Count
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: From
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: path
        name: secret_rotation_schedule_resource_id
        schema:
          type: string
        required: true
      tags:
      - secretmanager-vault
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSecretRotationScheduleHistoryList'
          description: ''
  /secretmanager/vaults:
    get:
      operationId: listVaults
      parameters:
      - name: Count
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: From
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - secretmanager-vault
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedVaultList'
          description: ''
    post:
      operationId: createVault
      tags:
      - secretmanager-vault
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WrappedCreateVault'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedCreateVault'
          description: ''
  /secretmanager/vaults/{resource_id}:
    get:
      operationId: readVault
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - secretmanager-vault
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedVault'
          description: ''
    put:
      operationId: updateVault
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - secretmanager-vault
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WrappedVault'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedVault'
          description: ''
    patch:
      operationId: patchVault
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - secretmanager-vault
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedWrappedVault'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedVault'
          description: ''
    delete:
      operationId: deleteVault
      parameters:
      - in: path
        name: resource_id
        schema:
          type: string
          title: リソースID
        required: true
      tags:
      - secretmanager-vault
      responses:
        '204':
          description: No response body
  /secretmanager/vaults/{vault_resource_id}/secrets:
    get:
      operationId: listVaultSecrets
      parameters:
      - name: Count
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: From
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: path
        name: vault_resource_id
        schema:
          type: string
        required: true
      tags:
      - secretmanager-vault
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedSecretList'
          description: ''
    post:
      operationId: createVaultSecret
      description: 新しいバージョンを作成します。シークレット値は最新を含む50世代まで保持され、より古い世代は削除されます。
      parameters:
      - in: path
        name: vault_resource_id
        schema:
          type: string
        required: true
      tags:
      - secretmanager-vault
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WrappedCreateSecret'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedCreateSecret'
          description: ''
  /secretmanager/vaults/{vault_resource_id}/secrets/unveil:
    post:
      operationId: unveilSecret
      description: シークレット値を取得します。取得できるのは最新を含む50世代までです。
      parameters:
      - in: path
        name: vault_resource_id
        schema:
          type: string
        required: true
      tags:
      - secretmanager-vault
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WrappedUnveil'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WrappedUnveil'
          description: ''
security:
- basicAuth: []
components:
  schemas:
    ChangeKeyState:
      type: object
      description: 鍵の状態を変更するためのシリアライザ
      properties:
        Status:
          enum:
          - active
          - restricted
          - suspended
          type: string
          description: |-
            * `active` - 有効
            * `restricted` - 制限付き
            * `suspended` - 一時停止
          x-spec-enum-id: c07b47aad4f4d40c
      required:
      - Status
    CloudHSM:
      type: object
      properties:
        ID:
          type: string
          readOnly: true
          example: '110000000000'
        CreatedAt:
          $ref: '#/components/schemas/DateTime'
        ModifiedAt:
          $ref: '#/components/schemas/DateTime'
        ServiceClass:
          enum:
          - cloud/cloudhsm/partition
          type: string
          description: '* `cloud/cloudhsm/partition` - LunaHSM'
          x-spec-enum-id: d2f84fe5a8c0b61f
          readOnly: true
          title: サービスクラス
        Availability:
          enum:
          - precreate
          - available
          - discontinued
          type: string
          description: |-
            * `precreate` - 準備中
            * `available` - 利用可能
            * `discontinued` - 廃止
          x-spec-enum-id: 329069c36229258c
          readOnly: true
          title: 状態
        Name:
          type: string
          title: 名前
          maxLength: 255
        Description:
          type: string
          title: 説明
        Tags:
          type: array
          items:
            type: string
            minLength: 1
          nullable: true
        IPv4NetworkAddress:
          type: string
          title: IPv4ネットワークアドレス
          example: 192.168.100.0
        IPv4PrefixLength:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          title: IPv4プレフィックス長
          example: 24
        IPv4Address:
          type: string
          readOnly: true
          example: 192.168.100.11
        LocalRouter:
          type: string
          readOnly: true
        InitialData:
          type: string
          readOnly: true
      required:
      - IPv4NetworkAddress
      - IPv4PrefixLength
      - Name
    CloudHSMClient:
      type: object
      properties:
        ID:
          type: string
          readOnly: true
          example: 01JP9500000000000000000000
        CreatedAt:
          $ref: '#/components/schemas/DateTime'
        ModifiedAt:
          $ref: '#/components/schemas/DateTime'
        Availability:
          enum:
          - precreate
          - available
          - discontinued
          type: string
          description: |-
            * `precreate` - 準備中
            * `available` - 利用可能
            * `discontinued` - 廃止
          x-spec-enum-id: 329069c36229258c
          readOnly: true
          title: 状態
        Name:
          type: string
          title: 名前
          maxLength: 255
        Certificate:
          type: string
          readOnly: true
          title: 証明書
          example: '-----BEGIN CERTIFICATE-----\nMIIC0DCCAbigAwIBAgIJAJ.....\n-----END
            CERTIFICATE-----'
      required:
      - Name
    CloudHSMDocument:
      type: object
      properties:
        ID:
          type: string
          readOnly: true
          example: '110000000000'
        CreatedAt:
          $ref: '#/components/schemas/DateTime'
        ModifiedAt:
          $ref: '#/components/schemas/DateTime'
        Name:
          type: string
          readOnly: true
          title: ドキュメント名
    CloudHSMDocumentDownload:
      type: object
      properties:
        URL:
          type: string
          format: uri
          readOnly: true
    CloudHSMSoftwareLicense:
      type: object
      properties:
        ID:
          type: string
          readOnly: true
          example: '110000000000'
        CreatedAt:
          $ref: '#/components/schemas/DateTime'
        ModifiedAt:
          $ref: '#/components/schemas/DateTime'
        ServiceClass:
          enum:
          - cloud/cloudhsm/license/l7
          type: string
          description: '* `cloud/cloudhsm/license/l7` - Luna HSM Client'
          x-spec-enum-id: 1a833033bfd882c9
          readOnly: true
          title: サービスクラス
        Name:
          type: string
          title: 名前
          maxLength: 255
        Description:
          type: string
          title: 説明
        Tags:
          type: array
          items:
            type: string
            minLength: 1
          nullable: true
      required:
      - Name
    CreateCloudHSM:
      type: object
      properties:
        ID:
          type: string
          readOnly: true
          example: '110000000000'
        CreatedAt:
          $ref: '#/components/schemas/DateTime'
        ModifiedAt:
          $ref: '#/components/schemas/DateTime'
        ServiceClass:
          enum:
          - cloud/cloudhsm/partition
          type: string
          description: '* `cloud/cloudhsm/partition` - LunaHSM'
          x-spec-enum-id: d2f84fe5a8c0b61f
          readOnly: true
          title: サービスクラス
        Availability:
          enum:
          - precreate
          - available
          - discontinued
          type: string
          description: |-
            * `precreate` - 準備中
            * `available` - 利用可能
            * `discontinued` - 廃止
          x-spec-enum-id: 329069c36229258c
          readOnly: true
          title: 状態
        Name:
          type: string
          title: 名前
          maxLength: 255
        Description:
          type: string
          title: 説明
        Tags:
          type: array
          items:
            type: string
            minLength: 1
          nullable: true
        IPv4NetworkAddress:
          type: string
          title: IPv4ネットワークアドレス
          example: 192.168.100.0
        IPv4PrefixLength:
          type: integer
          maximum: 9223372036854775807
          minimum: 0
          format: int64
          title: IPv4プレフィックス長
          example: 24
        IPv4Address:
          type: string
          readOnly: true
          example: 192.168.100.11
      required:
      - IPv4NetworkAddress
      - IPv4PrefixLength
      - Name
    CreateCloudHSMClient:
      type: object
      properties:
        ID:
          type: string
          readOnly: true
          example: '110000000000'
        CreatedAt:
          $ref: '#/components/schemas/DateTime'
        ModifiedAt:
          $ref: '#/components/schemas/DateTime'
        Availability:
          enum:
          - precreate
          - available
          - discontinued
          type: string
          description: |-
            * `precreate` - 準備中
            * `available` - 利用可能
            * `discontinued` - 廃止
          x-spec-enum-id: 329069c36229258c
          readOnly: true
          title: 状態
        Name:
          type: string
          title: 名前
          maxLength: 255
        Certificate:
          type: string
          example: '-----BEGIN CERTIFICATE-----\nMIIC0DCCAbigAwIBAgIJAJ.....\n-----END
            CERTIFICATE-----'
      required:
      - Certificate
      - Name
    CreateCloudHSMSoftwareLicense:
      type: object
      properties:
        ID:
          type: string
          readOnly: true
          example: '110000000000'
        CreatedAt:
          $ref: '#/components/schemas/DateTime'
        ModifiedAt:
          $ref: '#/components/schemas/DateTime'
        ServiceClass:
          enum:
          - cloud/cloudhsm/license/l7
          type: string
          description: '* `cloud/cloudhsm/license/l7` - Luna HSM Client'
          x-spec-enum-id: 1a833033bfd882c9
          title: サービスクラス
        Name:
          type: string
          title: 名前
          maxLength: 255
        Description:
          type: string
          title: 説明
        Tags:
          type: array
          items:
            type: string
            minLength: 1
          nullable: true
      required:
      - Name
      - ServiceClass
    CreateKey:
      type: object
      properties:
        ID:
          type: string
          readOnly: true
          example: '110000000000'
        CreatedAt:
          $ref: '#/components/schemas/DateTime'
        ModifiedAt:
          $ref: '#/components/schemas/DateTime'
        ServiceClass:
          enum:
          - cloud/kms/key
          - cloud/kms/key/legacy
          type: string
          description: |-
            * `cloud/kms/key` - 通常
            * `cloud/kms/key/legacy` - レガシー
          x-spec-enum-id: cdc4cc214c741297
          readOnly: true
          title: サービスクラス
        Name:
          type: string
          title: 名前
          maxLength: 255
        Description:
          type: string
          title: 説明
        KeyOrigin:
          enum:
          - generated
          - imported
          type: string
          description: |-
            * `generated` - 生成
            * `imported` - インポート
          x-spec-enum-id: ce5bfb1ae3eae901
          readOnly: true
          title: 鍵の生成元
        LatestVersion:
          type: integer
          readOnly: true
          example: 0
        Status:
          enum:
          - active
          - restricted
          - suspended
          - pending_destruction
          - destroyed
          type: string
          description: |-
            * `active` - 有効
            * `restricted` - 制限付き
            * `suspended` - 一時停止
            * `pending_destruction` - 削除保留
            * `destroyed` - 削除済み
          x-spec-enum-id: 16d501464180eaec
          readOnly: true
          title: 鍵の状態
        DeletionScheduledAfter:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          title: 削除予定日時
          description: この日時以降に削除される予定です
          example: '2025-02-05T12:19:22.551827+09:00'
        Tags:
          type: array
          items:
            type: string
            minLength: 1
          nullable: true
        PlainKey:
          type: string
          writeOnly: true
      required:
      - Name
    CreateSecret:
      type: object
      properties:
        Name:
          type: string
          title: 名前
          maxLength: 255
        Value:
          type: string
          writeOnly: true
        LatestVersion:
          type: integer
          readOnly: true
          example: 0
      required:
      - Name
      - Value
    CreateSecretRotationSchedule:
      type: object
      properties:
        ID:
          type: string
          readOnly: true
          example: '110000000000'
        CreatedAt:
          $ref: '#/components/schemas/DateTime'
        ModifiedAt:
          $ref: '#/components/schemas/DateTime'
        Name:
          type: string
          title: 名前
          maxLength: 255
        Description:
          type: string
          title: 説明
        Tags:
          type: array
          items:
            type: string
            minLength: 1
          nullable: true
        ServicePrincipalID:
          type: string
          title: サービスプリンシパルID
          maxLength: 20
        Secret:
          $ref: '#/components/schemas/SecretRotationScheduleSecret'
        Target:
          $ref: '#/components/schemas/SecretRotationScheduleTarget'
        RotationInterval:
          type: string
          title: ローテーション間隔
          maxLength: 20
      required:
      - Name
      - RotationInterval
      - Secret
      - ServicePrincipalID
      - Target
    CreateVault:
      type: object
      properties:
        ID:
          type: string
          readOnly: true
          example: '110000000000'
        CreatedAt:
          $ref: '#/components/schemas/DateTime'
        ModifiedAt:
          $ref: '#/components/schemas/DateTime'
        Name:
          type: string
          title: 名前
          maxLength: 255
        Description:
          type: string
          title: 説明
        KmsKeyID:
          type: string
          title: KMS 鍵ID
          maxLength: 255
          example: '110000000000'
        Tags:
          type: array
          items:
            type: string
            minLength: 1
          nullable: true
      required:
      - KmsKeyID
      - Name
    Key:
      type: object
      properties:
        ID:
          type: string
          readOnly: true
          example: '110000000000'
        CreatedAt:
          $ref: '#/components/schemas/DateTime'
        ModifiedAt:
          $ref: '#/components/schemas/DateTime'
        ServiceClass:
          enum:
          - cloud/kms/key
          - cloud/kms/key/legacy
          type: string
          description: |-
            * `cloud/kms/key` - 通常
            * `cloud/kms/key/legacy` - レガシー
          x-spec-enum-id: cdc4cc214c741297
          readOnly: true
          title: サービスクラス
        Name:
          type: string
          title: 名前
          maxLength: 255
        Description:
          type: string
          title: 説明
        KeyOrigin:
          enum:
          - generated
          - imported
          type: string
          description: |-
            * `generated` - 生成
            * `imported` - インポート
          x-spec-enum-id: ce5bfb1ae3eae901
          readOnly: true
          title: 鍵の生成元
        LatestVersion:
          type: integer
          readOnly: true
          example: 0
        Status:
          enum:
          - active
          - restricted
          - suspended
          - pending_destruction
          - destroyed
          type: string
          description: |-
            * `active` - 有効
            * `restricted` - 制限付き
            * `suspended` - 一時停止
            * `pending_destruction` - 削除保留
            * `destroyed` - 削除済み
          x-spec-enum-id: 16d501464180eaec
          readOnly: true
          title: 鍵の状態
        DeletionScheduledAfter:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          title: 削除予定日時
          description: この日時以降に削除される予定です
          example: '2025-02-05T12:19:22.551827+09:00'
        Tags:
          type: array
          items:
            type: string
            minLength: 1
          nullable: true
      required:
      - Name
    PaginatedCloudHSMClientList:
      type: object
      required:
      - Count
      - From
      - Total
      - Clients
      properties:
        Count:
          type: integer
          example: 10
        From:
          type: integer
          example: 0
        Total:
          type: integer
          example: 10
        Clients:
          type: array
          items:
            $ref: '#/components/schemas/CloudHSMClient'
    PaginatedCloudHSMDocumentList:
      type: object
      required:
      - Count
      - From
      - Total
      - CloudHSMDocuments
      properties:
        Count:
          type: integer
          example: 10
        From:
          type: integer
          example: 0
        Total:
          type: integer
          example: 10
        CloudHSMDocuments:
          type: array
          items:
            $ref: '#/components/schemas/CloudHSMDocument'
    PaginatedCloudHSMList:
      type: object
      required:
      - Count
      - From
      - Total
      - CloudHSMs
      properties:
        Count:
          type: integer
          example: 10
        From:
          type: integer
          example: 0
        Total:
          type: integer
          example: 10
        CloudHSMs:
          type: array
          items:
            $ref: '#/components/schemas/CloudHSM'
    PaginatedCloudHSMSoftwareLicenseList:
      type: object
      required:
      - Count
      - From
      - Total
      - Licenses
      properties:
        Count:
          type: integer
          example: 10
        From:
          type: integer
          example: 0
        Total:
          type: integer
          example: 10
        Licenses:
          type: array
          items:
            $ref: '#/components/schemas/CloudHSMSoftwareLicense'
    PaginatedKeyList:
      type: object
      required:
      - Count
      - From
      - Total
      - Keys
      properties:
        Count:
          type: integer
          example: 10
        From:
          type: integer
          example: 0
        Total:
          type: integer
          example: 10
        Keys:
          type: array
          items:
            $ref: '#/components/schemas/Key'
    PaginatedSecretList:
      type: object
      required:
      - Count
      - From
      - Total
      - Secrets
      properties:
        Count:
          type: integer
          example: 10
        From:
          type: integer
          example: 0
        Total:
          type: integer
          example: 10
        Secrets:
          type: array
          items:
            $ref: '#/components/schemas/Secret'
    PaginatedSecretRotationScheduleHistoryList:
      type: object
      required:
      - Count
      - From
      - Total
      - Histories
      properties:
        Count:
          type: integer
          example: 10
        From:
          type: integer
          example: 0
        Total:
          type: integer
          example: 10
        Histories:
          type: array
          items:
            $ref: '#/components/schemas/SecretRotationScheduleHistory'
    PaginatedSecretRotationScheduleList:
      type: object
      required:
      - Count
      - From
      - Total
      - SecretRotationSchedules
      properties:
        Count:
          type: integer
          example: 10
        From:
          type: integer
          example: 0
        Total:
          type: integer
          example: 10
        SecretRotationSchedules:
          type: array
          items:
            $ref: '#/components/schemas/SecretRotationSchedule'
    PaginatedVaultList:
      type: object
      required:
      - Count
      - From
      - Total
      - Vaults
      properties:
        Count:
          type: integer
          example: 10
        From:
          type: integer
          example: 0
        Total:
          type: integer
          example: 10
        Vaults:
          type: array
          items:
            $ref: '#/components/schemas/Vault'
    PatchedWrappedCloudHSM:
      type: object
      properties:
        CloudHSM:
          $ref: '#/components/schemas/CloudHSM'
    PatchedWrappedCloudHSMClient:
      type: object
      properties:
        Client:
          $ref: '#/components/schemas/CloudHSMClient'
    PatchedWrappedCloudHSMSoftwareLicense:
      type: object
      properties:
        License:
          $ref: '#/components/schemas/CloudHSMSoftwareLicense'
    PatchedWrappedKey:
      type: object
      properties:
        Key:
          $ref: '#/components/schemas/Key'
    PatchedWrappedSecretRotationSchedule:
      type: object
      properties:
        SecretRotationSchedule:
          $ref: '#/components/schemas/SecretRotationSchedule'
    PatchedWrappedVault:
      type: object
      properties:
        Vault:
          $ref: '#/components/schemas/Vault'
    ScheduleDestructionKey:
      type: object
      description: 鍵の削除をスケジュールするためのシリアライザ
      properties:
        PendingDays:
          type: integer
          maximum: 90
          minimum: 7
          default: 7
          description: 削除をスケジュールする日数
          example: 7
    Secret:
      type: object
      properties:
        Name:
          type: string
          title: 名前
          maxLength: 255
        LatestVersion:
          type: integer
          readOnly: true
          example: 0
      required:
      - Name
    SecretRotationSchedule:
      type: object
      properties:
        ID:
          type: string
          readOnly: true
          example: '110000000000'
        CreatedAt:
          $ref: '#/components/schemas/DateTime'
        ModifiedAt:
          $ref: '#/components/schemas/DateTime'
        Name:
          type: string
          title: 名前
          maxLength: 255
        Description:
          type: string
          title: 説明
        Tags:
          type: array
          items:
            type: string
            minLength: 1
          nullable: true
        ServicePrincipalID:
          type: string
          readOnly: true
          title: サービスプリンシパルID
        Secret:
          allOf:
          - $ref: '#/components/schemas/SecretRotationScheduleSecret'
          readOnly: true
        Target:
          allOf:
          - $ref: '#/components/schemas/SecretRotationScheduleTarget'
          readOnly: true
        RotationInterval:
          type: string
          title: ローテーション間隔
          maxLength: 20
        LastExecutedAt:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          title: 最終実行日時
          example: '2025-02-05T12:19:22.551827+09:00'
        LastStatus:
          enum:
          - success
          - failed
          type: string
          description: |-
            * `success` - 成功
            * `failed` - 失敗
          x-spec-enum-id: 4489b0495568b464
          readOnly: true
          title: 最終ステータス
        LastMessage:
          type: string
          readOnly: true
          title: 最終エラーメッセージ
        ScheduledAfter:
          type: string
          format: date-time
          readOnly: true
          nullable: true
          title: 次回実行予定日時
          example: '2025-02-05T12:19:22.551827+09:00'
      required:
      - Name
      - RotationInterval
    SecretRotationScheduleHistory:
      type: object
      properties:
        ExecutedAt:
          $ref: '#/components/schemas/DateTime'
        Status:
          enum:
          - success
          - failed
          type: string
          description: |-
            * `success` - 成功
            * `failed` - 失敗
          x-spec-enum-id: 4489b0495568b464
          readOnly: true
          title: ステータス
        Message:
          type: string
          readOnly: true
          title: メッセージ
        SecretVersion:
          type: integer
          readOnly: true
          nullable: true
          title: シークレットバージョン
    SecretRotationScheduleSecret:
      type: object
      properties:
        VaultID:
          type: string
        Name:
          type: string
          maxLength: 256
      required:
      - Name
      - VaultID
    SecretRotationScheduleTarget:
      type: object
      properties:
        type:
          enum:
          - database-appliance
          - enhanced-db
          type: string
          description: |-
            * `database-appliance` - DBアプライアンス
            * `enhanced-db` - エンハンスドDB
          x-spec-enum-id: df45daa153789bf3
        ResourceID:
          type: string
          example: '110000000000'
        ReadOnlyUser:
          type: boolean
          default: false
      required:
      - ResourceID
      - type
    Unveil:
      type: object
      properties:
        Name:
          type: string
        Version:
          type: integer
          nullable: true
        Value:
          type: string
          readOnly: true
      required:
      - Name
    Vault:
      type: object
      properties:
        ID:
          type: string
          readOnly: true
          example: '110000000000'
        CreatedAt:
          $ref: '#/components/schemas/DateTime'
        ModifiedAt:
          $ref: '#/components/schemas/DateTime'
        Name:
          type: string
          title: 名前
          maxLength: 255
        Description:
          type: string
          title: 説明
        KmsKeyID:
          type: string
          readOnly: true
          title: KMS 鍵ID
          example: '110000000000'
        Tags:
          type: array
          items:
            type: string
            minLength: 1
          nullable: true
      required:
      - Name
    WrappedChangeKeyState:
      type: object
      properties:
        Key:
          $ref: '#/components/schemas/ChangeKeyState'
      required:
      - Key
    WrappedCloudHSM:
      type: object
      properties:
        CloudHSM:
          $ref: '#/components/schemas/CloudHSM'
      required:
      - CloudHSM
    WrappedCloudHSMClient:
      type: object
      properties:
        Client:
          $ref: '#/components/schemas/CloudHSMClient'
      required:
      - Client
    WrappedCloudHSMDocument:
      type: object
      properties:
        Document:
          $ref: '#/components/schemas/CloudHSMDocument'
      required:
      - Document
    WrappedCloudHSMDocumentDownload:
      type: object
      properties:
        Document:
          $ref: '#/components/schemas/CloudHSMDocumentDownload'
      required:
      - Document
    WrappedCloudHSMSoftwareLicense:
      type: object
      properties:
        License:
          $ref: '#/components/schemas/CloudHSMSoftwareLicense'
      required:
      - License
    WrappedCreateCloudHSM:
      type: object
      properties:
        CloudHSM:
          $ref: '#/components/schemas/CreateCloudHSM'
      required:
      - CloudHSM
    WrappedCreateCloudHSMClient:
      type: object
      properties:
        Client:
          $ref: '#/components/schemas/CreateCloudHSMClient'
      required:
      - Client
    WrappedCreateCloudHSMSoftwareLicense:
      type: object
      properties:
        License:
          $ref: '#/components/schemas/CreateCloudHSMSoftwareLicense'
      required:
      - License
    WrappedCreateKey:
      type: object
      properties:
        Key:
          $ref: '#/components/schemas/CreateKey'
      required:
      - Key
    WrappedCreateSecret:
      type: object
      properties:
        Secret:
          $ref: '#/components/schemas/CreateSecret'
      required:
      - Secret
    WrappedCreateSecretRotationSchedule:
      type: object
      properties:
        SecretRotationSchedule:
          $ref: '#/components/schemas/CreateSecretRotationSchedule'
      required:
      - SecretRotationSchedule
    WrappedCreateVault:
      type: object
      properties:
        Vault:
          $ref: '#/components/schemas/CreateVault'
      required:
      - Vault
    WrappedKey:
      type: object
      properties:
        Key:
          $ref: '#/components/schemas/Key'
      required:
      - Key
    WrappedScheduleDestructionKey:
      type: object
      properties:
        Key:
          $ref: '#/components/schemas/ScheduleDestructionKey'
      required:
      - Key
    WrappedSecretRotationSchedule:
      type: object
      properties:
        SecretRotationSchedule:
          $ref: '#/components/schemas/SecretRotationSchedule'
      required:
      - SecretRotationSchedule
    WrappedUnveil:
      type: object
      properties:
        Secret:
          $ref: '#/components/schemas/Unveil'
      required:
      - Secret
    WrappedVault:
      type: object
      properties:
        Vault:
          $ref: '#/components/schemas/Vault'
      required:
      - Vault
    DateTime:
      type: string
      format: iso8601
      example: '2025-02-05T12:19:22.551827+09:00'
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: APIキーとシークレットをご利用ください
