Reference documentation and code samples for the KMS Inventory V1 API class Google::Cloud::Kms::V1::CryptoKeyVersionTemplate.
A CryptoKeyVersionTemplate
specifies the properties to use when creating a new
CryptoKeyVersion, either manually
with
[CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion]
or automatically as a result of auto-rotation.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-09 UTC."],[],[],null,["# KMS Inventory V1 API - Class Google::Cloud::Kms::V1::CryptoKeyVersionTemplate (v0.15.1)\n\nVersion latestkeyboard_arrow_down\n\n- [0.15.1 (latest)](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-CryptoKeyVersionTemplate)\n- [0.15.0](/ruby/docs/reference/google-cloud-kms-inventory-v1/0.15.0/Google-Cloud-Kms-V1-CryptoKeyVersionTemplate)\n- [0.14.1](/ruby/docs/reference/google-cloud-kms-inventory-v1/0.14.1/Google-Cloud-Kms-V1-CryptoKeyVersionTemplate)\n- [0.13.0](/ruby/docs/reference/google-cloud-kms-inventory-v1/0.13.0/Google-Cloud-Kms-V1-CryptoKeyVersionTemplate)\n- [0.12.2](/ruby/docs/reference/google-cloud-kms-inventory-v1/0.12.2/Google-Cloud-Kms-V1-CryptoKeyVersionTemplate)\n- [0.11.3](/ruby/docs/reference/google-cloud-kms-inventory-v1/0.11.3/Google-Cloud-Kms-V1-CryptoKeyVersionTemplate)\n- [0.10.0](/ruby/docs/reference/google-cloud-kms-inventory-v1/0.10.0/Google-Cloud-Kms-V1-CryptoKeyVersionTemplate)\n- [0.9.1](/ruby/docs/reference/google-cloud-kms-inventory-v1/0.9.1/Google-Cloud-Kms-V1-CryptoKeyVersionTemplate)\n- [0.8.3](/ruby/docs/reference/google-cloud-kms-inventory-v1/0.8.3/Google-Cloud-Kms-V1-CryptoKeyVersionTemplate)\n- [0.7.0](/ruby/docs/reference/google-cloud-kms-inventory-v1/0.7.0/Google-Cloud-Kms-V1-CryptoKeyVersionTemplate)\n- [0.6.1](/ruby/docs/reference/google-cloud-kms-inventory-v1/0.6.1/Google-Cloud-Kms-V1-CryptoKeyVersionTemplate)\n- [0.5.0](/ruby/docs/reference/google-cloud-kms-inventory-v1/0.5.0/Google-Cloud-Kms-V1-CryptoKeyVersionTemplate)\n- [0.4.0](/ruby/docs/reference/google-cloud-kms-inventory-v1/0.4.0/Google-Cloud-Kms-V1-CryptoKeyVersionTemplate)\n- [0.3.0](/ruby/docs/reference/google-cloud-kms-inventory-v1/0.3.0/Google-Cloud-Kms-V1-CryptoKeyVersionTemplate)\n- [0.2.1](/ruby/docs/reference/google-cloud-kms-inventory-v1/0.2.1/Google-Cloud-Kms-V1-CryptoKeyVersionTemplate)\n- [0.1.0](/ruby/docs/reference/google-cloud-kms-inventory-v1/0.1.0/Google-Cloud-Kms-V1-CryptoKeyVersionTemplate) \nReference documentation and code samples for the KMS Inventory V1 API class Google::Cloud::Kms::V1::CryptoKeyVersionTemplate.\n\nA [CryptoKeyVersionTemplate](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-CryptoKeyVersionTemplate \"Google::Cloud::Kms::V1::CryptoKeyVersionTemplate (class)\")\nspecifies the properties to use when creating a new\n[CryptoKeyVersion](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-CryptoKeyVersion \"Google::Cloud::Kms::V1::CryptoKeyVersion (class)\"), either manually\nwith\n\\[CreateCryptoKeyVersion\\]\\[google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion\\]\nor automatically as a result of auto-rotation. \n\nInherits\n--------\n\n- Object \n\nExtended By\n-----------\n\n- Google::Protobuf::MessageExts::ClassMethods \n\nIncludes\n--------\n\n- Google::Protobuf::MessageExts\n\nMethods\n-------\n\n### #algorithm\n\n def algorithm() -\u003e ::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm\n\n**Returns**\n\n- ([::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm](./Google-Cloud-Kms-V1-CryptoKeyVersion-CryptoKeyVersionAlgorithm)) --- Required. [Algorithm](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-CryptoKeyVersion-CryptoKeyVersionAlgorithm \"Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm (module)\") to use when creating a [CryptoKeyVersion](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-CryptoKeyVersion \"Google::Cloud::Kms::V1::CryptoKeyVersion (class)\") based on this template.\n\n\n For backwards compatibility, GOOGLE_SYMMETRIC_ENCRYPTION is implied if both\n this field is omitted and\n [CryptoKey.purpose](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-CryptoKey#Google__Cloud__Kms__V1__CryptoKey_purpose_instance_ \"Google::Cloud::Kms::V1::CryptoKey#purpose (method)\") is\n [ENCRYPT_DECRYPT](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-CryptoKey-CryptoKeyPurpose#Google__Cloud__Kms__V1__CryptoKey__CryptoKeyPurpose__ENCRYPT_DECRYPT \"Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::ENCRYPT_DECRYPT (constant)\").\n\n### #algorithm=\n\n def algorithm=(value) -\u003e ::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm\n\n**Parameter**\n\n- **value** ([::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm](./Google-Cloud-Kms-V1-CryptoKeyVersion-CryptoKeyVersionAlgorithm)) --- Required. [Algorithm](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-CryptoKeyVersion-CryptoKeyVersionAlgorithm \"Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm (module)\") to use when creating a [CryptoKeyVersion](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-CryptoKeyVersion \"Google::Cloud::Kms::V1::CryptoKeyVersion (class)\") based on this template.\n\n\n For backwards compatibility, GOOGLE_SYMMETRIC_ENCRYPTION is implied if both\n this field is omitted and\n [CryptoKey.purpose](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-CryptoKey#Google__Cloud__Kms__V1__CryptoKey_purpose_instance_ \"Google::Cloud::Kms::V1::CryptoKey#purpose (method)\") is\n[ENCRYPT_DECRYPT](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-CryptoKey-CryptoKeyPurpose#Google__Cloud__Kms__V1__CryptoKey__CryptoKeyPurpose__ENCRYPT_DECRYPT \"Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::ENCRYPT_DECRYPT (constant)\"). \n**Returns**\n\n- ([::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm](./Google-Cloud-Kms-V1-CryptoKeyVersion-CryptoKeyVersionAlgorithm)) --- Required. [Algorithm](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-CryptoKeyVersion-CryptoKeyVersionAlgorithm \"Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm (module)\") to use when creating a [CryptoKeyVersion](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-CryptoKeyVersion \"Google::Cloud::Kms::V1::CryptoKeyVersion (class)\") based on this template.\n\n\n For backwards compatibility, GOOGLE_SYMMETRIC_ENCRYPTION is implied if both\n this field is omitted and\n [CryptoKey.purpose](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-CryptoKey#Google__Cloud__Kms__V1__CryptoKey_purpose_instance_ \"Google::Cloud::Kms::V1::CryptoKey#purpose (method)\") is\n [ENCRYPT_DECRYPT](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-CryptoKey-CryptoKeyPurpose#Google__Cloud__Kms__V1__CryptoKey__CryptoKeyPurpose__ENCRYPT_DECRYPT \"Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::ENCRYPT_DECRYPT (constant)\").\n\n### #protection_level\n\n def protection_level() -\u003e ::Google::Cloud::Kms::V1::ProtectionLevel\n\n**Returns**\n\n- ([::Google::Cloud::Kms::V1::ProtectionLevel](./Google-Cloud-Kms-V1-ProtectionLevel)) --- [ProtectionLevel](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-ProtectionLevel \"Google::Cloud::Kms::V1::ProtectionLevel (module)\") to use when creating a [CryptoKeyVersion](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-CryptoKeyVersion \"Google::Cloud::Kms::V1::CryptoKeyVersion (class)\") based on this template. Immutable. Defaults to [SOFTWARE](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-ProtectionLevel#Google__Cloud__Kms__V1__ProtectionLevel__SOFTWARE \"Google::Cloud::Kms::V1::ProtectionLevel::SOFTWARE (constant)\").\n\n### #protection_level=\n\n def protection_level=(value) -\u003e ::Google::Cloud::Kms::V1::ProtectionLevel\n\n**Parameter**\n\n- **value** ([::Google::Cloud::Kms::V1::ProtectionLevel](./Google-Cloud-Kms-V1-ProtectionLevel)) --- [ProtectionLevel](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-ProtectionLevel \"Google::Cloud::Kms::V1::ProtectionLevel (module)\") to use when creating a [CryptoKeyVersion](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-CryptoKeyVersion \"Google::Cloud::Kms::V1::CryptoKeyVersion (class)\") based on this template. Immutable. Defaults to [SOFTWARE](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-ProtectionLevel#Google__Cloud__Kms__V1__ProtectionLevel__SOFTWARE \"Google::Cloud::Kms::V1::ProtectionLevel::SOFTWARE (constant)\"). \n**Returns**\n\n- ([::Google::Cloud::Kms::V1::ProtectionLevel](./Google-Cloud-Kms-V1-ProtectionLevel)) --- [ProtectionLevel](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-ProtectionLevel \"Google::Cloud::Kms::V1::ProtectionLevel (module)\") to use when creating a [CryptoKeyVersion](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-CryptoKeyVersion \"Google::Cloud::Kms::V1::CryptoKeyVersion (class)\") based on this template. Immutable. Defaults to [SOFTWARE](/ruby/docs/reference/google-cloud-kms-inventory-v1/latest/Google-Cloud-Kms-V1-ProtectionLevel#Google__Cloud__Kms__V1__ProtectionLevel__SOFTWARE \"Google::Cloud::Kms::V1::ProtectionLevel::SOFTWARE (constant)\")."]]