# Google Cloud Key Management Service (KMS) API . projects . locations . keyRings . cryptoKeys . cryptoKeyVersions

## Instance Methods

Create a new CryptoKeyVersion in a CryptoKey.

Schedule a CryptoKeyVersion for destruction.

Returns metadata for a given CryptoKeyVersion.

Lists CryptoKeyVersions.

Retrieves the next page of results.

Update a CryptoKeyVersion's metadata.

Restore a CryptoKeyVersion in the

### Method Details

`create(parent, body, x__xgafv=None)`

    Create a new CryptoKeyVersion in a CryptoKey.

    The server will assign the next sequential id. If unset,
    state will be set to
    ENABLED.

    Args:
      parent: string, Required. The name of the CryptoKey associated with
    the CryptoKeyVersions. (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # A CryptoKeyVersion represents an individual cryptographic key, and the
        # associated key material.
        #
        # It can be used for cryptographic operations either directly, or via its
        # parent CryptoKey, in which case the server will choose the appropriate
        # version for the operation.
      "state": "A String", # The current state of the CryptoKeyVersion.
      "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
          # for destruction. Only present if state is
          # DESTROY_SCHEDULED.
      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
      "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
          # destroyed. Only present if state is
          # DESTROYED.
      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
    }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A CryptoKeyVersion represents an individual cryptographic key, and the
          # associated key material.
          #
          # It can be used for cryptographic operations either directly, or via its
          # parent CryptoKey, in which case the server will choose the appropriate
          # version for the operation.
        "state": "A String", # The current state of the CryptoKeyVersion.
        "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
            # for destruction. Only present if state is
            # DESTROY_SCHEDULED.
        "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
        "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
            # destroyed. Only present if state is
            # DESTROYED.
        "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
            # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
      }

`destroy(name, body, x__xgafv=None)`

    Schedule a CryptoKeyVersion for destruction.

    Upon calling this method, CryptoKeyVersion.state will be set to
    DESTROY_SCHEDULED
    and destroy_time will be set to a time 24
    hours in the future, at which point the state
    will be changed to
    DESTROYED, and the key
    material will be irrevocably destroyed.

    Before the destroy_time is reached,
    RestoreCryptoKeyVersion may be called to reverse the process.

    Args:
      name: string, The resource name of the CryptoKeyVersion to destroy. (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # Request message for KeyManagementService.DestroyCryptoKeyVersion.
      }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A CryptoKeyVersion represents an individual cryptographic key, and the
          # associated key material.
          #
          # It can be used for cryptographic operations either directly, or via its
          # parent CryptoKey, in which case the server will choose the appropriate
          # version for the operation.
        "state": "A String", # The current state of the CryptoKeyVersion.
        "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
            # for destruction. Only present if state is
            # DESTROY_SCHEDULED.
        "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
        "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
            # destroyed. Only present if state is
            # DESTROYED.
        "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
            # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
      }

`get(name, x__xgafv=None)`

    Returns metadata for a given CryptoKeyVersion.

    Args:
      name: string, The name of the CryptoKeyVersion to get. (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A CryptoKeyVersion represents an individual cryptographic key, and the
          # associated key material.
          #
          # It can be used for cryptographic operations either directly, or via its
          # parent CryptoKey, in which case the server will choose the appropriate
          # version for the operation.
        "state": "A String", # The current state of the CryptoKeyVersion.
        "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
            # for destruction. Only present if state is
            # DESTROY_SCHEDULED.
        "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
        "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
            # destroyed. Only present if state is
            # DESTROYED.
        "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
            # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
      }

