diff --git a/Kms/metadata/V1/HsmManagement.php b/Kms/metadata/V1/HsmManagement.php
index a8a89e73681f..8676451892ee 100644
--- a/Kms/metadata/V1/HsmManagement.php
+++ b/Kms/metadata/V1/HsmManagement.php
@@ -23,7 +23,7 @@ public static function initOnce() {
\GPBMetadata\Google\Protobuf\GPBEmpty::initOnce();
\GPBMetadata\Google\Protobuf\Timestamp::initOnce();
$pool->internalAddGeneratedFile(
- "\x0A\xCCK\x0A(google/cloud/kms/v1/hsm_management.proto\x12\x13google.cloud.kms.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x19google/api/resource.proto\x1A#google/longrunning/operations.proto\x1A\x1Egoogle/protobuf/duration.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"\xA9\x07\x0A\x17SingleTenantHsmInstance\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x124\x0A\x0Bcreate_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12F\x0A\x05state\x18\x03 \x01(\x0E22.google.cloud.kms.v1.SingleTenantHsmInstance.StateB\x03\xE0A\x03\x12Q\x0A\x0Bquorum_auth\x18\x04 \x01(\x0B27.google.cloud.kms.v1.SingleTenantHsmInstance.QuorumAuthB\x03\xE0A\x02\x124\x0A\x0Bdelete_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12J\x0A\"unrefreshed_duration_until_disable\x18\x06 \x01(\x0B2\x19.google.protobuf.DurationB\x03\xE0A\x03\x125\x0A\x0Cdisable_time\x18\x07 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x1A~\x0A\x0AQuorumAuth\x12!\x0A\x14total_approver_count\x18\x01 \x01(\x05B\x03\xE0A\x02\x12\$\x0A\x17required_approver_count\x18\x02 \x01(\x05B\x03\xE0A\x03\x12'\x0A\x1Atwo_factor_public_key_pems\x18\x03 \x03(\x09B\x03\xE0A\x03\"\xA6\x01\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08CREATING\x10\x01\x12(\x0A\$PENDING_TWO_FACTOR_AUTH_REGISTRATION\x10\x02\x12\x0A\x0A\x06ACTIVE\x10\x03\x12\x0D\x0A\x09DISABLING\x10\x04\x12\x0C\x0A\x08DISABLED\x10\x05\x12\x0C\x0A\x08DELETING\x10\x06\x12\x0B\x0A\x07DELETED\x10\x07\x12\x0A\x0A\x06FAILED\x10\x08:\xC7\x01\xEAA\xC3\x01\x0A/cloudkms.googleapis.com/SingleTenantHsmInstance\x12]projects/{project}/locations/{location}/singleTenantHsmInstances/{single_tenant_hsm_instance}*\x18singleTenantHsmInstances2\x17singleTenantHsmInstance\"\x99\x15\x0A\x1FSingleTenantHsmInstanceProposal\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x124\x0A\x0Bcreate_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12N\x0A\x05state\x18\x03 \x01(\x0E2:.google.cloud.kms.v1.SingleTenantHsmInstanceProposal.StateB\x03\xE0A\x03\x12\x1B\x0A\x0Efailure_reason\x18\x04 \x01(\x09B\x03\xE0A\x03\x12g\x0A\x11quorum_parameters\x18\x05 \x01(\x0B2E.google.cloud.kms.v1.SingleTenantHsmInstanceProposal.QuorumParametersB\x03\xE0A\x03H\x00\x12\x85\x01\x0A!required_action_quorum_parameters\x18\x0E \x01(\x0B2S.google.cloud.kms.v1.SingleTenantHsmInstanceProposal.RequiredActionQuorumParametersB\x03\xE0A\x03H\x00\x121\x0A\x0Bexpire_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampH\x01\x12-\x0A\x03ttl\x18\x07 \x01(\x0B2\x19.google.protobuf.DurationB\x03\xE0A\x04H\x01\x124\x0A\x0Bdelete_time\x18\x0F \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x123\x0A\x0Apurge_time\x18\x10 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12w\x0A\x1Dregister_two_factor_auth_keys\x18\x08 \x01(\x0B2N.google.cloud.kms.v1.SingleTenantHsmInstanceProposal.RegisterTwoFactorAuthKeysH\x02\x12\x81\x01\x0A\"disable_single_tenant_hsm_instance\x18\x09 \x01(\x0B2S.google.cloud.kms.v1.SingleTenantHsmInstanceProposal.DisableSingleTenantHsmInstanceH\x02\x12\x7F\x0A!enable_single_tenant_hsm_instance\x18\x0A \x01(\x0B2R.google.cloud.kms.v1.SingleTenantHsmInstanceProposal.EnableSingleTenantHsmInstanceH\x02\x12\x7F\x0A!delete_single_tenant_hsm_instance\x18\x0B \x01(\x0B2R.google.cloud.kms.v1.SingleTenantHsmInstanceProposal.DeleteSingleTenantHsmInstanceH\x02\x12a\x0A\x11add_quorum_member\x18\x0C \x01(\x0B2D.google.cloud.kms.v1.SingleTenantHsmInstanceProposal.AddQuorumMemberH\x02\x12g\x0A\x14remove_quorum_member\x18\x0D \x01(\x0B2G.google.cloud.kms.v1.SingleTenantHsmInstanceProposal.RemoveQuorumMemberH\x02\x12\x81\x01\x0A\"refresh_single_tenant_hsm_instance\x18\x11 \x01(\x0B2S.google.cloud.kms.v1.SingleTenantHsmInstanceProposal.RefreshSingleTenantHsmInstanceH\x02\x1A\xA3\x01\x0A\x10QuorumParameters\x12\$\x0A\x17required_approver_count\x18\x01 \x01(\x05B\x03\xE0A\x03\x127\x0A\x0Achallenges\x18\x02 \x03(\x0B2\x1E.google.cloud.kms.v1.ChallengeB\x03\xE0A\x03\x120\x0A#approved_two_factor_public_key_pems\x18\x03 \x03(\x09B\x03\xE0A\x03\x1A\xFA\x01\x0A\x1ERequiredActionQuorumParameters\x12@\x0A\x13required_challenges\x18\x01 \x03(\x0B2\x1E.google.cloud.kms.v1.ChallengeB\x03\xE0A\x03\x12\$\x0A\x17required_approver_count\x18\x02 \x01(\x05B\x03\xE0A\x03\x12>\x0A\x11quorum_challenges\x18\x03 \x03(\x0B2\x1E.google.cloud.kms.v1.ChallengeB\x03\xE0A\x03\x120\x0A#approved_two_factor_public_key_pems\x18\x04 \x03(\x09B\x03\xE0A\x03\x1Aj\x0A\x19RegisterTwoFactorAuthKeys\x12\$\x0A\x17required_approver_count\x18\x01 \x01(\x05B\x03\xE0A\x02\x12'\x0A\x1Atwo_factor_public_key_pems\x18\x02 \x03(\x09B\x03\xE0A\x02\x1A \x0A\x1EDisableSingleTenantHsmInstance\x1A\x1F\x0A\x1DEnableSingleTenantHsmInstance\x1A\x1F\x0A\x1DDeleteSingleTenantHsmInstance\x1A9\x0A\x0FAddQuorumMember\x12&\x0A\x19two_factor_public_key_pem\x18\x01 \x01(\x09B\x03\xE0A\x02\x1A<\x0A\x12RemoveQuorumMember\x12&\x0A\x19two_factor_public_key_pem\x18\x01 \x01(\x09B\x03\xE0A\x02\x1A \x0A\x1ERefreshSingleTenantHsmInstance\"|\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08CREATING\x10\x01\x12\x0B\x0A\x07PENDING\x10\x02\x12\x0C\x0A\x08APPROVED\x10\x03\x12\x0B\x0A\x07RUNNING\x10\x04\x12\x0D\x0A\x09SUCCEEDED\x10\x05\x12\x0A\x0A\x06FAILED\x10\x06\x12\x0B\x0A\x07DELETED\x10\x07:\xF4\x01\xEAA\xF0\x01\x0A7cloudkms.googleapis.com/SingleTenantHsmInstanceProposal\x12rprojects/{project}/locations/{location}/singleTenantHsmInstances/{single_tenant_hsm_instance}/proposals/{proposal}* singleTenantHsmInstanceProposals2\x1FsingleTenantHsmInstanceProposalB\x15\x0A\x13approval_parametersB\x0C\x0A\x0AexpirationB\x0B\x0A\x09operation\"@\x0A\x09Challenge\x12\x16\x0A\x09challenge\x18\x01 \x01(\x0CB\x03\xE0A\x03\x12\x1B\x0A\x0Epublic_key_pem\x18\x02 \x01(\x09B\x03\xE0A\x03\"L\x0A\x0EChallengeReply\x12\x1D\x0A\x10signed_challenge\x18\x01 \x01(\x0CB\x03\xE0A\x02\x12\x1B\x0A\x0Epublic_key_pem\x18\x02 \x01(\x09B\x03\xE0A\x02\"\xD8\x01\x0A#ListSingleTenantHsmInstancesRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Cshow_deleted\x18\x06 \x01(\x08B\x03\xE0A\x01\"\xA6\x01\x0A\$ListSingleTenantHsmInstancesResponse\x12Q\x0A\x1Bsingle_tenant_hsm_instances\x18\x01 \x03(\x0B2,.google.cloud.kms.v1.SingleTenantHsmInstance\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x12\x0A\x0Atotal_size\x18\x03 \x01(\x05\"j\x0A!GetSingleTenantHsmInstanceRequest\x12E\x0A\x04name\x18\x01 \x01(\x09B7\xE0A\x02\xFAA1\x0A/cloudkms.googleapis.com/SingleTenantHsmInstance\"\xE4\x01\x0A\$CreateSingleTenantHsmInstanceRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12*\x0A\x1Dsingle_tenant_hsm_instance_id\x18\x02 \x01(\x09B\x03\xE0A\x01\x12U\x0A\x1Asingle_tenant_hsm_instance\x18\x03 \x01(\x0B2,.google.cloud.kms.v1.SingleTenantHsmInstanceB\x03\xE0A\x02\"'\x0A%CreateSingleTenantHsmInstanceMetadata\"\x94\x02\x0A,CreateSingleTenantHsmInstanceProposalRequest\x12G\x0A\x06parent\x18\x01 \x01(\x09B7\xE0A\x02\xFAA1\x0A/cloudkms.googleapis.com/SingleTenantHsmInstance\x123\x0A&single_tenant_hsm_instance_proposal_id\x18\x02 \x01(\x09B\x03\xE0A\x01\x12f\x0A#single_tenant_hsm_instance_proposal\x18\x03 \x01(\x0B24.google.cloud.kms.v1.SingleTenantHsmInstanceProposalB\x03\xE0A\x02\"/\x0A-CreateSingleTenantHsmInstanceProposalMetadata\"z\x0A)GetSingleTenantHsmInstanceProposalRequest\x12M\x0A\x04name\x18\x01 \x01(\x09B?\xE0A\x02\xFAA9\x0A7cloudkms.googleapis.com/SingleTenantHsmInstanceProposal\"\x97\x05\x0A-ApproveSingleTenantHsmInstanceProposalRequest\x12M\x0A\x04name\x18\x01 \x01(\x09B?\xE0A\x02\xFAA9\x0A7cloudkms.googleapis.com/SingleTenantHsmInstanceProposal\x12k\x0A\x0Cquorum_reply\x18\x02 \x01(\x0B2N.google.cloud.kms.v1.ApproveSingleTenantHsmInstanceProposalRequest.QuorumReplyB\x03\xE0A\x02H\x00\x12\x89\x01\x0A\x1Crequired_action_quorum_reply\x18\x03 \x01(\x0B2\\.google.cloud.kms.v1.ApproveSingleTenantHsmInstanceProposalRequest.RequiredActionQuorumReplyB\x03\xE0A\x02H\x00\x1AR\x0A\x0BQuorumReply\x12C\x0A\x11challenge_replies\x18\x01 \x03(\x0B2#.google.cloud.kms.v1.ChallengeReplyB\x03\xE0A\x02\x1A\xB5\x01\x0A\x19RequiredActionQuorumReply\x12L\x0A\x1Arequired_challenge_replies\x18\x01 \x03(\x0B2#.google.cloud.kms.v1.ChallengeReplyB\x03\xE0A\x02\x12J\x0A\x18quorum_challenge_replies\x18\x02 \x03(\x0B2#.google.cloud.kms.v1.ChallengeReplyB\x03\xE0A\x02B\x12\x0A\x10approval_payload\"0\x0A.ApproveSingleTenantHsmInstanceProposalResponse\"~\x0A-ExecuteSingleTenantHsmInstanceProposalRequest\x12M\x0A\x04name\x18\x01 \x01(\x09B?\xE0A\x02\xFAA9\x0A7cloudkms.googleapis.com/SingleTenantHsmInstanceProposal\"0\x0A.ExecuteSingleTenantHsmInstanceProposalResponse\"0\x0A.ExecuteSingleTenantHsmInstanceProposalMetadata\"\xEE\x01\x0A+ListSingleTenantHsmInstanceProposalsRequest\x12G\x0A\x06parent\x18\x01 \x01(\x09B7\xE0A\x02\xFAA1\x0A/cloudkms.googleapis.com/SingleTenantHsmInstance\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Cshow_deleted\x18\x06 \x01(\x08B\x03\xE0A\x01\"\xBF\x01\x0A,ListSingleTenantHsmInstanceProposalsResponse\x12b\x0A\$single_tenant_hsm_instance_proposals\x18\x01 \x03(\x0B24.google.cloud.kms.v1.SingleTenantHsmInstanceProposal\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x12\x0A\x0Atotal_size\x18\x03 \x01(\x05\"}\x0A,DeleteSingleTenantHsmInstanceProposalRequest\x12M\x0A\x04name\x18\x01 \x01(\x09B?\xE0A\x02\xFAA9\x0A7cloudkms.googleapis.com/SingleTenantHsmInstanceProposal2\xA3\x15\x0A\x0DHsmManagement\x12\xE2\x01\x0A\x1CListSingleTenantHsmInstances\x128.google.cloud.kms.v1.ListSingleTenantHsmInstancesRequest\x1A9.google.cloud.kms.v1.ListSingleTenantHsmInstancesResponse\"M\xDAA\x06parent\x82\xD3\xE4\x93\x02>\x12\x12.google.cloud.kms.v1.GetSingleTenantHsmInstanceProposalRequest\x1A4.google.cloud.kms.v1.SingleTenantHsmInstanceProposal\"W\xDAA\x04name\x82\xD3\xE4\x93\x02J\x12H/v1/{name=projects/*/locations/*/singleTenantHsmInstances/*/proposals/*}\x12\x86\x02\x0A\$ListSingleTenantHsmInstanceProposals\x12@.google.cloud.kms.v1.ListSingleTenantHsmInstanceProposalsRequest\x1AA.google.cloud.kms.v1.ListSingleTenantHsmInstanceProposalsResponse\"Y\xDAA\x06parent\x82\xD3\xE4\x93\x02J\x12H/v1/{parent=projects/*/locations/*/singleTenantHsmInstances/*}/proposals\x12\xDB\x01\x0A%DeleteSingleTenantHsmInstanceProposal\x12A.google.cloud.kms.v1.DeleteSingleTenantHsmInstanceProposalRequest\x1A\x16.google.protobuf.Empty\"W\xDAA\x04name\x82\xD3\xE4\x93\x02J*H/v1/{name=projects/*/locations/*/singleTenantHsmInstances/*/proposals/*}\x1At\xCAA\x17cloudkms.googleapis.com\xD2AWhttps://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloudkmsB\x86\x01\x0A\x17com.google.cloud.kms.v1B\x12HsmManagementProtoP\x01Z)cloud.google.com/go/kms/apiv1/kmspb;kmspb\xAA\x02\x13Google.Cloud.Kms.V1\xCA\x02\x13Google\\Cloud\\Kms\\V1b\x06proto3"
+ "\x0A\xF5K\x0A(google/cloud/kms/v1/hsm_management.proto\x12\x13google.cloud.kms.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x19google/api/resource.proto\x1A#google/longrunning/operations.proto\x1A\x1Egoogle/protobuf/duration.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A\x1Fgoogle/protobuf/timestamp.proto\"\xD2\x07\x0A\x17SingleTenantHsmInstance\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x124\x0A\x0Bcreate_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12F\x0A\x05state\x18\x03 \x01(\x0E22.google.cloud.kms.v1.SingleTenantHsmInstance.StateB\x03\xE0A\x03\x12Q\x0A\x0Bquorum_auth\x18\x04 \x01(\x0B27.google.cloud.kms.v1.SingleTenantHsmInstance.QuorumAuthB\x03\xE0A\x02\x124\x0A\x0Bdelete_time\x18\x05 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12J\x0A\"unrefreshed_duration_until_disable\x18\x06 \x01(\x0B2\x19.google.protobuf.DurationB\x03\xE0A\x03\x125\x0A\x0Cdisable_time\x18\x07 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12'\x0A\x17key_portability_enabled\x18\x08 \x01(\x08B\x06\xE0A\x01\xE0A\x05\x1A~\x0A\x0AQuorumAuth\x12!\x0A\x14total_approver_count\x18\x01 \x01(\x05B\x03\xE0A\x02\x12\$\x0A\x17required_approver_count\x18\x02 \x01(\x05B\x03\xE0A\x03\x12'\x0A\x1Atwo_factor_public_key_pems\x18\x03 \x03(\x09B\x03\xE0A\x03\"\xA6\x01\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08CREATING\x10\x01\x12(\x0A\$PENDING_TWO_FACTOR_AUTH_REGISTRATION\x10\x02\x12\x0A\x0A\x06ACTIVE\x10\x03\x12\x0D\x0A\x09DISABLING\x10\x04\x12\x0C\x0A\x08DISABLED\x10\x05\x12\x0C\x0A\x08DELETING\x10\x06\x12\x0B\x0A\x07DELETED\x10\x07\x12\x0A\x0A\x06FAILED\x10\x08:\xC7\x01\xEAA\xC3\x01\x0A/cloudkms.googleapis.com/SingleTenantHsmInstance\x12]projects/{project}/locations/{location}/singleTenantHsmInstances/{single_tenant_hsm_instance}*\x18singleTenantHsmInstances2\x17singleTenantHsmInstance\"\x99\x15\x0A\x1FSingleTenantHsmInstanceProposal\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x08\x124\x0A\x0Bcreate_time\x18\x02 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12N\x0A\x05state\x18\x03 \x01(\x0E2:.google.cloud.kms.v1.SingleTenantHsmInstanceProposal.StateB\x03\xE0A\x03\x12\x1B\x0A\x0Efailure_reason\x18\x04 \x01(\x09B\x03\xE0A\x03\x12g\x0A\x11quorum_parameters\x18\x05 \x01(\x0B2E.google.cloud.kms.v1.SingleTenantHsmInstanceProposal.QuorumParametersB\x03\xE0A\x03H\x00\x12\x85\x01\x0A!required_action_quorum_parameters\x18\x0E \x01(\x0B2S.google.cloud.kms.v1.SingleTenantHsmInstanceProposal.RequiredActionQuorumParametersB\x03\xE0A\x03H\x00\x121\x0A\x0Bexpire_time\x18\x06 \x01(\x0B2\x1A.google.protobuf.TimestampH\x01\x12-\x0A\x03ttl\x18\x07 \x01(\x0B2\x19.google.protobuf.DurationB\x03\xE0A\x04H\x01\x124\x0A\x0Bdelete_time\x18\x0F \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x123\x0A\x0Apurge_time\x18\x10 \x01(\x0B2\x1A.google.protobuf.TimestampB\x03\xE0A\x03\x12w\x0A\x1Dregister_two_factor_auth_keys\x18\x08 \x01(\x0B2N.google.cloud.kms.v1.SingleTenantHsmInstanceProposal.RegisterTwoFactorAuthKeysH\x02\x12\x81\x01\x0A\"disable_single_tenant_hsm_instance\x18\x09 \x01(\x0B2S.google.cloud.kms.v1.SingleTenantHsmInstanceProposal.DisableSingleTenantHsmInstanceH\x02\x12\x7F\x0A!enable_single_tenant_hsm_instance\x18\x0A \x01(\x0B2R.google.cloud.kms.v1.SingleTenantHsmInstanceProposal.EnableSingleTenantHsmInstanceH\x02\x12\x7F\x0A!delete_single_tenant_hsm_instance\x18\x0B \x01(\x0B2R.google.cloud.kms.v1.SingleTenantHsmInstanceProposal.DeleteSingleTenantHsmInstanceH\x02\x12a\x0A\x11add_quorum_member\x18\x0C \x01(\x0B2D.google.cloud.kms.v1.SingleTenantHsmInstanceProposal.AddQuorumMemberH\x02\x12g\x0A\x14remove_quorum_member\x18\x0D \x01(\x0B2G.google.cloud.kms.v1.SingleTenantHsmInstanceProposal.RemoveQuorumMemberH\x02\x12\x81\x01\x0A\"refresh_single_tenant_hsm_instance\x18\x11 \x01(\x0B2S.google.cloud.kms.v1.SingleTenantHsmInstanceProposal.RefreshSingleTenantHsmInstanceH\x02\x1A\xA3\x01\x0A\x10QuorumParameters\x12\$\x0A\x17required_approver_count\x18\x01 \x01(\x05B\x03\xE0A\x03\x127\x0A\x0Achallenges\x18\x02 \x03(\x0B2\x1E.google.cloud.kms.v1.ChallengeB\x03\xE0A\x03\x120\x0A#approved_two_factor_public_key_pems\x18\x03 \x03(\x09B\x03\xE0A\x03\x1A\xFA\x01\x0A\x1ERequiredActionQuorumParameters\x12@\x0A\x13required_challenges\x18\x01 \x03(\x0B2\x1E.google.cloud.kms.v1.ChallengeB\x03\xE0A\x03\x12\$\x0A\x17required_approver_count\x18\x02 \x01(\x05B\x03\xE0A\x03\x12>\x0A\x11quorum_challenges\x18\x03 \x03(\x0B2\x1E.google.cloud.kms.v1.ChallengeB\x03\xE0A\x03\x120\x0A#approved_two_factor_public_key_pems\x18\x04 \x03(\x09B\x03\xE0A\x03\x1Aj\x0A\x19RegisterTwoFactorAuthKeys\x12\$\x0A\x17required_approver_count\x18\x01 \x01(\x05B\x03\xE0A\x02\x12'\x0A\x1Atwo_factor_public_key_pems\x18\x02 \x03(\x09B\x03\xE0A\x02\x1A \x0A\x1EDisableSingleTenantHsmInstance\x1A\x1F\x0A\x1DEnableSingleTenantHsmInstance\x1A\x1F\x0A\x1DDeleteSingleTenantHsmInstance\x1A9\x0A\x0FAddQuorumMember\x12&\x0A\x19two_factor_public_key_pem\x18\x01 \x01(\x09B\x03\xE0A\x02\x1A<\x0A\x12RemoveQuorumMember\x12&\x0A\x19two_factor_public_key_pem\x18\x01 \x01(\x09B\x03\xE0A\x02\x1A \x0A\x1ERefreshSingleTenantHsmInstance\"|\x0A\x05State\x12\x15\x0A\x11STATE_UNSPECIFIED\x10\x00\x12\x0C\x0A\x08CREATING\x10\x01\x12\x0B\x0A\x07PENDING\x10\x02\x12\x0C\x0A\x08APPROVED\x10\x03\x12\x0B\x0A\x07RUNNING\x10\x04\x12\x0D\x0A\x09SUCCEEDED\x10\x05\x12\x0A\x0A\x06FAILED\x10\x06\x12\x0B\x0A\x07DELETED\x10\x07:\xF4\x01\xEAA\xF0\x01\x0A7cloudkms.googleapis.com/SingleTenantHsmInstanceProposal\x12rprojects/{project}/locations/{location}/singleTenantHsmInstances/{single_tenant_hsm_instance}/proposals/{proposal}* singleTenantHsmInstanceProposals2\x1FsingleTenantHsmInstanceProposalB\x15\x0A\x13approval_parametersB\x0C\x0A\x0AexpirationB\x0B\x0A\x09operation\"@\x0A\x09Challenge\x12\x16\x0A\x09challenge\x18\x01 \x01(\x0CB\x03\xE0A\x03\x12\x1B\x0A\x0Epublic_key_pem\x18\x02 \x01(\x09B\x03\xE0A\x03\"L\x0A\x0EChallengeReply\x12\x1D\x0A\x10signed_challenge\x18\x01 \x01(\x0CB\x03\xE0A\x02\x12\x1B\x0A\x0Epublic_key_pem\x18\x02 \x01(\x09B\x03\xE0A\x02\"\xD8\x01\x0A#ListSingleTenantHsmInstancesRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Cshow_deleted\x18\x06 \x01(\x08B\x03\xE0A\x01\"\xA6\x01\x0A\$ListSingleTenantHsmInstancesResponse\x12Q\x0A\x1Bsingle_tenant_hsm_instances\x18\x01 \x03(\x0B2,.google.cloud.kms.v1.SingleTenantHsmInstance\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x12\x0A\x0Atotal_size\x18\x03 \x01(\x05\"j\x0A!GetSingleTenantHsmInstanceRequest\x12E\x0A\x04name\x18\x01 \x01(\x09B7\xE0A\x02\xFAA1\x0A/cloudkms.googleapis.com/SingleTenantHsmInstance\"\xE4\x01\x0A\$CreateSingleTenantHsmInstanceRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12*\x0A\x1Dsingle_tenant_hsm_instance_id\x18\x02 \x01(\x09B\x03\xE0A\x01\x12U\x0A\x1Asingle_tenant_hsm_instance\x18\x03 \x01(\x0B2,.google.cloud.kms.v1.SingleTenantHsmInstanceB\x03\xE0A\x02\"'\x0A%CreateSingleTenantHsmInstanceMetadata\"\x94\x02\x0A,CreateSingleTenantHsmInstanceProposalRequest\x12G\x0A\x06parent\x18\x01 \x01(\x09B7\xE0A\x02\xFAA1\x0A/cloudkms.googleapis.com/SingleTenantHsmInstance\x123\x0A&single_tenant_hsm_instance_proposal_id\x18\x02 \x01(\x09B\x03\xE0A\x01\x12f\x0A#single_tenant_hsm_instance_proposal\x18\x03 \x01(\x0B24.google.cloud.kms.v1.SingleTenantHsmInstanceProposalB\x03\xE0A\x02\"/\x0A-CreateSingleTenantHsmInstanceProposalMetadata\"z\x0A)GetSingleTenantHsmInstanceProposalRequest\x12M\x0A\x04name\x18\x01 \x01(\x09B?\xE0A\x02\xFAA9\x0A7cloudkms.googleapis.com/SingleTenantHsmInstanceProposal\"\x97\x05\x0A-ApproveSingleTenantHsmInstanceProposalRequest\x12M\x0A\x04name\x18\x01 \x01(\x09B?\xE0A\x02\xFAA9\x0A7cloudkms.googleapis.com/SingleTenantHsmInstanceProposal\x12k\x0A\x0Cquorum_reply\x18\x02 \x01(\x0B2N.google.cloud.kms.v1.ApproveSingleTenantHsmInstanceProposalRequest.QuorumReplyB\x03\xE0A\x02H\x00\x12\x89\x01\x0A\x1Crequired_action_quorum_reply\x18\x03 \x01(\x0B2\\.google.cloud.kms.v1.ApproveSingleTenantHsmInstanceProposalRequest.RequiredActionQuorumReplyB\x03\xE0A\x02H\x00\x1AR\x0A\x0BQuorumReply\x12C\x0A\x11challenge_replies\x18\x01 \x03(\x0B2#.google.cloud.kms.v1.ChallengeReplyB\x03\xE0A\x02\x1A\xB5\x01\x0A\x19RequiredActionQuorumReply\x12L\x0A\x1Arequired_challenge_replies\x18\x01 \x03(\x0B2#.google.cloud.kms.v1.ChallengeReplyB\x03\xE0A\x02\x12J\x0A\x18quorum_challenge_replies\x18\x02 \x03(\x0B2#.google.cloud.kms.v1.ChallengeReplyB\x03\xE0A\x02B\x12\x0A\x10approval_payload\"0\x0A.ApproveSingleTenantHsmInstanceProposalResponse\"~\x0A-ExecuteSingleTenantHsmInstanceProposalRequest\x12M\x0A\x04name\x18\x01 \x01(\x09B?\xE0A\x02\xFAA9\x0A7cloudkms.googleapis.com/SingleTenantHsmInstanceProposal\"0\x0A.ExecuteSingleTenantHsmInstanceProposalResponse\"0\x0A.ExecuteSingleTenantHsmInstanceProposalMetadata\"\xEE\x01\x0A+ListSingleTenantHsmInstanceProposalsRequest\x12G\x0A\x06parent\x18\x01 \x01(\x09B7\xE0A\x02\xFAA1\x0A/cloudkms.googleapis.com/SingleTenantHsmInstance\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\x12\x19\x0A\x0Cshow_deleted\x18\x06 \x01(\x08B\x03\xE0A\x01\"\xBF\x01\x0A,ListSingleTenantHsmInstanceProposalsResponse\x12b\x0A\$single_tenant_hsm_instance_proposals\x18\x01 \x03(\x0B24.google.cloud.kms.v1.SingleTenantHsmInstanceProposal\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x12\x0A\x0Atotal_size\x18\x03 \x01(\x05\"}\x0A,DeleteSingleTenantHsmInstanceProposalRequest\x12M\x0A\x04name\x18\x01 \x01(\x09B?\xE0A\x02\xFAA9\x0A7cloudkms.googleapis.com/SingleTenantHsmInstanceProposal2\xA3\x15\x0A\x0DHsmManagement\x12\xE2\x01\x0A\x1CListSingleTenantHsmInstances\x128.google.cloud.kms.v1.ListSingleTenantHsmInstancesRequest\x1A9.google.cloud.kms.v1.ListSingleTenantHsmInstancesResponse\"M\xDAA\x06parent\x82\xD3\xE4\x93\x02>\x12\x12.google.cloud.kms.v1.GetSingleTenantHsmInstanceProposalRequest\x1A4.google.cloud.kms.v1.SingleTenantHsmInstanceProposal\"W\xDAA\x04name\x82\xD3\xE4\x93\x02J\x12H/v1/{name=projects/*/locations/*/singleTenantHsmInstances/*/proposals/*}\x12\x86\x02\x0A\$ListSingleTenantHsmInstanceProposals\x12@.google.cloud.kms.v1.ListSingleTenantHsmInstanceProposalsRequest\x1AA.google.cloud.kms.v1.ListSingleTenantHsmInstanceProposalsResponse\"Y\xDAA\x06parent\x82\xD3\xE4\x93\x02J\x12H/v1/{parent=projects/*/locations/*/singleTenantHsmInstances/*}/proposals\x12\xDB\x01\x0A%DeleteSingleTenantHsmInstanceProposal\x12A.google.cloud.kms.v1.DeleteSingleTenantHsmInstanceProposalRequest\x1A\x16.google.protobuf.Empty\"W\xDAA\x04name\x82\xD3\xE4\x93\x02J*H/v1/{name=projects/*/locations/*/singleTenantHsmInstances/*/proposals/*}\x1At\xCAA\x17cloudkms.googleapis.com\xD2AWhttps://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloudkmsB\x86\x01\x0A\x17com.google.cloud.kms.v1B\x12HsmManagementProtoP\x01Z)cloud.google.com/go/kms/apiv1/kmspb;kmspb\xAA\x02\x13Google.Cloud.Kms.V1\xCA\x02\x13Google\\Cloud\\Kms\\V1b\x06proto3"
, true);
static::$is_initialized = true;
diff --git a/Kms/metadata/V1/Service.php b/Kms/metadata/V1/Service.php
index 4d77fb5c83dd..01980c2c58f0 100644
--- a/Kms/metadata/V1/Service.php
+++ b/Kms/metadata/V1/Service.php
@@ -24,7 +24,7 @@ public static function initOnce() {
\GPBMetadata\Google\Protobuf\FieldMask::initOnce();
\GPBMetadata\Google\Protobuf\Wrappers::initOnce();
$pool->internalAddGeneratedFile(
- "\x0A\xF3\x81\x01\x0A!google/cloud/kms/v1/service.proto\x12\x13google.cloud.kms.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x19google/api/resource.proto\x1A#google/cloud/kms/v1/resources.proto\x1A#google/longrunning/operations.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A google/protobuf/field_mask.proto\x1A\x1Egoogle/protobuf/wrappers.proto\"\xAD\x01\x0A\x13ListKeyRingsRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\xFF\x01\x0A\x15ListCryptoKeysRequest\x127\x0A\x06parent\x18\x01 \x01(\x09B'\xE0A\x02\xFAA!\x0A\x1Fcloudkms.googleapis.com/KeyRing\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12P\x0A\x0Cversion_view\x18\x04 \x01(\x0E2:.google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionView\x12\x13\x0A\x06filter\x18\x05 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x06 \x01(\x09B\x03\xE0A\x01\"\x80\x02\x0A\x1CListCryptoKeyVersionsRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!cloudkms.googleapis.com/CryptoKey\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12H\x0A\x04view\x18\x04 \x01(\x0E2:.google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionView\x12\x13\x0A\x06filter\x18\x05 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x06 \x01(\x09B\x03\xE0A\x01\"\xAD\x01\x0A\x15ListImportJobsRequest\x127\x0A\x06parent\x18\x01 \x01(\x09B'\xE0A\x02\xFAA!\x0A\x1Fcloudkms.googleapis.com/KeyRing\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x8F\x01\x0A\x1BListRetiredResourcesRequest\x12?\x0A\x06parent\x18\x01 \x01(\x09B/\xE0A\x02\xFAA)\x12'cloudkms.googleapis.com/RetiredResource\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\"t\x0A\x14ListKeyRingsResponse\x12/\x0A\x09key_rings\x18\x01 \x03(\x0B2\x1C.google.cloud.kms.v1.KeyRing\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x12\x0A\x0Atotal_size\x18\x03 \x01(\x05\"z\x0A\x16ListCryptoKeysResponse\x123\x0A\x0Bcrypto_keys\x18\x01 \x03(\x0B2\x1E.google.cloud.kms.v1.CryptoKey\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x12\x0A\x0Atotal_size\x18\x03 \x01(\x05\"\x90\x01\x0A\x1DListCryptoKeyVersionsResponse\x12B\x0A\x13crypto_key_versions\x18\x01 \x03(\x0B2%.google.cloud.kms.v1.CryptoKeyVersion\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x12\x0A\x0Atotal_size\x18\x03 \x01(\x05\"z\x0A\x16ListImportJobsResponse\x123\x0A\x0Bimport_jobs\x18\x01 \x03(\x0B2\x1E.google.cloud.kms.v1.ImportJob\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x12\x0A\x0Atotal_size\x18\x03 \x01(\x05\"\x8C\x01\x0A\x1CListRetiredResourcesResponse\x12?\x0A\x11retired_resources\x18\x01 \x03(\x0B2\$.google.cloud.kms.v1.RetiredResource\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x12\x0A\x0Atotal_size\x18\x03 \x01(\x03\"J\x0A\x11GetKeyRingRequest\x125\x0A\x04name\x18\x01 \x01(\x09B'\xE0A\x02\xFAA!\x0A\x1Fcloudkms.googleapis.com/KeyRing\"N\x0A\x13GetCryptoKeyRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!cloudkms.googleapis.com/CryptoKey\"\\\x0A\x1AGetCryptoKeyVersionRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\"\xA5\x01\x0A\x13GetPublicKeyRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\x12N\x0A\x11public_key_format\x18\x02 \x01(\x0E2..google.cloud.kms.v1.PublicKey.PublicKeyFormatB\x03\xE0A\x01\"N\x0A\x13GetImportJobRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!cloudkms.googleapis.com/ImportJob\"Z\x0A\x19GetRetiredResourceRequest\x12=\x0A\x04name\x18\x01 \x01(\x09B/\xE0A\x02\xFAA)\x0A'cloudkms.googleapis.com/RetiredResource\"\xA0\x01\x0A\x14CreateKeyRingRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x18\x0A\x0Bkey_ring_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x123\x0A\x08key_ring\x18\x03 \x01(\x0B2\x1C.google.cloud.kms.v1.KeyRingB\x03\xE0A\x02\"\xCD\x01\x0A\x16CreateCryptoKeyRequest\x127\x0A\x06parent\x18\x01 \x01(\x09B'\xE0A\x02\xFAA!\x0A\x1Fcloudkms.googleapis.com/KeyRing\x12\x1A\x0A\x0Dcrypto_key_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x127\x0A\x0Acrypto_key\x18\x03 \x01(\x0B2\x1E.google.cloud.kms.v1.CryptoKeyB\x03\xE0A\x02\x12%\x0A\x1Dskip_initial_version_creation\x18\x05 \x01(\x08\"\xA2\x01\x0A\x1DCreateCryptoKeyVersionRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!cloudkms.googleapis.com/CryptoKey\x12F\x0A\x12crypto_key_version\x18\x02 \x01(\x0B2%.google.cloud.kms.v1.CryptoKeyVersionB\x03\xE0A\x02\"Q\x0A\x16DeleteCryptoKeyRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!cloudkms.googleapis.com/CryptoKey\"_\x0A\x1DDeleteCryptoKeyVersionRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\"\xF0\x02\x0A\x1DImportCryptoKeyVersionRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!cloudkms.googleapis.com/CryptoKey\x12L\x0A\x12crypto_key_version\x18\x06 \x01(\x09B0\xE0A\x01\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\x12W\x0A\x09algorithm\x18\x02 \x01(\x0E2?.google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithmB\x03\xE0A\x02\x12\x17\x0A\x0Aimport_job\x18\x04 \x01(\x09B\x03\xE0A\x02\x12\x18\x0A\x0Bwrapped_key\x18\x08 \x01(\x0CB\x03\xE0A\x01\x12\"\x0A\x13rsa_aes_wrapped_key\x18\x05 \x01(\x0CB\x03\xE0A\x01H\x00B\x16\x0A\x14wrapped_key_material\"\xA6\x01\x0A\x16CreateImportJobRequest\x127\x0A\x06parent\x18\x01 \x01(\x09B'\xE0A\x02\xFAA!\x0A\x1Fcloudkms.googleapis.com/KeyRing\x12\x1A\x0A\x0Dimport_job_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x127\x0A\x0Aimport_job\x18\x03 \x01(\x0B2\x1E.google.cloud.kms.v1.ImportJobB\x03\xE0A\x02\"\x87\x01\x0A\x16UpdateCryptoKeyRequest\x127\x0A\x0Acrypto_key\x18\x01 \x01(\x0B2\x1E.google.cloud.kms.v1.CryptoKeyB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\"\x9D\x01\x0A\x1DUpdateCryptoKeyVersionRequest\x12F\x0A\x12crypto_key_version\x18\x01 \x01(\x0B2%.google.cloud.kms.v1.CryptoKeyVersionB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\"\x83\x01\x0A\$UpdateCryptoKeyPrimaryVersionRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!cloudkms.googleapis.com/CryptoKey\x12\"\x0A\x15crypto_key_version_id\x18\x02 \x01(\x09B\x03\xE0A\x02\"`\x0A\x1EDestroyCryptoKeyVersionRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\"`\x0A\x1ERestoreCryptoKeyVersionRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\"\xF9\x01\x0A\x0EEncryptRequest\x12\x17\x0A\x04name\x18\x01 \x01(\x09B\x09\xE0A\x02\xFAA\x03\x0A\x01*\x12\x16\x0A\x09plaintext\x18\x02 \x01(\x0CB\x03\xE0A\x02\x12*\x0A\x1Dadditional_authenticated_data\x18\x03 \x01(\x0CB\x03\xE0A\x01\x12:\x0A\x10plaintext_crc32c\x18\x07 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\x12N\x0A\$additional_authenticated_data_crc32c\x18\x08 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\"\x9B\x02\x0A\x0EDecryptRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!cloudkms.googleapis.com/CryptoKey\x12\x17\x0A\x0Aciphertext\x18\x02 \x01(\x0CB\x03\xE0A\x02\x12*\x0A\x1Dadditional_authenticated_data\x18\x03 \x01(\x0CB\x03\xE0A\x01\x12;\x0A\x11ciphertext_crc32c\x18\x05 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\x12N\x0A\$additional_authenticated_data_crc32c\x18\x06 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\"\xE2\x02\x0A\x11RawEncryptRequest\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x16\x0A\x09plaintext\x18\x02 \x01(\x0CB\x03\xE0A\x02\x12*\x0A\x1Dadditional_authenticated_data\x18\x03 \x01(\x0CB\x03\xE0A\x01\x12:\x0A\x10plaintext_crc32c\x18\x04 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\x12N\x0A\$additional_authenticated_data_crc32c\x18\x05 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\x12\"\x0A\x15initialization_vector\x18\x06 \x01(\x0CB\x03\xE0A\x01\x12F\x0A\x1Cinitialization_vector_crc32c\x18\x07 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\"\xF8\x02\x0A\x11RawDecryptRequest\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x17\x0A\x0Aciphertext\x18\x02 \x01(\x0CB\x03\xE0A\x02\x12*\x0A\x1Dadditional_authenticated_data\x18\x03 \x01(\x0CB\x03\xE0A\x01\x12\"\x0A\x15initialization_vector\x18\x04 \x01(\x0CB\x03\xE0A\x02\x12\x12\x0A\x0Atag_length\x18\x05 \x01(\x05\x12;\x0A\x11ciphertext_crc32c\x18\x06 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\x12N\x0A\$additional_authenticated_data_crc32c\x18\x07 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\x12F\x0A\x1Cinitialization_vector_crc32c\x18\x08 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\"\x8C\x02\x0A\x15AsymmetricSignRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\x120\x0A\x06digest\x18\x03 \x01(\x0B2\x1B.google.cloud.kms.v1.DigestB\x03\xE0A\x01\x127\x0A\x0Ddigest_crc32c\x18\x04 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\x12\x11\x0A\x04data\x18\x06 \x01(\x0CB\x03\xE0A\x01\x125\x0A\x0Bdata_crc32c\x18\x07 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\"\xB0\x01\x0A\x18AsymmetricDecryptRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\x12\x17\x0A\x0Aciphertext\x18\x03 \x01(\x0CB\x03\xE0A\x02\x12;\x0A\x11ciphertext_crc32c\x18\x04 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\"\x9A\x01\x0A\x0EMacSignRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\x12\x11\x0A\x04data\x18\x02 \x01(\x0CB\x03\xE0A\x02\x125\x0A\x0Bdata_crc32c\x18\x03 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\"\xE4\x01\x0A\x10MacVerifyRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\x12\x11\x0A\x04data\x18\x02 \x01(\x0CB\x03\xE0A\x02\x125\x0A\x0Bdata_crc32c\x18\x03 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\x12\x10\x0A\x03mac\x18\x04 \x01(\x0CB\x03\xE0A\x02\x124\x0A\x0Amac_crc32c\x18\x05 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\"\xAA\x01\x0A\x12DecapsulateRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\x12\x17\x0A\x0Aciphertext\x18\x02 \x01(\x0CB\x03\xE0A\x02\x12;\x0A\x11ciphertext_crc32c\x18\x03 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\"\x84\x01\x0A\x1AGenerateRandomBytesRequest\x12\x10\x0A\x08location\x18\x01 \x01(\x09\x12\x14\x0A\x0Clength_bytes\x18\x02 \x01(\x05\x12>\x0A\x10protection_level\x18\x03 \x01(\x0E2\$.google.cloud.kms.v1.ProtectionLevel\"\x85\x02\x0A\x0FEncryptResponse\x12\x0C\x0A\x04name\x18\x01 \x01(\x09\x12\x12\x0A\x0Aciphertext\x18\x02 \x01(\x0C\x126\x0A\x11ciphertext_crc32c\x18\x04 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12!\x0A\x19verified_plaintext_crc32c\x18\x05 \x01(\x08\x125\x0A-verified_additional_authenticated_data_crc32c\x18\x06 \x01(\x08\x12>\x0A\x10protection_level\x18\x07 \x01(\x0E2\$.google.cloud.kms.v1.ProtectionLevel\"\xB1\x01\x0A\x0FDecryptResponse\x12\x11\x0A\x09plaintext\x18\x01 \x01(\x0C\x125\x0A\x10plaintext_crc32c\x18\x02 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12\x14\x0A\x0Cused_primary\x18\x03 \x01(\x08\x12>\x0A\x10protection_level\x18\x04 \x01(\x0E2\$.google.cloud.kms.v1.ProtectionLevel\"\xAD\x03\x0A\x12RawEncryptResponse\x12\x12\x0A\x0Aciphertext\x18\x01 \x01(\x0C\x12\x1D\x0A\x15initialization_vector\x18\x02 \x01(\x0C\x12\x12\x0A\x0Atag_length\x18\x03 \x01(\x05\x126\x0A\x11ciphertext_crc32c\x18\x04 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12A\x0A\x1Cinitialization_vector_crc32c\x18\x05 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12!\x0A\x19verified_plaintext_crc32c\x18\x06 \x01(\x08\x125\x0A-verified_additional_authenticated_data_crc32c\x18\x07 \x01(\x08\x12-\x0A%verified_initialization_vector_crc32c\x18\x0A \x01(\x08\x12\x0C\x0A\x04name\x18\x08 \x01(\x09\x12>\x0A\x10protection_level\x18\x09 \x01(\x0E2\$.google.cloud.kms.v1.ProtectionLevel\"\xA8\x02\x0A\x12RawDecryptResponse\x12\x11\x0A\x09plaintext\x18\x01 \x01(\x0C\x125\x0A\x10plaintext_crc32c\x18\x02 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12>\x0A\x10protection_level\x18\x03 \x01(\x0E2\$.google.cloud.kms.v1.ProtectionLevel\x12\"\x0A\x1Averified_ciphertext_crc32c\x18\x04 \x01(\x08\x125\x0A-verified_additional_authenticated_data_crc32c\x18\x05 \x01(\x08\x12-\x0A%verified_initialization_vector_crc32c\x18\x06 \x01(\x08\"\xEE\x01\x0A\x16AsymmetricSignResponse\x12\x11\x0A\x09signature\x18\x01 \x01(\x0C\x125\x0A\x10signature_crc32c\x18\x02 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12\x1E\x0A\x16verified_digest_crc32c\x18\x03 \x01(\x08\x12\x0C\x0A\x04name\x18\x04 \x01(\x09\x12\x1C\x0A\x14verified_data_crc32c\x18\x05 \x01(\x08\x12>\x0A\x10protection_level\x18\x06 \x01(\x0E2\$.google.cloud.kms.v1.ProtectionLevel\"\xC9\x01\x0A\x19AsymmetricDecryptResponse\x12\x11\x0A\x09plaintext\x18\x01 \x01(\x0C\x125\x0A\x10plaintext_crc32c\x18\x02 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12\"\x0A\x1Averified_ciphertext_crc32c\x18\x03 \x01(\x08\x12>\x0A\x10protection_level\x18\x04 \x01(\x0E2\$.google.cloud.kms.v1.ProtectionLevel\"\xBB\x01\x0A\x0FMacSignResponse\x12\x0C\x0A\x04name\x18\x01 \x01(\x09\x12\x0B\x0A\x03mac\x18\x02 \x01(\x0C\x12/\x0A\x0Amac_crc32c\x18\x03 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12\x1C\x0A\x14verified_data_crc32c\x18\x04 \x01(\x08\x12>\x0A\x10protection_level\x18\x05 \x01(\x0E2\$.google.cloud.kms.v1.ProtectionLevel\"\xD1\x01\x0A\x11MacVerifyResponse\x12\x0C\x0A\x04name\x18\x01 \x01(\x09\x12\x0F\x0A\x07success\x18\x02 \x01(\x08\x12\x1C\x0A\x14verified_data_crc32c\x18\x03 \x01(\x08\x12\x1B\x0A\x13verified_mac_crc32c\x18\x04 \x01(\x08\x12\"\x0A\x1Averified_success_integrity\x18\x05 \x01(\x08\x12>\x0A\x10protection_level\x18\x06 \x01(\x0E2\$.google.cloud.kms.v1.ProtectionLevel\"\xDA\x01\x0A\x13DecapsulateResponse\x12\x0C\x0A\x04name\x18\x01 \x01(\x09\x12\x15\x0A\x0Dshared_secret\x18\x02 \x01(\x0C\x12!\x0A\x14shared_secret_crc32c\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12\"\x0A\x1Averified_ciphertext_crc32c\x18\x04 \x01(\x08\x12>\x0A\x10protection_level\x18\x05 \x01(\x0E2\$.google.cloud.kms.v1.ProtectionLevelB\x17\x0A\x15_shared_secret_crc32c\"]\x0A\x1BGenerateRandomBytesResponse\x12\x0C\x0A\x04data\x18\x01 \x01(\x0C\x120\x0A\x0Bdata_crc32c\x18\x03 \x01(\x0B2\x1B.google.protobuf.Int64Value\"H\x0A\x06Digest\x12\x10\x0A\x06sha256\x18\x01 \x01(\x0CH\x00\x12\x10\x0A\x06sha384\x18\x02 \x01(\x0CH\x00\x12\x10\x0A\x06sha512\x18\x03 \x01(\x0CH\x00B\x08\x0A\x06digest\"e\x0A\x10LocationMetadata\x12\x15\x0A\x0Dhsm_available\x18\x01 \x01(\x08\x12\x15\x0A\x0Dekm_available\x18\x02 \x01(\x08\x12#\x0A\x1Bhsm_single_tenant_available\x18\x03 \x01(\x08\"d\x0A\x17DeleteCryptoKeyMetadata\x12I\x0A\x10retired_resource\x18\x01 \x01(\x09B/\xE0A\x03\xFAA)\x0A'cloudkms.googleapis.com/RetiredResource\" \x0A\x1EDeleteCryptoKeyVersionMetadata2\xB46\x0A\x14KeyManagementService\x12\xA2\x01\x0A\x0CListKeyRings\x12(.google.cloud.kms.v1.ListKeyRingsRequest\x1A).google.cloud.kms.v1.ListKeyRingsResponse\"=\xDAA\x06parent\x82\xD3\xE4\x93\x02.\x12,/v1/{parent=projects/*/locations/*}/keyRings\x12\xB5\x01\x0A\x0EListCryptoKeys\x12*.google.cloud.kms.v1.ListCryptoKeysRequest\x1A+.google.cloud.kms.v1.ListCryptoKeysResponse\"J\xDAA\x06parent\x82\xD3\xE4\x93\x02;\x129/v1/{parent=projects/*/locations/*/keyRings/*}/cryptoKeys\x12\xDE\x01\x0A\x15ListCryptoKeyVersions\x121.google.cloud.kms.v1.ListCryptoKeyVersionsRequest\x1A2.google.cloud.kms.v1.ListCryptoKeyVersionsResponse\"^\xDAA\x06parent\x82\xD3\xE4\x93\x02O\x12M/v1/{parent=projects/*/locations/*/keyRings/*/cryptoKeys/*}/cryptoKeyVersions\x12\xB5\x01\x0A\x0EListImportJobs\x12*.google.cloud.kms.v1.ListImportJobsRequest\x1A+.google.cloud.kms.v1.ListImportJobsResponse\"J\xDAA\x06parent\x82\xD3\xE4\x93\x02;\x129/v1/{parent=projects/*/locations/*/keyRings/*}/importJobs\x12\xC2\x01\x0A\x14ListRetiredResources\x120.google.cloud.kms.v1.ListRetiredResourcesRequest\x1A1.google.cloud.kms.v1.ListRetiredResourcesResponse\"E\xDAA\x06parent\x82\xD3\xE4\x93\x026\x124/v1/{parent=projects/*/locations/*}/retiredResources\x12\x8F\x01\x0A\x0AGetKeyRing\x12&.google.cloud.kms.v1.GetKeyRingRequest\x1A\x1C.google.cloud.kms.v1.KeyRing\";\xDAA\x04name\x82\xD3\xE4\x93\x02.\x12,/v1/{name=projects/*/locations/*/keyRings/*}\x12\xA2\x01\x0A\x0CGetCryptoKey\x12(.google.cloud.kms.v1.GetCryptoKeyRequest\x1A\x1E.google.cloud.kms.v1.CryptoKey\"H\xDAA\x04name\x82\xD3\xE4\x93\x02;\x129/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*}\x12\xCB\x01\x0A\x13GetCryptoKeyVersion\x12/.google.cloud.kms.v1.GetCryptoKeyVersionRequest\x1A%.google.cloud.kms.v1.CryptoKeyVersion\"\\\xDAA\x04name\x82\xD3\xE4\x93\x02O\x12M/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}\x12\xC0\x01\x0A\x0CGetPublicKey\x12(.google.cloud.kms.v1.GetPublicKeyRequest\x1A\x1E.google.cloud.kms.v1.PublicKey\"f\xDAA\x04name\x82\xD3\xE4\x93\x02Y\x12W/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}/publicKey\x12\xA2\x01\x0A\x0CGetImportJob\x12(.google.cloud.kms.v1.GetImportJobRequest\x1A\x1E.google.cloud.kms.v1.ImportJob\"H\xDAA\x04name\x82\xD3\xE4\x93\x02;\x129/v1/{name=projects/*/locations/*/keyRings/*/importJobs/*}\x12\xAF\x01\x0A\x12GetRetiredResource\x12..google.cloud.kms.v1.GetRetiredResourceRequest\x1A\$.google.cloud.kms.v1.RetiredResource\"C\xDAA\x04name\x82\xD3\xE4\x93\x026\x124/v1/{name=projects/*/locations/*/retiredResources/*}\x12\xB6\x01\x0A\x0DCreateKeyRing\x12).google.cloud.kms.v1.CreateKeyRingRequest\x1A\x1C.google.cloud.kms.v1.KeyRing\"\\\xDAA\x1Bparent,key_ring_id,key_ring\x82\xD3\xE4\x93\x028\",/v1/{parent=projects/*/locations/*}/keyRings:\x08key_ring\x12\xCF\x01\x0A\x0FCreateCryptoKey\x12+.google.cloud.kms.v1.CreateCryptoKeyRequest\x1A\x1E.google.cloud.kms.v1.CryptoKey\"o\xDAA\x1Fparent,crypto_key_id,crypto_key\x82\xD3\xE4\x93\x02G\"9/v1/{parent=projects/*/locations/*/keyRings/*}/cryptoKeys:\x0Acrypto_key\x12\xFB\x01\x0A\x16CreateCryptoKeyVersion\x122.google.cloud.kms.v1.CreateCryptoKeyVersionRequest\x1A%.google.cloud.kms.v1.CryptoKeyVersion\"\x85\x01\xDAA\x19parent,crypto_key_version\x82\xD3\xE4\x93\x02c\"M/v1/{parent=projects/*/locations/*/keyRings/*/cryptoKeys/*}/cryptoKeyVersions:\x12crypto_key_version\x12\xDA\x01\x0A\x0FDeleteCryptoKey\x12+.google.cloud.kms.v1.DeleteCryptoKeyRequest\x1A\x1D.google.longrunning.Operation\"{\xCAA0\x0A\x15google.protobuf.Empty\x12\x17DeleteCryptoKeyMetadata\xDAA\x04name\x82\xD3\xE4\x93\x02;*9/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*}\x12\x84\x02\x0A\x16DeleteCryptoKeyVersion\x122.google.cloud.kms.v1.DeleteCryptoKeyVersionRequest\x1A\x1D.google.longrunning.Operation\"\x96\x01\xCAA7\x0A\x15google.protobuf.Empty\x12\x1EDeleteCryptoKeyVersionMetadata\xDAA\x04name\x82\xD3\xE4\x93\x02O*M/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}\x12\xD4\x01\x0A\x16ImportCryptoKeyVersion\x122.google.cloud.kms.v1.ImportCryptoKeyVersionRequest\x1A%.google.cloud.kms.v1.CryptoKeyVersion\"_\x82\xD3\xE4\x93\x02Y\"T/v1/{parent=projects/*/locations/*/keyRings/*/cryptoKeys/*}/cryptoKeyVersions:import:\x01*\x12\xCF\x01\x0A\x0FCreateImportJob\x12+.google.cloud.kms.v1.CreateImportJobRequest\x1A\x1E.google.cloud.kms.v1.ImportJob\"o\xDAA\x1Fparent,import_job_id,import_job\x82\xD3\xE4\x93\x02G\"9/v1/{parent=projects/*/locations/*/keyRings/*}/importJobs:\x0Aimport_job\x12\xD1\x01\x0A\x0FUpdateCryptoKey\x12+.google.cloud.kms.v1.UpdateCryptoKeyRequest\x1A\x1E.google.cloud.kms.v1.CryptoKey\"q\xDAA\x16crypto_key,update_mask\x82\xD3\xE4\x93\x02R2D/v1/{crypto_key.name=projects/*/locations/*/keyRings/*/cryptoKeys/*}:\x0Acrypto_key\x12\x93\x02\x0A\x16UpdateCryptoKeyVersion\x122.google.cloud.kms.v1.UpdateCryptoKeyVersionRequest\x1A%.google.cloud.kms.v1.CryptoKeyVersion\"\x9D\x01\xDAA\x1Ecrypto_key_version,update_mask\x82\xD3\xE4\x93\x02v2`/v1/{crypto_key_version.name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:\x12crypto_key_version\x12\xF2\x01\x0A\x1DUpdateCryptoKeyPrimaryVersion\x129.google.cloud.kms.v1.UpdateCryptoKeyPrimaryVersionRequest\x1A\x1E.google.cloud.kms.v1.CryptoKey\"v\xDAA\x1Aname,crypto_key_version_id\x82\xD3\xE4\x93\x02S\"N/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*}:updatePrimaryVersion:\x01*\x12\xDE\x01\x0A\x17DestroyCryptoKeyVersion\x123.google.cloud.kms.v1.DestroyCryptoKeyVersionRequest\x1A%.google.cloud.kms.v1.CryptoKeyVersion\"g\xDAA\x04name\x82\xD3\xE4\x93\x02Z\"U/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:destroy:\x01*\x12\xDE\x01\x0A\x17RestoreCryptoKeyVersion\x123.google.cloud.kms.v1.RestoreCryptoKeyVersionRequest\x1A%.google.cloud.kms.v1.CryptoKeyVersion\"g\xDAA\x04name\x82\xD3\xE4\x93\x02Z\"U/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:restore:\x01*\x12\xB4\x01\x0A\x07Encrypt\x12#.google.cloud.kms.v1.EncryptRequest\x1A\$.google.cloud.kms.v1.EncryptResponse\"^\xDAA\x0Ename,plaintext\x82\xD3\xE4\x93\x02G\"B/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/**}:encrypt:\x01*\x12\xB4\x01\x0A\x07Decrypt\x12#.google.cloud.kms.v1.DecryptRequest\x1A\$.google.cloud.kms.v1.DecryptResponse\"^\xDAA\x0Fname,ciphertext\x82\xD3\xE4\x93\x02F\"A/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*}:decrypt:\x01*\x12\xC2\x01\x0A\x0ARawEncrypt\x12&.google.cloud.kms.v1.RawEncryptRequest\x1A'.google.cloud.kms.v1.RawEncryptResponse\"c\x82\xD3\xE4\x93\x02]\"X/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:rawEncrypt:\x01*\x12\xC2\x01\x0A\x0ARawDecrypt\x12&.google.cloud.kms.v1.RawDecryptRequest\x1A'.google.cloud.kms.v1.RawDecryptResponse\"c\x82\xD3\xE4\x93\x02]\"X/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:rawDecrypt:\x01*\x12\xE0\x01\x0A\x0EAsymmetricSign\x12*.google.cloud.kms.v1.AsymmetricSignRequest\x1A+.google.cloud.kms.v1.AsymmetricSignResponse\"u\xDAA\x0Bname,digest\x82\xD3\xE4\x93\x02a\"\\/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:asymmetricSign:\x01*\x12\xF0\x01\x0A\x11AsymmetricDecrypt\x12-.google.cloud.kms.v1.AsymmetricDecryptRequest\x1A..google.cloud.kms.v1.AsymmetricDecryptResponse\"|\xDAA\x0Fname,ciphertext\x82\xD3\xE4\x93\x02d\"_/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:asymmetricDecrypt:\x01*\x12\xC2\x01\x0A\x07MacSign\x12#.google.cloud.kms.v1.MacSignRequest\x1A\$.google.cloud.kms.v1.MacSignResponse\"l\xDAA\x09name,data\x82\xD3\xE4\x93\x02Z\"U/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:macSign:\x01*\x12\xCE\x01\x0A\x09MacVerify\x12%.google.cloud.kms.v1.MacVerifyRequest\x1A&.google.cloud.kms.v1.MacVerifyResponse\"r\xDAA\x0Dname,data,mac\x82\xD3\xE4\x93\x02\\\"W/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:macVerify:\x01*\x12\xC6\x01\x0A\x0BDecapsulate\x12'.google.cloud.kms.v1.DecapsulateRequest\x1A(.google.cloud.kms.v1.DecapsulateResponse\"d\x82\xD3\xE4\x93\x02^\"Y/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:decapsulate:\x01*\x12\xE7\x01\x0A\x13GenerateRandomBytes\x12/.google.cloud.kms.v1.GenerateRandomBytesRequest\x1A0.google.cloud.kms.v1.GenerateRandomBytesResponse\"m\xDAA&location,length_bytes,protection_level\x82\xD3\xE4\x93\x02>\"9/v1/{location=projects/*/locations/*}:generateRandomBytes:\x01*\x1At\xCAA\x17cloudkms.googleapis.com\xD2AWhttps://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloudkmsB|\x0A\x17com.google.cloud.kms.v1B\x08KmsProtoP\x01Z)cloud.google.com/go/kms/apiv1/kmspb;kmspb\xAA\x02\x13Google.Cloud.Kms.V1\xCA\x02\x13Google\\Cloud\\Kms\\V1b\x06proto3"
+ "\x0A\x8A\x82\x01\x0A!google/cloud/kms/v1/service.proto\x12\x13google.cloud.kms.v1\x1A\x17google/api/client.proto\x1A\x1Fgoogle/api/field_behavior.proto\x1A\x19google/api/resource.proto\x1A#google/cloud/kms/v1/resources.proto\x1A#google/longrunning/operations.proto\x1A\x1Bgoogle/protobuf/empty.proto\x1A google/protobuf/field_mask.proto\x1A\x1Egoogle/protobuf/wrappers.proto\"\xAD\x01\x0A\x13ListKeyRingsRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\xFF\x01\x0A\x15ListCryptoKeysRequest\x127\x0A\x06parent\x18\x01 \x01(\x09B'\xE0A\x02\xFAA!\x0A\x1Fcloudkms.googleapis.com/KeyRing\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12P\x0A\x0Cversion_view\x18\x04 \x01(\x0E2:.google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionView\x12\x13\x0A\x06filter\x18\x05 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x06 \x01(\x09B\x03\xE0A\x01\"\x80\x02\x0A\x1CListCryptoKeyVersionsRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!cloudkms.googleapis.com/CryptoKey\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12H\x0A\x04view\x18\x04 \x01(\x0E2:.google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionView\x12\x13\x0A\x06filter\x18\x05 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x06 \x01(\x09B\x03\xE0A\x01\"\xAD\x01\x0A\x15ListImportJobsRequest\x127\x0A\x06parent\x18\x01 \x01(\x09B'\xE0A\x02\xFAA!\x0A\x1Fcloudkms.googleapis.com/KeyRing\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\x12\x13\x0A\x06filter\x18\x04 \x01(\x09B\x03\xE0A\x01\x12\x15\x0A\x08order_by\x18\x05 \x01(\x09B\x03\xE0A\x01\"\x8F\x01\x0A\x1BListRetiredResourcesRequest\x12?\x0A\x06parent\x18\x01 \x01(\x09B/\xE0A\x02\xFAA)\x12'cloudkms.googleapis.com/RetiredResource\x12\x16\x0A\x09page_size\x18\x02 \x01(\x05B\x03\xE0A\x01\x12\x17\x0A\x0Apage_token\x18\x03 \x01(\x09B\x03\xE0A\x01\"t\x0A\x14ListKeyRingsResponse\x12/\x0A\x09key_rings\x18\x01 \x03(\x0B2\x1C.google.cloud.kms.v1.KeyRing\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x12\x0A\x0Atotal_size\x18\x03 \x01(\x05\"z\x0A\x16ListCryptoKeysResponse\x123\x0A\x0Bcrypto_keys\x18\x01 \x03(\x0B2\x1E.google.cloud.kms.v1.CryptoKey\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x12\x0A\x0Atotal_size\x18\x03 \x01(\x05\"\x90\x01\x0A\x1DListCryptoKeyVersionsResponse\x12B\x0A\x13crypto_key_versions\x18\x01 \x03(\x0B2%.google.cloud.kms.v1.CryptoKeyVersion\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x12\x0A\x0Atotal_size\x18\x03 \x01(\x05\"z\x0A\x16ListImportJobsResponse\x123\x0A\x0Bimport_jobs\x18\x01 \x03(\x0B2\x1E.google.cloud.kms.v1.ImportJob\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x12\x0A\x0Atotal_size\x18\x03 \x01(\x05\"\x8C\x01\x0A\x1CListRetiredResourcesResponse\x12?\x0A\x11retired_resources\x18\x01 \x03(\x0B2\$.google.cloud.kms.v1.RetiredResource\x12\x17\x0A\x0Fnext_page_token\x18\x02 \x01(\x09\x12\x12\x0A\x0Atotal_size\x18\x03 \x01(\x03\"J\x0A\x11GetKeyRingRequest\x125\x0A\x04name\x18\x01 \x01(\x09B'\xE0A\x02\xFAA!\x0A\x1Fcloudkms.googleapis.com/KeyRing\"N\x0A\x13GetCryptoKeyRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!cloudkms.googleapis.com/CryptoKey\"\\\x0A\x1AGetCryptoKeyVersionRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\"\xA5\x01\x0A\x13GetPublicKeyRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\x12N\x0A\x11public_key_format\x18\x02 \x01(\x0E2..google.cloud.kms.v1.PublicKey.PublicKeyFormatB\x03\xE0A\x01\"N\x0A\x13GetImportJobRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!cloudkms.googleapis.com/ImportJob\"Z\x0A\x19GetRetiredResourceRequest\x12=\x0A\x04name\x18\x01 \x01(\x09B/\xE0A\x02\xFAA)\x0A'cloudkms.googleapis.com/RetiredResource\"\xA0\x01\x0A\x14CreateKeyRingRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!locations.googleapis.com/Location\x12\x18\x0A\x0Bkey_ring_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x123\x0A\x08key_ring\x18\x03 \x01(\x0B2\x1C.google.cloud.kms.v1.KeyRingB\x03\xE0A\x02\"\xCD\x01\x0A\x16CreateCryptoKeyRequest\x127\x0A\x06parent\x18\x01 \x01(\x09B'\xE0A\x02\xFAA!\x0A\x1Fcloudkms.googleapis.com/KeyRing\x12\x1A\x0A\x0Dcrypto_key_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x127\x0A\x0Acrypto_key\x18\x03 \x01(\x0B2\x1E.google.cloud.kms.v1.CryptoKeyB\x03\xE0A\x02\x12%\x0A\x1Dskip_initial_version_creation\x18\x05 \x01(\x08\"\xA2\x01\x0A\x1DCreateCryptoKeyVersionRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!cloudkms.googleapis.com/CryptoKey\x12F\x0A\x12crypto_key_version\x18\x02 \x01(\x0B2%.google.cloud.kms.v1.CryptoKeyVersionB\x03\xE0A\x02\"Q\x0A\x16DeleteCryptoKeyRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!cloudkms.googleapis.com/CryptoKey\"_\x0A\x1DDeleteCryptoKeyVersionRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\"\xF0\x02\x0A\x1DImportCryptoKeyVersionRequest\x129\x0A\x06parent\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!cloudkms.googleapis.com/CryptoKey\x12L\x0A\x12crypto_key_version\x18\x06 \x01(\x09B0\xE0A\x01\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\x12W\x0A\x09algorithm\x18\x02 \x01(\x0E2?.google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithmB\x03\xE0A\x02\x12\x17\x0A\x0Aimport_job\x18\x04 \x01(\x09B\x03\xE0A\x02\x12\x18\x0A\x0Bwrapped_key\x18\x08 \x01(\x0CB\x03\xE0A\x01\x12\"\x0A\x13rsa_aes_wrapped_key\x18\x05 \x01(\x0CB\x03\xE0A\x01H\x00B\x16\x0A\x14wrapped_key_material\"\xA6\x01\x0A\x16CreateImportJobRequest\x127\x0A\x06parent\x18\x01 \x01(\x09B'\xE0A\x02\xFAA!\x0A\x1Fcloudkms.googleapis.com/KeyRing\x12\x1A\x0A\x0Dimport_job_id\x18\x02 \x01(\x09B\x03\xE0A\x02\x127\x0A\x0Aimport_job\x18\x03 \x01(\x0B2\x1E.google.cloud.kms.v1.ImportJobB\x03\xE0A\x02\"\x87\x01\x0A\x16UpdateCryptoKeyRequest\x127\x0A\x0Acrypto_key\x18\x01 \x01(\x0B2\x1E.google.cloud.kms.v1.CryptoKeyB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\"\x9D\x01\x0A\x1DUpdateCryptoKeyVersionRequest\x12F\x0A\x12crypto_key_version\x18\x01 \x01(\x0B2%.google.cloud.kms.v1.CryptoKeyVersionB\x03\xE0A\x02\x124\x0A\x0Bupdate_mask\x18\x02 \x01(\x0B2\x1A.google.protobuf.FieldMaskB\x03\xE0A\x02\"\x83\x01\x0A\$UpdateCryptoKeyPrimaryVersionRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!cloudkms.googleapis.com/CryptoKey\x12\"\x0A\x15crypto_key_version_id\x18\x02 \x01(\x09B\x03\xE0A\x02\"`\x0A\x1EDestroyCryptoKeyVersionRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\"`\x0A\x1ERestoreCryptoKeyVersionRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\"\xF9\x01\x0A\x0EEncryptRequest\x12\x17\x0A\x04name\x18\x01 \x01(\x09B\x09\xE0A\x02\xFAA\x03\x0A\x01*\x12\x16\x0A\x09plaintext\x18\x02 \x01(\x0CB\x03\xE0A\x02\x12*\x0A\x1Dadditional_authenticated_data\x18\x03 \x01(\x0CB\x03\xE0A\x01\x12:\x0A\x10plaintext_crc32c\x18\x07 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\x12N\x0A\$additional_authenticated_data_crc32c\x18\x08 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\"\x9B\x02\x0A\x0EDecryptRequest\x127\x0A\x04name\x18\x01 \x01(\x09B)\xE0A\x02\xFAA#\x0A!cloudkms.googleapis.com/CryptoKey\x12\x17\x0A\x0Aciphertext\x18\x02 \x01(\x0CB\x03\xE0A\x02\x12*\x0A\x1Dadditional_authenticated_data\x18\x03 \x01(\x0CB\x03\xE0A\x01\x12;\x0A\x11ciphertext_crc32c\x18\x05 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\x12N\x0A\$additional_authenticated_data_crc32c\x18\x06 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\"\xE2\x02\x0A\x11RawEncryptRequest\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x16\x0A\x09plaintext\x18\x02 \x01(\x0CB\x03\xE0A\x02\x12*\x0A\x1Dadditional_authenticated_data\x18\x03 \x01(\x0CB\x03\xE0A\x01\x12:\x0A\x10plaintext_crc32c\x18\x04 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\x12N\x0A\$additional_authenticated_data_crc32c\x18\x05 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\x12\"\x0A\x15initialization_vector\x18\x06 \x01(\x0CB\x03\xE0A\x01\x12F\x0A\x1Cinitialization_vector_crc32c\x18\x07 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\"\xF8\x02\x0A\x11RawDecryptRequest\x12\x11\x0A\x04name\x18\x01 \x01(\x09B\x03\xE0A\x02\x12\x17\x0A\x0Aciphertext\x18\x02 \x01(\x0CB\x03\xE0A\x02\x12*\x0A\x1Dadditional_authenticated_data\x18\x03 \x01(\x0CB\x03\xE0A\x01\x12\"\x0A\x15initialization_vector\x18\x04 \x01(\x0CB\x03\xE0A\x02\x12\x12\x0A\x0Atag_length\x18\x05 \x01(\x05\x12;\x0A\x11ciphertext_crc32c\x18\x06 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\x12N\x0A\$additional_authenticated_data_crc32c\x18\x07 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\x12F\x0A\x1Cinitialization_vector_crc32c\x18\x08 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\"\x8C\x02\x0A\x15AsymmetricSignRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\x120\x0A\x06digest\x18\x03 \x01(\x0B2\x1B.google.cloud.kms.v1.DigestB\x03\xE0A\x01\x127\x0A\x0Ddigest_crc32c\x18\x04 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\x12\x11\x0A\x04data\x18\x06 \x01(\x0CB\x03\xE0A\x01\x125\x0A\x0Bdata_crc32c\x18\x07 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\"\xB0\x01\x0A\x18AsymmetricDecryptRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\x12\x17\x0A\x0Aciphertext\x18\x03 \x01(\x0CB\x03\xE0A\x02\x12;\x0A\x11ciphertext_crc32c\x18\x04 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\"\x9A\x01\x0A\x0EMacSignRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\x12\x11\x0A\x04data\x18\x02 \x01(\x0CB\x03\xE0A\x02\x125\x0A\x0Bdata_crc32c\x18\x03 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\"\xE4\x01\x0A\x10MacVerifyRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\x12\x11\x0A\x04data\x18\x02 \x01(\x0CB\x03\xE0A\x02\x125\x0A\x0Bdata_crc32c\x18\x03 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\x12\x10\x0A\x03mac\x18\x04 \x01(\x0CB\x03\xE0A\x02\x124\x0A\x0Amac_crc32c\x18\x05 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\"\xAA\x01\x0A\x12DecapsulateRequest\x12>\x0A\x04name\x18\x01 \x01(\x09B0\xE0A\x02\xFAA*\x0A(cloudkms.googleapis.com/CryptoKeyVersion\x12\x17\x0A\x0Aciphertext\x18\x02 \x01(\x0CB\x03\xE0A\x02\x12;\x0A\x11ciphertext_crc32c\x18\x03 \x01(\x0B2\x1B.google.protobuf.Int64ValueB\x03\xE0A\x01\"\x84\x01\x0A\x1AGenerateRandomBytesRequest\x12\x10\x0A\x08location\x18\x01 \x01(\x09\x12\x14\x0A\x0Clength_bytes\x18\x02 \x01(\x05\x12>\x0A\x10protection_level\x18\x03 \x01(\x0E2\$.google.cloud.kms.v1.ProtectionLevel\"\x85\x02\x0A\x0FEncryptResponse\x12\x0C\x0A\x04name\x18\x01 \x01(\x09\x12\x12\x0A\x0Aciphertext\x18\x02 \x01(\x0C\x126\x0A\x11ciphertext_crc32c\x18\x04 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12!\x0A\x19verified_plaintext_crc32c\x18\x05 \x01(\x08\x125\x0A-verified_additional_authenticated_data_crc32c\x18\x06 \x01(\x08\x12>\x0A\x10protection_level\x18\x07 \x01(\x0E2\$.google.cloud.kms.v1.ProtectionLevel\"\xB1\x01\x0A\x0FDecryptResponse\x12\x11\x0A\x09plaintext\x18\x01 \x01(\x0C\x125\x0A\x10plaintext_crc32c\x18\x02 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12\x14\x0A\x0Cused_primary\x18\x03 \x01(\x08\x12>\x0A\x10protection_level\x18\x04 \x01(\x0E2\$.google.cloud.kms.v1.ProtectionLevel\"\xAD\x03\x0A\x12RawEncryptResponse\x12\x12\x0A\x0Aciphertext\x18\x01 \x01(\x0C\x12\x1D\x0A\x15initialization_vector\x18\x02 \x01(\x0C\x12\x12\x0A\x0Atag_length\x18\x03 \x01(\x05\x126\x0A\x11ciphertext_crc32c\x18\x04 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12A\x0A\x1Cinitialization_vector_crc32c\x18\x05 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12!\x0A\x19verified_plaintext_crc32c\x18\x06 \x01(\x08\x125\x0A-verified_additional_authenticated_data_crc32c\x18\x07 \x01(\x08\x12-\x0A%verified_initialization_vector_crc32c\x18\x0A \x01(\x08\x12\x0C\x0A\x04name\x18\x08 \x01(\x09\x12>\x0A\x10protection_level\x18\x09 \x01(\x0E2\$.google.cloud.kms.v1.ProtectionLevel\"\xA8\x02\x0A\x12RawDecryptResponse\x12\x11\x0A\x09plaintext\x18\x01 \x01(\x0C\x125\x0A\x10plaintext_crc32c\x18\x02 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12>\x0A\x10protection_level\x18\x03 \x01(\x0E2\$.google.cloud.kms.v1.ProtectionLevel\x12\"\x0A\x1Averified_ciphertext_crc32c\x18\x04 \x01(\x08\x125\x0A-verified_additional_authenticated_data_crc32c\x18\x05 \x01(\x08\x12-\x0A%verified_initialization_vector_crc32c\x18\x06 \x01(\x08\"\xEE\x01\x0A\x16AsymmetricSignResponse\x12\x11\x0A\x09signature\x18\x01 \x01(\x0C\x125\x0A\x10signature_crc32c\x18\x02 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12\x1E\x0A\x16verified_digest_crc32c\x18\x03 \x01(\x08\x12\x0C\x0A\x04name\x18\x04 \x01(\x09\x12\x1C\x0A\x14verified_data_crc32c\x18\x05 \x01(\x08\x12>\x0A\x10protection_level\x18\x06 \x01(\x0E2\$.google.cloud.kms.v1.ProtectionLevel\"\xC9\x01\x0A\x19AsymmetricDecryptResponse\x12\x11\x0A\x09plaintext\x18\x01 \x01(\x0C\x125\x0A\x10plaintext_crc32c\x18\x02 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12\"\x0A\x1Averified_ciphertext_crc32c\x18\x03 \x01(\x08\x12>\x0A\x10protection_level\x18\x04 \x01(\x0E2\$.google.cloud.kms.v1.ProtectionLevel\"\xBB\x01\x0A\x0FMacSignResponse\x12\x0C\x0A\x04name\x18\x01 \x01(\x09\x12\x0B\x0A\x03mac\x18\x02 \x01(\x0C\x12/\x0A\x0Amac_crc32c\x18\x03 \x01(\x0B2\x1B.google.protobuf.Int64Value\x12\x1C\x0A\x14verified_data_crc32c\x18\x04 \x01(\x08\x12>\x0A\x10protection_level\x18\x05 \x01(\x0E2\$.google.cloud.kms.v1.ProtectionLevel\"\xD1\x01\x0A\x11MacVerifyResponse\x12\x0C\x0A\x04name\x18\x01 \x01(\x09\x12\x0F\x0A\x07success\x18\x02 \x01(\x08\x12\x1C\x0A\x14verified_data_crc32c\x18\x03 \x01(\x08\x12\x1B\x0A\x13verified_mac_crc32c\x18\x04 \x01(\x08\x12\"\x0A\x1Averified_success_integrity\x18\x05 \x01(\x08\x12>\x0A\x10protection_level\x18\x06 \x01(\x0E2\$.google.cloud.kms.v1.ProtectionLevel\"\xDA\x01\x0A\x13DecapsulateResponse\x12\x0C\x0A\x04name\x18\x01 \x01(\x09\x12\x15\x0A\x0Dshared_secret\x18\x02 \x01(\x0C\x12!\x0A\x14shared_secret_crc32c\x18\x03 \x01(\x03H\x00\x88\x01\x01\x12\"\x0A\x1Averified_ciphertext_crc32c\x18\x04 \x01(\x08\x12>\x0A\x10protection_level\x18\x05 \x01(\x0E2\$.google.cloud.kms.v1.ProtectionLevelB\x17\x0A\x15_shared_secret_crc32c\"]\x0A\x1BGenerateRandomBytesResponse\x12\x0C\x0A\x04data\x18\x01 \x01(\x0C\x120\x0A\x0Bdata_crc32c\x18\x03 \x01(\x0B2\x1B.google.protobuf.Int64Value\"_\x0A\x06Digest\x12\x10\x0A\x06sha256\x18\x01 \x01(\x0CH\x00\x12\x10\x0A\x06sha384\x18\x02 \x01(\x0CH\x00\x12\x10\x0A\x06sha512\x18\x03 \x01(\x0CH\x00\x12\x15\x0A\x0Bexternal_mu\x18\x04 \x01(\x0CH\x00B\x08\x0A\x06digest\"e\x0A\x10LocationMetadata\x12\x15\x0A\x0Dhsm_available\x18\x01 \x01(\x08\x12\x15\x0A\x0Dekm_available\x18\x02 \x01(\x08\x12#\x0A\x1Bhsm_single_tenant_available\x18\x03 \x01(\x08\"d\x0A\x17DeleteCryptoKeyMetadata\x12I\x0A\x10retired_resource\x18\x01 \x01(\x09B/\xE0A\x03\xFAA)\x0A'cloudkms.googleapis.com/RetiredResource\" \x0A\x1EDeleteCryptoKeyVersionMetadata2\xB46\x0A\x14KeyManagementService\x12\xA2\x01\x0A\x0CListKeyRings\x12(.google.cloud.kms.v1.ListKeyRingsRequest\x1A).google.cloud.kms.v1.ListKeyRingsResponse\"=\xDAA\x06parent\x82\xD3\xE4\x93\x02.\x12,/v1/{parent=projects/*/locations/*}/keyRings\x12\xB5\x01\x0A\x0EListCryptoKeys\x12*.google.cloud.kms.v1.ListCryptoKeysRequest\x1A+.google.cloud.kms.v1.ListCryptoKeysResponse\"J\xDAA\x06parent\x82\xD3\xE4\x93\x02;\x129/v1/{parent=projects/*/locations/*/keyRings/*}/cryptoKeys\x12\xDE\x01\x0A\x15ListCryptoKeyVersions\x121.google.cloud.kms.v1.ListCryptoKeyVersionsRequest\x1A2.google.cloud.kms.v1.ListCryptoKeyVersionsResponse\"^\xDAA\x06parent\x82\xD3\xE4\x93\x02O\x12M/v1/{parent=projects/*/locations/*/keyRings/*/cryptoKeys/*}/cryptoKeyVersions\x12\xB5\x01\x0A\x0EListImportJobs\x12*.google.cloud.kms.v1.ListImportJobsRequest\x1A+.google.cloud.kms.v1.ListImportJobsResponse\"J\xDAA\x06parent\x82\xD3\xE4\x93\x02;\x129/v1/{parent=projects/*/locations/*/keyRings/*}/importJobs\x12\xC2\x01\x0A\x14ListRetiredResources\x120.google.cloud.kms.v1.ListRetiredResourcesRequest\x1A1.google.cloud.kms.v1.ListRetiredResourcesResponse\"E\xDAA\x06parent\x82\xD3\xE4\x93\x026\x124/v1/{parent=projects/*/locations/*}/retiredResources\x12\x8F\x01\x0A\x0AGetKeyRing\x12&.google.cloud.kms.v1.GetKeyRingRequest\x1A\x1C.google.cloud.kms.v1.KeyRing\";\xDAA\x04name\x82\xD3\xE4\x93\x02.\x12,/v1/{name=projects/*/locations/*/keyRings/*}\x12\xA2\x01\x0A\x0CGetCryptoKey\x12(.google.cloud.kms.v1.GetCryptoKeyRequest\x1A\x1E.google.cloud.kms.v1.CryptoKey\"H\xDAA\x04name\x82\xD3\xE4\x93\x02;\x129/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*}\x12\xCB\x01\x0A\x13GetCryptoKeyVersion\x12/.google.cloud.kms.v1.GetCryptoKeyVersionRequest\x1A%.google.cloud.kms.v1.CryptoKeyVersion\"\\\xDAA\x04name\x82\xD3\xE4\x93\x02O\x12M/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}\x12\xC0\x01\x0A\x0CGetPublicKey\x12(.google.cloud.kms.v1.GetPublicKeyRequest\x1A\x1E.google.cloud.kms.v1.PublicKey\"f\xDAA\x04name\x82\xD3\xE4\x93\x02Y\x12W/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}/publicKey\x12\xA2\x01\x0A\x0CGetImportJob\x12(.google.cloud.kms.v1.GetImportJobRequest\x1A\x1E.google.cloud.kms.v1.ImportJob\"H\xDAA\x04name\x82\xD3\xE4\x93\x02;\x129/v1/{name=projects/*/locations/*/keyRings/*/importJobs/*}\x12\xAF\x01\x0A\x12GetRetiredResource\x12..google.cloud.kms.v1.GetRetiredResourceRequest\x1A\$.google.cloud.kms.v1.RetiredResource\"C\xDAA\x04name\x82\xD3\xE4\x93\x026\x124/v1/{name=projects/*/locations/*/retiredResources/*}\x12\xB6\x01\x0A\x0DCreateKeyRing\x12).google.cloud.kms.v1.CreateKeyRingRequest\x1A\x1C.google.cloud.kms.v1.KeyRing\"\\\xDAA\x1Bparent,key_ring_id,key_ring\x82\xD3\xE4\x93\x028\",/v1/{parent=projects/*/locations/*}/keyRings:\x08key_ring\x12\xCF\x01\x0A\x0FCreateCryptoKey\x12+.google.cloud.kms.v1.CreateCryptoKeyRequest\x1A\x1E.google.cloud.kms.v1.CryptoKey\"o\xDAA\x1Fparent,crypto_key_id,crypto_key\x82\xD3\xE4\x93\x02G\"9/v1/{parent=projects/*/locations/*/keyRings/*}/cryptoKeys:\x0Acrypto_key\x12\xFB\x01\x0A\x16CreateCryptoKeyVersion\x122.google.cloud.kms.v1.CreateCryptoKeyVersionRequest\x1A%.google.cloud.kms.v1.CryptoKeyVersion\"\x85\x01\xDAA\x19parent,crypto_key_version\x82\xD3\xE4\x93\x02c\"M/v1/{parent=projects/*/locations/*/keyRings/*/cryptoKeys/*}/cryptoKeyVersions:\x12crypto_key_version\x12\xDA\x01\x0A\x0FDeleteCryptoKey\x12+.google.cloud.kms.v1.DeleteCryptoKeyRequest\x1A\x1D.google.longrunning.Operation\"{\xCAA0\x0A\x15google.protobuf.Empty\x12\x17DeleteCryptoKeyMetadata\xDAA\x04name\x82\xD3\xE4\x93\x02;*9/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*}\x12\x84\x02\x0A\x16DeleteCryptoKeyVersion\x122.google.cloud.kms.v1.DeleteCryptoKeyVersionRequest\x1A\x1D.google.longrunning.Operation\"\x96\x01\xCAA7\x0A\x15google.protobuf.Empty\x12\x1EDeleteCryptoKeyVersionMetadata\xDAA\x04name\x82\xD3\xE4\x93\x02O*M/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}\x12\xD4\x01\x0A\x16ImportCryptoKeyVersion\x122.google.cloud.kms.v1.ImportCryptoKeyVersionRequest\x1A%.google.cloud.kms.v1.CryptoKeyVersion\"_\x82\xD3\xE4\x93\x02Y\"T/v1/{parent=projects/*/locations/*/keyRings/*/cryptoKeys/*}/cryptoKeyVersions:import:\x01*\x12\xCF\x01\x0A\x0FCreateImportJob\x12+.google.cloud.kms.v1.CreateImportJobRequest\x1A\x1E.google.cloud.kms.v1.ImportJob\"o\xDAA\x1Fparent,import_job_id,import_job\x82\xD3\xE4\x93\x02G\"9/v1/{parent=projects/*/locations/*/keyRings/*}/importJobs:\x0Aimport_job\x12\xD1\x01\x0A\x0FUpdateCryptoKey\x12+.google.cloud.kms.v1.UpdateCryptoKeyRequest\x1A\x1E.google.cloud.kms.v1.CryptoKey\"q\xDAA\x16crypto_key,update_mask\x82\xD3\xE4\x93\x02R2D/v1/{crypto_key.name=projects/*/locations/*/keyRings/*/cryptoKeys/*}:\x0Acrypto_key\x12\x93\x02\x0A\x16UpdateCryptoKeyVersion\x122.google.cloud.kms.v1.UpdateCryptoKeyVersionRequest\x1A%.google.cloud.kms.v1.CryptoKeyVersion\"\x9D\x01\xDAA\x1Ecrypto_key_version,update_mask\x82\xD3\xE4\x93\x02v2`/v1/{crypto_key_version.name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:\x12crypto_key_version\x12\xF2\x01\x0A\x1DUpdateCryptoKeyPrimaryVersion\x129.google.cloud.kms.v1.UpdateCryptoKeyPrimaryVersionRequest\x1A\x1E.google.cloud.kms.v1.CryptoKey\"v\xDAA\x1Aname,crypto_key_version_id\x82\xD3\xE4\x93\x02S\"N/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*}:updatePrimaryVersion:\x01*\x12\xDE\x01\x0A\x17DestroyCryptoKeyVersion\x123.google.cloud.kms.v1.DestroyCryptoKeyVersionRequest\x1A%.google.cloud.kms.v1.CryptoKeyVersion\"g\xDAA\x04name\x82\xD3\xE4\x93\x02Z\"U/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:destroy:\x01*\x12\xDE\x01\x0A\x17RestoreCryptoKeyVersion\x123.google.cloud.kms.v1.RestoreCryptoKeyVersionRequest\x1A%.google.cloud.kms.v1.CryptoKeyVersion\"g\xDAA\x04name\x82\xD3\xE4\x93\x02Z\"U/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:restore:\x01*\x12\xB4\x01\x0A\x07Encrypt\x12#.google.cloud.kms.v1.EncryptRequest\x1A\$.google.cloud.kms.v1.EncryptResponse\"^\xDAA\x0Ename,plaintext\x82\xD3\xE4\x93\x02G\"B/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/**}:encrypt:\x01*\x12\xB4\x01\x0A\x07Decrypt\x12#.google.cloud.kms.v1.DecryptRequest\x1A\$.google.cloud.kms.v1.DecryptResponse\"^\xDAA\x0Fname,ciphertext\x82\xD3\xE4\x93\x02F\"A/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*}:decrypt:\x01*\x12\xC2\x01\x0A\x0ARawEncrypt\x12&.google.cloud.kms.v1.RawEncryptRequest\x1A'.google.cloud.kms.v1.RawEncryptResponse\"c\x82\xD3\xE4\x93\x02]\"X/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:rawEncrypt:\x01*\x12\xC2\x01\x0A\x0ARawDecrypt\x12&.google.cloud.kms.v1.RawDecryptRequest\x1A'.google.cloud.kms.v1.RawDecryptResponse\"c\x82\xD3\xE4\x93\x02]\"X/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:rawDecrypt:\x01*\x12\xE0\x01\x0A\x0EAsymmetricSign\x12*.google.cloud.kms.v1.AsymmetricSignRequest\x1A+.google.cloud.kms.v1.AsymmetricSignResponse\"u\xDAA\x0Bname,digest\x82\xD3\xE4\x93\x02a\"\\/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:asymmetricSign:\x01*\x12\xF0\x01\x0A\x11AsymmetricDecrypt\x12-.google.cloud.kms.v1.AsymmetricDecryptRequest\x1A..google.cloud.kms.v1.AsymmetricDecryptResponse\"|\xDAA\x0Fname,ciphertext\x82\xD3\xE4\x93\x02d\"_/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:asymmetricDecrypt:\x01*\x12\xC2\x01\x0A\x07MacSign\x12#.google.cloud.kms.v1.MacSignRequest\x1A\$.google.cloud.kms.v1.MacSignResponse\"l\xDAA\x09name,data\x82\xD3\xE4\x93\x02Z\"U/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:macSign:\x01*\x12\xCE\x01\x0A\x09MacVerify\x12%.google.cloud.kms.v1.MacVerifyRequest\x1A&.google.cloud.kms.v1.MacVerifyResponse\"r\xDAA\x0Dname,data,mac\x82\xD3\xE4\x93\x02\\\"W/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:macVerify:\x01*\x12\xC6\x01\x0A\x0BDecapsulate\x12'.google.cloud.kms.v1.DecapsulateRequest\x1A(.google.cloud.kms.v1.DecapsulateResponse\"d\x82\xD3\xE4\x93\x02^\"Y/v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:decapsulate:\x01*\x12\xE7\x01\x0A\x13GenerateRandomBytes\x12/.google.cloud.kms.v1.GenerateRandomBytesRequest\x1A0.google.cloud.kms.v1.GenerateRandomBytesResponse\"m\xDAA&location,length_bytes,protection_level\x82\xD3\xE4\x93\x02>\"9/v1/{location=projects/*/locations/*}:generateRandomBytes:\x01*\x1At\xCAA\x17cloudkms.googleapis.com\xD2AWhttps://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloudkmsB|\x0A\x17com.google.cloud.kms.v1B\x08KmsProtoP\x01Z)cloud.google.com/go/kms/apiv1/kmspb;kmspb\xAA\x02\x13Google.Cloud.Kms.V1\xCA\x02\x13Google\\Cloud\\Kms\\V1b\x06proto3"
, true);
static::$is_initialized = true;
diff --git a/Kms/samples/V1/AutokeyAdminClient/list_locations.php b/Kms/samples/V1/AutokeyAdminClient/list_locations.php
index c3afadd3f6f0..71dae78e3664 100644
--- a/Kms/samples/V1/AutokeyAdminClient/list_locations.php
+++ b/Kms/samples/V1/AutokeyAdminClient/list_locations.php
@@ -31,13 +31,22 @@
/**
* Lists information about the supported locations for this service.
-This method can be called in two ways:
-* **List all public locations:** Use the path `GET /v1/locations`.
-* **List project-visible locations:** Use the path
-`GET /v1/projects/{project_id}/locations`. This may include public
-locations as well as private or other locations specifically visible
-to the project.
+This method lists locations based on the resource scope provided in
+the [ListLocationsRequest.name] field:
+
+* **Global locations**: If `name` is empty, the method lists the
+public locations available to all projects. * **Project-specific
+locations**: If `name` follows the format
+`projects/{project}`, the method lists locations visible to that
+specific project. This includes public, private, or other
+project-specific locations enabled for the project.
+
+For gRPC and client library implementations, the resource name is
+passed as the `name` field. For direct service calls, the resource
+name is
+incorporated into the request path based on the specific service
+implementation and version.
*
* This sample has been automatically generated and should be regarded as a code
* template only. It will require modifications to work:
diff --git a/Kms/samples/V1/AutokeyClient/list_locations.php b/Kms/samples/V1/AutokeyClient/list_locations.php
index a23797a05c14..eff05d25605b 100644
--- a/Kms/samples/V1/AutokeyClient/list_locations.php
+++ b/Kms/samples/V1/AutokeyClient/list_locations.php
@@ -31,13 +31,22 @@
/**
* Lists information about the supported locations for this service.
-This method can be called in two ways:
-* **List all public locations:** Use the path `GET /v1/locations`.
-* **List project-visible locations:** Use the path
-`GET /v1/projects/{project_id}/locations`. This may include public
-locations as well as private or other locations specifically visible
-to the project.
+This method lists locations based on the resource scope provided in
+the [ListLocationsRequest.name] field:
+
+* **Global locations**: If `name` is empty, the method lists the
+public locations available to all projects. * **Project-specific
+locations**: If `name` follows the format
+`projects/{project}`, the method lists locations visible to that
+specific project. This includes public, private, or other
+project-specific locations enabled for the project.
+
+For gRPC and client library implementations, the resource name is
+passed as the `name` field. For direct service calls, the resource
+name is
+incorporated into the request path based on the specific service
+implementation and version.
*
* This sample has been automatically generated and should be regarded as a code
* template only. It will require modifications to work:
diff --git a/Kms/samples/V1/EkmServiceClient/list_locations.php b/Kms/samples/V1/EkmServiceClient/list_locations.php
index 051ff253a374..b3cd349be1c8 100644
--- a/Kms/samples/V1/EkmServiceClient/list_locations.php
+++ b/Kms/samples/V1/EkmServiceClient/list_locations.php
@@ -31,13 +31,22 @@
/**
* Lists information about the supported locations for this service.
-This method can be called in two ways:
-* **List all public locations:** Use the path `GET /v1/locations`.
-* **List project-visible locations:** Use the path
-`GET /v1/projects/{project_id}/locations`. This may include public
-locations as well as private or other locations specifically visible
-to the project.
+This method lists locations based on the resource scope provided in
+the [ListLocationsRequest.name] field:
+
+* **Global locations**: If `name` is empty, the method lists the
+public locations available to all projects. * **Project-specific
+locations**: If `name` follows the format
+`projects/{project}`, the method lists locations visible to that
+specific project. This includes public, private, or other
+project-specific locations enabled for the project.
+
+For gRPC and client library implementations, the resource name is
+passed as the `name` field. For direct service calls, the resource
+name is
+incorporated into the request path based on the specific service
+implementation and version.
*
* This sample has been automatically generated and should be regarded as a code
* template only. It will require modifications to work:
diff --git a/Kms/samples/V1/HsmManagementClient/list_locations.php b/Kms/samples/V1/HsmManagementClient/list_locations.php
index 44e25ec558c7..3af61f92a7ec 100644
--- a/Kms/samples/V1/HsmManagementClient/list_locations.php
+++ b/Kms/samples/V1/HsmManagementClient/list_locations.php
@@ -31,13 +31,22 @@
/**
* Lists information about the supported locations for this service.
-This method can be called in two ways:
-* **List all public locations:** Use the path `GET /v1/locations`.
-* **List project-visible locations:** Use the path
-`GET /v1/projects/{project_id}/locations`. This may include public
-locations as well as private or other locations specifically visible
-to the project.
+This method lists locations based on the resource scope provided in
+the [ListLocationsRequest.name] field:
+
+* **Global locations**: If `name` is empty, the method lists the
+public locations available to all projects. * **Project-specific
+locations**: If `name` follows the format
+`projects/{project}`, the method lists locations visible to that
+specific project. This includes public, private, or other
+project-specific locations enabled for the project.
+
+For gRPC and client library implementations, the resource name is
+passed as the `name` field. For direct service calls, the resource
+name is
+incorporated into the request path based on the specific service
+implementation and version.
*
* This sample has been automatically generated and should be regarded as a code
* template only. It will require modifications to work:
diff --git a/Kms/samples/V1/KeyManagementServiceClient/list_locations.php b/Kms/samples/V1/KeyManagementServiceClient/list_locations.php
index af2e282832f0..893f6304d42c 100644
--- a/Kms/samples/V1/KeyManagementServiceClient/list_locations.php
+++ b/Kms/samples/V1/KeyManagementServiceClient/list_locations.php
@@ -31,13 +31,22 @@
/**
* Lists information about the supported locations for this service.
-This method can be called in two ways:
-* **List all public locations:** Use the path `GET /v1/locations`.
-* **List project-visible locations:** Use the path
-`GET /v1/projects/{project_id}/locations`. This may include public
-locations as well as private or other locations specifically visible
-to the project.
+This method lists locations based on the resource scope provided in
+the [ListLocationsRequest.name] field:
+
+* **Global locations**: If `name` is empty, the method lists the
+public locations available to all projects. * **Project-specific
+locations**: If `name` follows the format
+`projects/{project}`, the method lists locations visible to that
+specific project. This includes public, private, or other
+project-specific locations enabled for the project.
+
+For gRPC and client library implementations, the resource name is
+passed as the `name` field. For direct service calls, the resource
+name is
+incorporated into the request path based on the specific service
+implementation and version.
*
* This sample has been automatically generated and should be regarded as a code
* template only. It will require modifications to work:
diff --git a/Kms/src/V1/Client/AutokeyAdminClient.php b/Kms/src/V1/Client/AutokeyAdminClient.php
index 179e4ddc825d..166661fef3a2 100644
--- a/Kms/src/V1/Client/AutokeyAdminClient.php
+++ b/Kms/src/V1/Client/AutokeyAdminClient.php
@@ -416,13 +416,22 @@ public function getLocation(GetLocationRequest $request, array $callOptions = []
/**
* Lists information about the supported locations for this service.
- This method can be called in two ways:
- * **List all public locations:** Use the path `GET /v1/locations`.
- * **List project-visible locations:** Use the path
- `GET /v1/projects/{project_id}/locations`. This may include public
- locations as well as private or other locations specifically visible
- to the project.
+ This method lists locations based on the resource scope provided in
+ the [ListLocationsRequest.name] field:
+
+ * **Global locations**: If `name` is empty, the method lists the
+ public locations available to all projects. * **Project-specific
+ locations**: If `name` follows the format
+ `projects/{project}`, the method lists locations visible to that
+ specific project. This includes public, private, or other
+ project-specific locations enabled for the project.
+
+ For gRPC and client library implementations, the resource name is
+ passed as the `name` field. For direct service calls, the resource
+ name is
+ incorporated into the request path based on the specific service
+ implementation and version.
*
* The async variant is {@see AutokeyAdminClient::listLocationsAsync()} .
*
diff --git a/Kms/src/V1/Client/AutokeyClient.php b/Kms/src/V1/Client/AutokeyClient.php
index b706617006b0..85742f8d6c3e 100644
--- a/Kms/src/V1/Client/AutokeyClient.php
+++ b/Kms/src/V1/Client/AutokeyClient.php
@@ -469,13 +469,22 @@ public function getLocation(GetLocationRequest $request, array $callOptions = []
/**
* Lists information about the supported locations for this service.
- This method can be called in two ways:
- * **List all public locations:** Use the path `GET /v1/locations`.
- * **List project-visible locations:** Use the path
- `GET /v1/projects/{project_id}/locations`. This may include public
- locations as well as private or other locations specifically visible
- to the project.
+ This method lists locations based on the resource scope provided in
+ the [ListLocationsRequest.name] field:
+
+ * **Global locations**: If `name` is empty, the method lists the
+ public locations available to all projects. * **Project-specific
+ locations**: If `name` follows the format
+ `projects/{project}`, the method lists locations visible to that
+ specific project. This includes public, private, or other
+ project-specific locations enabled for the project.
+
+ For gRPC and client library implementations, the resource name is
+ passed as the `name` field. For direct service calls, the resource
+ name is
+ incorporated into the request path based on the specific service
+ implementation and version.
*
* The async variant is {@see AutokeyClient::listLocationsAsync()} .
*
diff --git a/Kms/src/V1/Client/EkmServiceClient.php b/Kms/src/V1/Client/EkmServiceClient.php
index 254627f4dbc5..b0e5cd6167da 100644
--- a/Kms/src/V1/Client/EkmServiceClient.php
+++ b/Kms/src/V1/Client/EkmServiceClient.php
@@ -538,13 +538,22 @@ public function getLocation(GetLocationRequest $request, array $callOptions = []
/**
* Lists information about the supported locations for this service.
- This method can be called in two ways:
- * **List all public locations:** Use the path `GET /v1/locations`.
- * **List project-visible locations:** Use the path
- `GET /v1/projects/{project_id}/locations`. This may include public
- locations as well as private or other locations specifically visible
- to the project.
+ This method lists locations based on the resource scope provided in
+ the [ListLocationsRequest.name] field:
+
+ * **Global locations**: If `name` is empty, the method lists the
+ public locations available to all projects. * **Project-specific
+ locations**: If `name` follows the format
+ `projects/{project}`, the method lists locations visible to that
+ specific project. This includes public, private, or other
+ project-specific locations enabled for the project.
+
+ For gRPC and client library implementations, the resource name is
+ passed as the `name` field. For direct service calls, the resource
+ name is
+ incorporated into the request path based on the specific service
+ implementation and version.
*
* The async variant is {@see EkmServiceClient::listLocationsAsync()} .
*
diff --git a/Kms/src/V1/Client/HsmManagementClient.php b/Kms/src/V1/Client/HsmManagementClient.php
index ef0643373d50..3fe859837392 100644
--- a/Kms/src/V1/Client/HsmManagementClient.php
+++ b/Kms/src/V1/Client/HsmManagementClient.php
@@ -679,13 +679,22 @@ public function getLocation(GetLocationRequest $request, array $callOptions = []
/**
* Lists information about the supported locations for this service.
- This method can be called in two ways:
- * **List all public locations:** Use the path `GET /v1/locations`.
- * **List project-visible locations:** Use the path
- `GET /v1/projects/{project_id}/locations`. This may include public
- locations as well as private or other locations specifically visible
- to the project.
+ This method lists locations based on the resource scope provided in
+ the [ListLocationsRequest.name] field:
+
+ * **Global locations**: If `name` is empty, the method lists the
+ public locations available to all projects. * **Project-specific
+ locations**: If `name` follows the format
+ `projects/{project}`, the method lists locations visible to that
+ specific project. This includes public, private, or other
+ project-specific locations enabled for the project.
+
+ For gRPC and client library implementations, the resource name is
+ passed as the `name` field. For direct service calls, the resource
+ name is
+ incorporated into the request path based on the specific service
+ implementation and version.
*
* The async variant is {@see HsmManagementClient::listLocationsAsync()} .
*
diff --git a/Kms/src/V1/Client/KeyManagementServiceClient.php b/Kms/src/V1/Client/KeyManagementServiceClient.php
index 661c4d2b899a..fe1ff86c90cf 100644
--- a/Kms/src/V1/Client/KeyManagementServiceClient.php
+++ b/Kms/src/V1/Client/KeyManagementServiceClient.php
@@ -1543,13 +1543,22 @@ public function getLocation(GetLocationRequest $request, array $callOptions = []
/**
* Lists information about the supported locations for this service.
- This method can be called in two ways:
- * **List all public locations:** Use the path `GET /v1/locations`.
- * **List project-visible locations:** Use the path
- `GET /v1/projects/{project_id}/locations`. This may include public
- locations as well as private or other locations specifically visible
- to the project.
+ This method lists locations based on the resource scope provided in
+ the [ListLocationsRequest.name] field:
+
+ * **Global locations**: If `name` is empty, the method lists the
+ public locations available to all projects. * **Project-specific
+ locations**: If `name` follows the format
+ `projects/{project}`, the method lists locations visible to that
+ specific project. This includes public, private, or other
+ project-specific locations enabled for the project.
+
+ For gRPC and client library implementations, the resource name is
+ passed as the `name` field. For direct service calls, the resource
+ name is
+ incorporated into the request path based on the specific service
+ implementation and version.
*
* The async variant is {@see KeyManagementServiceClient::listLocationsAsync()} .
*
diff --git a/Kms/src/V1/CryptoKey.php b/Kms/src/V1/CryptoKey.php
index 4d27df16e3cc..fd83fa690370 100644
--- a/Kms/src/V1/CryptoKey.php
+++ b/Kms/src/V1/CryptoKey.php
@@ -138,6 +138,10 @@ class CryptoKey extends \Google\Protobuf\Internal\Message
* justification codes.
* https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes
* By default, this field is absent, and all justification codes are allowed.
+ * If the
+ * `key_access_justifications_policy.allowed_access_reasons`
+ * is empty (zero allowed justification code), all encrypt, decrypt, and sign
+ * operations will fail.
*
* Generated from protobuf field .google.cloud.kms.v1.KeyAccessJustificationsPolicy key_access_justifications_policy = 17 [(.google.api.field_behavior) = OPTIONAL];
*/
@@ -240,6 +244,10 @@ class CryptoKey extends \Google\Protobuf\Internal\Message
* justification codes.
* https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes
* By default, this field is absent, and all justification codes are allowed.
+ * If the
+ * `key_access_justifications_policy.allowed_access_reasons`
+ * is empty (zero allowed justification code), all encrypt, decrypt, and sign
+ * operations will fail.
* }
*/
public function __construct($data = NULL) {
@@ -715,6 +723,10 @@ public function setCryptoKeyBackend($var)
* justification codes.
* https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes
* By default, this field is absent, and all justification codes are allowed.
+ * If the
+ * `key_access_justifications_policy.allowed_access_reasons`
+ * is empty (zero allowed justification code), all encrypt, decrypt, and sign
+ * operations will fail.
*
* Generated from protobuf field .google.cloud.kms.v1.KeyAccessJustificationsPolicy key_access_justifications_policy = 17 [(.google.api.field_behavior) = OPTIONAL];
* @return \Google\Cloud\Kms\V1\KeyAccessJustificationsPolicy|null
@@ -743,6 +755,10 @@ public function clearKeyAccessJustificationsPolicy()
* justification codes.
* https://cloud.google.com/assured-workloads/key-access-justifications/docs/justification-codes
* By default, this field is absent, and all justification codes are allowed.
+ * If the
+ * `key_access_justifications_policy.allowed_access_reasons`
+ * is empty (zero allowed justification code), all encrypt, decrypt, and sign
+ * operations will fail.
*
* Generated from protobuf field .google.cloud.kms.v1.KeyAccessJustificationsPolicy key_access_justifications_policy = 17 [(.google.api.field_behavior) = OPTIONAL];
* @param \Google\Cloud\Kms\V1\KeyAccessJustificationsPolicy $var
diff --git a/Kms/src/V1/Digest.php b/Kms/src/V1/Digest.php
index c6151b09cf02..d6bc5bb8de65 100644
--- a/Kms/src/V1/Digest.php
+++ b/Kms/src/V1/Digest.php
@@ -29,6 +29,11 @@ class Digest extends \Google\Protobuf\Internal\Message
* A message digest produced with the SHA-384 algorithm.
* @type string $sha512
* A message digest produced with the SHA-512 algorithm.
+ * @type string $external_mu
+ * A message digest produced with SHAKE-256, to be used with ML-DSA
+ * external-μ algorithms only. See "message representative" note in
+ * section 6.2, algorithm 7 of the FIPS-204 standard:
+ * https://doi.org/10.6028/nist.fips.204
* }
*/
public function __construct($data = NULL) {
@@ -129,6 +134,43 @@ public function setSha512($var)
return $this;
}
+ /**
+ * A message digest produced with SHAKE-256, to be used with ML-DSA
+ * external-μ algorithms only. See "message representative" note in
+ * section 6.2, algorithm 7 of the FIPS-204 standard:
+ * https://doi.org/10.6028/nist.fips.204
+ *
+ * Generated from protobuf field bytes external_mu = 4;
+ * @return string
+ */
+ public function getExternalMu()
+ {
+ return $this->readOneof(4);
+ }
+
+ public function hasExternalMu()
+ {
+ return $this->hasOneof(4);
+ }
+
+ /**
+ * A message digest produced with SHAKE-256, to be used with ML-DSA
+ * external-μ algorithms only. See "message representative" note in
+ * section 6.2, algorithm 7 of the FIPS-204 standard:
+ * https://doi.org/10.6028/nist.fips.204
+ *
+ * Generated from protobuf field bytes external_mu = 4;
+ * @param string $var
+ * @return $this
+ */
+ public function setExternalMu($var)
+ {
+ GPBUtil::checkString($var, False);
+ $this->writeOneof(4, $var);
+
+ return $this;
+ }
+
/**
* @return string
*/
diff --git a/Kms/src/V1/KeyAccessJustificationsPolicy.php b/Kms/src/V1/KeyAccessJustificationsPolicy.php
index 7be640d73978..e5340b3fc78e 100644
--- a/Kms/src/V1/KeyAccessJustificationsPolicy.php
+++ b/Kms/src/V1/KeyAccessJustificationsPolicy.php
@@ -13,7 +13,9 @@
* [KeyAccessJustificationsPolicy][google.cloud.kms.v1.KeyAccessJustificationsPolicy]
* specifies zero or more allowed
* [AccessReason][google.cloud.kms.v1.AccessReason] values for encrypt, decrypt,
- * and sign operations on a [CryptoKey][google.cloud.kms.v1.CryptoKey].
+ * and sign operations on a [CryptoKey][google.cloud.kms.v1.CryptoKey] or
+ * [KeyAccessJustificationsPolicyConfig][google.cloud.kms.v1.KeyAccessJustificationsPolicyConfig]
+ * (the default Key Access Justifications policy).
*
* Generated from protobuf message google.cloud.kms.v1.KeyAccessJustificationsPolicy
*/
@@ -21,10 +23,12 @@ class KeyAccessJustificationsPolicy extends \Google\Protobuf\Internal\Message
{
/**
* The list of allowed reasons for access to a
- * [CryptoKey][google.cloud.kms.v1.CryptoKey]. Zero allowed access reasons
- * means all encrypt, decrypt, and sign operations for the
- * [CryptoKey][google.cloud.kms.v1.CryptoKey] associated with this policy will
- * fail.
+ * [CryptoKey][google.cloud.kms.v1.CryptoKey]. Note that empty
+ * allowed_access_reasons has a different meaning depending on where this
+ * message appears. If this is under
+ * [KeyAccessJustificationsPolicyConfig][google.cloud.kms.v1.KeyAccessJustificationsPolicyConfig],
+ * it means allow-all. If this is under
+ * [CryptoKey][google.cloud.kms.v1.CryptoKey], it means deny-all.
*
* Generated from protobuf field repeated .google.cloud.kms.v1.AccessReason allowed_access_reasons = 1;
*/
@@ -38,10 +42,12 @@ class KeyAccessJustificationsPolicy extends \Google\Protobuf\Internal\Message
*
* @type int[] $allowed_access_reasons
* The list of allowed reasons for access to a
- * [CryptoKey][google.cloud.kms.v1.CryptoKey]. Zero allowed access reasons
- * means all encrypt, decrypt, and sign operations for the
- * [CryptoKey][google.cloud.kms.v1.CryptoKey] associated with this policy will
- * fail.
+ * [CryptoKey][google.cloud.kms.v1.CryptoKey]. Note that empty
+ * allowed_access_reasons has a different meaning depending on where this
+ * message appears. If this is under
+ * [KeyAccessJustificationsPolicyConfig][google.cloud.kms.v1.KeyAccessJustificationsPolicyConfig],
+ * it means allow-all. If this is under
+ * [CryptoKey][google.cloud.kms.v1.CryptoKey], it means deny-all.
* }
*/
public function __construct($data = NULL) {
@@ -51,10 +57,12 @@ public function __construct($data = NULL) {
/**
* The list of allowed reasons for access to a
- * [CryptoKey][google.cloud.kms.v1.CryptoKey]. Zero allowed access reasons
- * means all encrypt, decrypt, and sign operations for the
- * [CryptoKey][google.cloud.kms.v1.CryptoKey] associated with this policy will
- * fail.
+ * [CryptoKey][google.cloud.kms.v1.CryptoKey]. Note that empty
+ * allowed_access_reasons has a different meaning depending on where this
+ * message appears. If this is under
+ * [KeyAccessJustificationsPolicyConfig][google.cloud.kms.v1.KeyAccessJustificationsPolicyConfig],
+ * it means allow-all. If this is under
+ * [CryptoKey][google.cloud.kms.v1.CryptoKey], it means deny-all.
*
* Generated from protobuf field repeated .google.cloud.kms.v1.AccessReason allowed_access_reasons = 1;
* @return RepeatedField
@@ -66,10 +74,12 @@ public function getAllowedAccessReasons()
/**
* The list of allowed reasons for access to a
- * [CryptoKey][google.cloud.kms.v1.CryptoKey]. Zero allowed access reasons
- * means all encrypt, decrypt, and sign operations for the
- * [CryptoKey][google.cloud.kms.v1.CryptoKey] associated with this policy will
- * fail.
+ * [CryptoKey][google.cloud.kms.v1.CryptoKey]. Note that empty
+ * allowed_access_reasons has a different meaning depending on where this
+ * message appears. If this is under
+ * [KeyAccessJustificationsPolicyConfig][google.cloud.kms.v1.KeyAccessJustificationsPolicyConfig],
+ * it means allow-all. If this is under
+ * [CryptoKey][google.cloud.kms.v1.CryptoKey], it means deny-all.
*
* Generated from protobuf field repeated .google.cloud.kms.v1.AccessReason allowed_access_reasons = 1;
* @param int[] $var
diff --git a/Kms/src/V1/SingleTenantHsmInstance.php b/Kms/src/V1/SingleTenantHsmInstance.php
index c8aa2addd8c7..16fade5afc7a 100644
--- a/Kms/src/V1/SingleTenantHsmInstance.php
+++ b/Kms/src/V1/SingleTenantHsmInstance.php
@@ -62,7 +62,7 @@ class SingleTenantHsmInstance extends \Google\Protobuf\Internal\Message
/**
* Output only. The system-defined duration that an instance can remain
* unrefreshed until it is automatically disabled. This will have a value of
- * 120 days.
+ * 730 days.
*
* Generated from protobuf field .google.protobuf.Duration unrefreshed_duration_until_disable = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
*/
@@ -80,6 +80,15 @@ class SingleTenantHsmInstance extends \Google\Protobuf\Internal\Message
* Generated from protobuf field .google.protobuf.Timestamp disable_time = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
*/
protected $disable_time = null;
+ /**
+ * Optional. Immutable. Indicates whether key portability is enabled for the
+ * [SingleTenantHsmInstance][google.cloud.kms.v1.SingleTenantHsmInstance].
+ * This can only be set at creation time. Key portability features are
+ * disabled by default and not yet available in GA.
+ *
+ * Generated from protobuf field bool key_portability_enabled = 8 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_behavior) = IMMUTABLE];
+ */
+ protected $key_portability_enabled = false;
/**
* Constructor.
@@ -108,7 +117,7 @@ class SingleTenantHsmInstance extends \Google\Protobuf\Internal\Message
* @type \Google\Protobuf\Duration $unrefreshed_duration_until_disable
* Output only. The system-defined duration that an instance can remain
* unrefreshed until it is automatically disabled. This will have a value of
- * 120 days.
+ * 730 days.
* @type \Google\Protobuf\Timestamp $disable_time
* Output only. The time at which the instance will be automatically disabled
* if not refreshed. This field is updated upon creation and after each
@@ -118,6 +127,11 @@ class SingleTenantHsmInstance extends \Google\Protobuf\Internal\Message
* before this time otherwise the
* [SingleTenantHsmInstance][google.cloud.kms.v1.SingleTenantHsmInstance] will
* become disabled.
+ * @type bool $key_portability_enabled
+ * Optional. Immutable. Indicates whether key portability is enabled for the
+ * [SingleTenantHsmInstance][google.cloud.kms.v1.SingleTenantHsmInstance].
+ * This can only be set at creation time. Key portability features are
+ * disabled by default and not yet available in GA.
* }
*/
public function __construct($data = NULL) {
@@ -304,7 +318,7 @@ public function setDeleteTime($var)
/**
* Output only. The system-defined duration that an instance can remain
* unrefreshed until it is automatically disabled. This will have a value of
- * 120 days.
+ * 730 days.
*
* Generated from protobuf field .google.protobuf.Duration unrefreshed_duration_until_disable = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
* @return \Google\Protobuf\Duration|null
@@ -327,7 +341,7 @@ public function clearUnrefreshedDurationUntilDisable()
/**
* Output only. The system-defined duration that an instance can remain
* unrefreshed until it is automatically disabled. This will have a value of
- * 120 days.
+ * 730 days.
*
* Generated from protobuf field .google.protobuf.Duration unrefreshed_duration_until_disable = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
* @param \Google\Protobuf\Duration $var
@@ -391,5 +405,37 @@ public function setDisableTime($var)
return $this;
}
+ /**
+ * Optional. Immutable. Indicates whether key portability is enabled for the
+ * [SingleTenantHsmInstance][google.cloud.kms.v1.SingleTenantHsmInstance].
+ * This can only be set at creation time. Key portability features are
+ * disabled by default and not yet available in GA.
+ *
+ * Generated from protobuf field bool key_portability_enabled = 8 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_behavior) = IMMUTABLE];
+ * @return bool
+ */
+ public function getKeyPortabilityEnabled()
+ {
+ return $this->key_portability_enabled;
+ }
+
+ /**
+ * Optional. Immutable. Indicates whether key portability is enabled for the
+ * [SingleTenantHsmInstance][google.cloud.kms.v1.SingleTenantHsmInstance].
+ * This can only be set at creation time. Key portability features are
+ * disabled by default and not yet available in GA.
+ *
+ * Generated from protobuf field bool key_portability_enabled = 8 [(.google.api.field_behavior) = OPTIONAL, (.google.api.field_behavior) = IMMUTABLE];
+ * @param bool $var
+ * @return $this
+ */
+ public function setKeyPortabilityEnabled($var)
+ {
+ GPBUtil::checkBool($var);
+ $this->key_portability_enabled = $var;
+
+ return $this;
+ }
+
}
diff --git a/Kms/tests/Unit/V1/Client/HsmManagementClientTest.php b/Kms/tests/Unit/V1/Client/HsmManagementClientTest.php
index 2392fc726724..d9e32a1a85dd 100644
--- a/Kms/tests/Unit/V1/Client/HsmManagementClientTest.php
+++ b/Kms/tests/Unit/V1/Client/HsmManagementClientTest.php
@@ -198,8 +198,10 @@ public function createSingleTenantHsmInstanceTest()
$incompleteOperation->setDone(false);
$transport->addResponse($incompleteOperation);
$name = 'name3373707';
+ $keyPortabilityEnabled = false;
$expectedResponse = new SingleTenantHsmInstance();
$expectedResponse->setName($name);
+ $expectedResponse->setKeyPortabilityEnabled($keyPortabilityEnabled);
$anyResponse = new Any();
$anyResponse->setValue($expectedResponse->serializeToString());
$completeOperation = new Operation();
@@ -678,8 +680,10 @@ public function getSingleTenantHsmInstanceTest()
$this->assertTrue($transport->isExhausted());
// Mock response
$name2 = 'name2-1052831874';
+ $keyPortabilityEnabled = false;
$expectedResponse = new SingleTenantHsmInstance();
$expectedResponse->setName($name2);
+ $expectedResponse->setKeyPortabilityEnabled($keyPortabilityEnabled);
$transport->addResponse($expectedResponse);
// Mock request
$formattedName = $gapicClient->singleTenantHsmInstanceName(