public sealed class CryptoKeyVersionTemplate : IMessage<CryptoKeyVersionTemplate>, IEquatable<CryptoKeyVersionTemplate>, IDeepCloneable<CryptoKeyVersionTemplate>, IBufferMessage, IMessage
Reference documentation and code samples for the Google Cloud Key Management Service v1 API class CryptoKeyVersionTemplate.
A [CryptoKeyVersionTemplate][google.cloud.kms.v1.CryptoKeyVersionTemplate]
specifies the properties to use when creating a new
[CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], either manually
with
[CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion]
or automatically as a result of auto-rotation.
public CryptoKeyVersion.Types.CryptoKeyVersionAlgorithm Algorithm { get; set; }
Required.
[Algorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm]
to use when creating a
[CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] based on this
template.
For backwards compatibility, GOOGLE_SYMMETRIC_ENCRYPTION is implied if both
this field is omitted and
[CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] is
[ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT].
public ProtectionLevel ProtectionLevel { get; set; }
[ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] to use when creating
a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] based on this
template. Immutable. Defaults to
[SOFTWARE][google.cloud.kms.v1.ProtectionLevel.SOFTWARE].
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThe latest version of the \u003ccode\u003eCryptoKeyVersionTemplate\u003c/code\u003e is 3.16.0, as part of the Google Cloud Key Management Service v1 API.\u003c/p\u003e\n"],["\u003cp\u003eThis API class, \u003ccode\u003eCryptoKeyVersionTemplate\u003c/code\u003e, is used to specify properties for creating new \u003ccode\u003eCryptoKeyVersion\u003c/code\u003e instances, either manually or automatically via rotation.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eCryptoKeyVersionTemplate\u003c/code\u003e class is derived from the .NET \u003ccode\u003eobject\u003c/code\u003e class, implements multiple interfaces, and includes properties for setting the \u003ccode\u003eAlgorithm\u003c/code\u003e and \u003ccode\u003eProtectionLevel\u003c/code\u003e of new \u003ccode\u003eCryptoKeyVersion\u003c/code\u003e objects.\u003c/p\u003e\n"],["\u003cp\u003eThe available versions of the \u003ccode\u003eCryptoKeyVersionTemplate\u003c/code\u003e range from 2.2.0 up to the current latest 3.16.0, providing a history of updates and changes to the template.\u003c/p\u003e\n"],["\u003cp\u003eThe default Protection Level when creating a new CryptoKeyVersion based on this template is \u003ccode\u003eSOFTWARE\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Google Cloud Key Management Service v1 API - Class CryptoKeyVersionTemplate (3.18.0)\n\nVersion latestkeyboard_arrow_down\n\n- [3.18.0 (latest)](/dotnet/docs/reference/Google.Cloud.Kms.V1/latest/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [3.17.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/3.17.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [3.16.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/3.16.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [3.15.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/3.15.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [3.14.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/3.14.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [3.13.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/3.13.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [3.12.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/3.12.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [3.11.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/3.11.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [3.10.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/3.10.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [3.9.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/3.9.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [3.8.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/3.8.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [3.7.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/3.7.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [3.6.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/3.6.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [3.5.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/3.5.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [3.4.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/3.4.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [3.3.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/3.3.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [3.2.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/3.2.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [3.1.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/3.1.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [3.0.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/3.0.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [2.9.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/2.9.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [2.8.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/2.8.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [2.7.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/2.7.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [2.6.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/2.6.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [2.5.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/2.5.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [2.4.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/2.4.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [2.3.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/2.3.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate)\n- [2.2.0](/dotnet/docs/reference/Google.Cloud.Kms.V1/2.2.0/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate) \n\n public sealed class CryptoKeyVersionTemplate : IMessage\u003cCryptoKeyVersionTemplate\u003e, IEquatable\u003cCryptoKeyVersionTemplate\u003e, IDeepCloneable\u003cCryptoKeyVersionTemplate\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Google Cloud Key Management Service v1 API class CryptoKeyVersionTemplate.\n\nA \\[CryptoKeyVersionTemplate\\]\\[google.cloud.kms.v1.CryptoKeyVersionTemplate\\]\nspecifies the properties to use when creating a new\n\\[CryptoKeyVersion\\]\\[google.cloud.kms.v1.CryptoKeyVersion\\], either manually\nwith\n\\[CreateCryptoKeyVersion\\]\\[google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion\\]\nor automatically as a result of auto-rotation. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e CryptoKeyVersionTemplate \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[CryptoKeyVersionTemplate](/dotnet/docs/reference/Google.Cloud.Kms.V1/latest/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[CryptoKeyVersionTemplate](/dotnet/docs/reference/Google.Cloud.Kms.V1/latest/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[CryptoKeyVersionTemplate](/dotnet/docs/reference/Google.Cloud.Kms.V1/latest/Google.Cloud.Kms.V1.CryptoKeyVersionTemplate), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Cloud.Kms.V1](/dotnet/docs/reference/Google.Cloud.Kms.V1/latest/Google.Cloud.Kms.V1)\n\nAssembly\n--------\n\nGoogle.Cloud.Kms.V1.dll\n\nConstructors\n------------\n\n### CryptoKeyVersionTemplate()\n\n public CryptoKeyVersionTemplate()\n\n### CryptoKeyVersionTemplate(CryptoKeyVersionTemplate)\n\n public CryptoKeyVersionTemplate(CryptoKeyVersionTemplate other)\n\nProperties\n----------\n\n### Algorithm\n\n public CryptoKeyVersion.Types.CryptoKeyVersionAlgorithm Algorithm { get; set; }\n\nRequired.\n\\[Algorithm\\]\\[google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm\\]\nto use when creating a\n\\[CryptoKeyVersion\\]\\[google.cloud.kms.v1.CryptoKeyVersion\\] based on this\ntemplate.\n\nFor backwards compatibility, GOOGLE_SYMMETRIC_ENCRYPTION is implied if both\nthis field is omitted and\n\\[CryptoKey.purpose\\]\\[google.cloud.kms.v1.CryptoKey.purpose\\] is\n\\[ENCRYPT_DECRYPT\\]\\[google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT\\].\n\n### ProtectionLevel\n\n public ProtectionLevel ProtectionLevel { get; set; }\n\n\\[ProtectionLevel\\]\\[google.cloud.kms.v1.ProtectionLevel\\] to use when creating\na \\[CryptoKeyVersion\\]\\[google.cloud.kms.v1.CryptoKeyVersion\\] based on this\ntemplate. Immutable. Defaults to\n\\[SOFTWARE\\]\\[google.cloud.kms.v1.ProtectionLevel.SOFTWARE\\]."]]