`list(parent, pageSize=None, pageToken=None, x__xgafv=None)`

    Lists CryptoKeyVersions.

    Args:
      parent: string, Required. The resource name of the CryptoKey to list, in the format
    `projects/*/locations/*/keyRings/*/cryptoKeys/*`. (required)
      pageSize: integer, Optional limit on the number of CryptoKeyVersions to
    include in the response. Further CryptoKeyVersions can
    subsequently be obtained by including the
    ListCryptoKeyVersionsResponse.next_page_token in a subsequent request.
    If unspecified, the server will pick an appropriate default.
      pageToken: string, Optional pagination token, returned earlier via
    ListCryptoKeyVersionsResponse.next_page_token.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Response message for KeyManagementService.ListCryptoKeyVersions.
        "nextPageToken": "A String", # A token to retrieve next page of results. Pass this value in
            # ListCryptoKeyVersionsRequest.page_token to retrieve the next page of
            # results.
        "totalSize": 42, # The total number of CryptoKeyVersions that matched the
            # query.
        "cryptoKeyVersions": [ # The list of CryptoKeyVersions.
          { # A CryptoKeyVersion represents an individual cryptographic key, and the
              # associated key material.
              #
              # It can be used for cryptographic operations either directly, or via its
              # parent CryptoKey, in which case the server will choose the appropriate
              # version for the operation.
            "state": "A String", # The current state of the CryptoKeyVersion.
            "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
                # for destruction. Only present if state is
                # DESTROY_SCHEDULED.
            "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
            "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
                # destroyed. Only present if state is
                # DESTROYED.
            "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
                # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
          },
        ],
      }

`list_next(previous_request, previous_response)`

    Retrieves the next page of results.

    Args:
      previous_request: The request for the previous page. (required)
      previous_response: The response from the request for the previous page. (required)

    Returns:
      A request object that you can call 'execute()' on to request the next
      page. Returns None if there are no more items in the collection.

`patch(name, body, updateMask=None, x__xgafv=None)`

    Update a CryptoKeyVersion's metadata.

    state may be changed between
    ENABLED and
    DISABLED using this
    method. See DestroyCryptoKeyVersion and RestoreCryptoKeyVersion to
    move between other states.

    Args:
      name: string, Output only. The resource name for this CryptoKeyVersion in the format
    `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`. (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # A CryptoKeyVersion represents an individual cryptographic key, and the
        # associated key material.
        #
        # It can be used for cryptographic operations either directly, or via its
        # parent CryptoKey, in which case the server will choose the appropriate
        # version for the operation.
      "state": "A String", # The current state of the CryptoKeyVersion.
      "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
          # for destruction. Only present if state is
          # DESTROY_SCHEDULED.
      "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
      "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
          # destroyed. Only present if state is
          # DESTROYED.
      "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
          # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
    }

      updateMask: string, Required list of fields to be updated in this request.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A CryptoKeyVersion represents an individual cryptographic key, and the
          # associated key material.
          #
          # It can be used for cryptographic operations either directly, or via its
          # parent CryptoKey, in which case the server will choose the appropriate
          # version for the operation.
        "state": "A String", # The current state of the CryptoKeyVersion.
        "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
            # for destruction. Only present if state is
            # DESTROY_SCHEDULED.
        "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
        "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
            # destroyed. Only present if state is
            # DESTROYED.
        "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
            # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
      }

`restore(name, body, x__xgafv=None)`

    Restore a CryptoKeyVersion in the
    DESTROY_SCHEDULED,
    state.

    Upon restoration of the CryptoKeyVersion, state
    will be set to DISABLED,
    and destroy_time will be cleared.

    Args:
      name: string, The resource name of the CryptoKeyVersion to restore. (required)
      body: object, The request body. (required)
        The object takes the form of:

    { # Request message for KeyManagementService.RestoreCryptoKeyVersion.
      }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A CryptoKeyVersion represents an individual cryptographic key, and the
          # associated key material.
          #
          # It can be used for cryptographic operations either directly, or via its
          # parent CryptoKey, in which case the server will choose the appropriate
          # version for the operation.
        "state": "A String", # The current state of the CryptoKeyVersion.
        "destroyTime": "A String", # Output only. The time this CryptoKeyVersion's key material is scheduled
            # for destruction. Only present if state is
            # DESTROY_SCHEDULED.
        "createTime": "A String", # Output only. The time at which this CryptoKeyVersion was created.
        "destroyEventTime": "A String", # Output only. The time this CryptoKeyVersion's key material was
            # destroyed. Only present if state is
            # DESTROYED.
        "name": "A String", # Output only. The resource name for this CryptoKeyVersion in the format
            # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
      }