google-apis-cloudkms_v1 0.65.0 → 0.66.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,6 +22,66 @@ module Google
22
22
  module Apis
23
23
  module CloudkmsV1
24
24
 
25
+ # Add a quorum member to the SingleTenantHsmInstance. This will increase the
26
+ # total_approver_count by 1. The SingleTenantHsmInstance must be in the ACTIVE
27
+ # state to perform this operation.
28
+ class AddQuorumMember
29
+ include Google::Apis::Core::Hashable
30
+
31
+ # Required. The public key associated with the 2FA key for the new quorum member
32
+ # to add. Public keys must be associated with RSA 2048 keys.
33
+ # Corresponds to the JSON property `twoFactorPublicKeyPem`
34
+ # @return [String]
35
+ attr_accessor :two_factor_public_key_pem
36
+
37
+ def initialize(**args)
38
+ update!(**args)
39
+ end
40
+
41
+ # Update properties of this object
42
+ def update!(**args)
43
+ @two_factor_public_key_pem = args[:two_factor_public_key_pem] if args.key?(:two_factor_public_key_pem)
44
+ end
45
+ end
46
+
47
+ # Request message for HsmManagement.ApproveSingleTenantHsmInstanceProposal.
48
+ class ApproveSingleTenantHsmInstanceProposalRequest
49
+ include Google::Apis::Core::Hashable
50
+
51
+ # The reply to QuorumParameters for approving the proposal.
52
+ # Corresponds to the JSON property `quorumReply`
53
+ # @return [Google::Apis::CloudkmsV1::QuorumReply]
54
+ attr_accessor :quorum_reply
55
+
56
+ # The reply to RequiredActionQuorumParameters for approving the proposal.
57
+ # Corresponds to the JSON property `requiredActionQuorumReply`
58
+ # @return [Google::Apis::CloudkmsV1::RequiredActionQuorumReply]
59
+ attr_accessor :required_action_quorum_reply
60
+
61
+ def initialize(**args)
62
+ update!(**args)
63
+ end
64
+
65
+ # Update properties of this object
66
+ def update!(**args)
67
+ @quorum_reply = args[:quorum_reply] if args.key?(:quorum_reply)
68
+ @required_action_quorum_reply = args[:required_action_quorum_reply] if args.key?(:required_action_quorum_reply)
69
+ end
70
+ end
71
+
72
+ # Response message for HsmManagement.ApproveSingleTenantHsmInstanceProposal.
73
+ class ApproveSingleTenantHsmInstanceProposalResponse
74
+ include Google::Apis::Core::Hashable
75
+
76
+ def initialize(**args)
77
+ update!(**args)
78
+ end
79
+
80
+ # Update properties of this object
81
+ def update!(**args)
82
+ end
83
+ end
84
+
25
85
  # Request message for KeyManagementService.AsymmetricDecrypt.
26
86
  class AsymmetricDecryptRequest
27
87
  include Google::Apis::Core::Hashable
@@ -577,6 +637,61 @@ module Google
577
637
  end
578
638
  end
579
639
 
640
+ # A challenge to be signed by a 2FA key.
641
+ class Challenge
642
+ include Google::Apis::Core::Hashable
643
+
644
+ # Output only. The challenge to be signed by the 2FA key indicated by the public
645
+ # key.
646
+ # Corresponds to the JSON property `challenge`
647
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
648
+ # @return [String]
649
+ attr_accessor :challenge
650
+
651
+ # Output only. The public key associated with the 2FA key that should sign the
652
+ # challenge.
653
+ # Corresponds to the JSON property `publicKeyPem`
654
+ # @return [String]
655
+ attr_accessor :public_key_pem
656
+
657
+ def initialize(**args)
658
+ update!(**args)
659
+ end
660
+
661
+ # Update properties of this object
662
+ def update!(**args)
663
+ @challenge = args[:challenge] if args.key?(:challenge)
664
+ @public_key_pem = args[:public_key_pem] if args.key?(:public_key_pem)
665
+ end
666
+ end
667
+
668
+ # A reply to a challenge signed by a 2FA key.
669
+ class ChallengeReply
670
+ include Google::Apis::Core::Hashable
671
+
672
+ # Required. The public key associated with the 2FA key.
673
+ # Corresponds to the JSON property `publicKeyPem`
674
+ # @return [String]
675
+ attr_accessor :public_key_pem
676
+
677
+ # Required. The signed challenge associated with the 2FA key. The signature must
678
+ # be RSASSA-PKCS1 v1.5 with a SHA256 digest.
679
+ # Corresponds to the JSON property `signedChallenge`
680
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
681
+ # @return [String]
682
+ attr_accessor :signed_challenge
683
+
684
+ def initialize(**args)
685
+ update!(**args)
686
+ end
687
+
688
+ # Update properties of this object
689
+ def update!(**args)
690
+ @public_key_pem = args[:public_key_pem] if args.key?(:public_key_pem)
691
+ @signed_challenge = args[:signed_challenge] if args.key?(:signed_challenge)
692
+ end
693
+ end
694
+
580
695
  # Data with integrity verification field.
581
696
  class ChecksummedData
582
697
  include Google::Apis::Core::Hashable
@@ -1101,6 +1216,22 @@ module Google
1101
1216
  end
1102
1217
  end
1103
1218
 
1219
+ # Delete the SingleTenantHsmInstance. Deleting a SingleTenantHsmInstance will
1220
+ # make all CryptoKeys attached to the SingleTenantHsmInstance unusable. The
1221
+ # SingleTenantHsmInstance must not be in the DELETING or DELETED state to
1222
+ # perform this operation.
1223
+ class DeleteSingleTenantHsmInstance
1224
+ include Google::Apis::Core::Hashable
1225
+
1226
+ def initialize(**args)
1227
+ update!(**args)
1228
+ end
1229
+
1230
+ # Update properties of this object
1231
+ def update!(**args)
1232
+ end
1233
+ end
1234
+
1104
1235
  # Request message for KeyManagementService.DestroyCryptoKeyVersion.
1105
1236
  class DestroyCryptoKeyVersionRequest
1106
1237
  include Google::Apis::Core::Hashable
@@ -1148,6 +1279,20 @@ module Google
1148
1279
  end
1149
1280
  end
1150
1281
 
1282
+ # Disable the SingleTenantHsmInstance. The SingleTenantHsmInstance must be in
1283
+ # the ACTIVE state to perform this operation.
1284
+ class DisableSingleTenantHsmInstance
1285
+ include Google::Apis::Core::Hashable
1286
+
1287
+ def initialize(**args)
1288
+ update!(**args)
1289
+ end
1290
+
1291
+ # Update properties of this object
1292
+ def update!(**args)
1293
+ end
1294
+ end
1295
+
1151
1296
  # An EkmConfig is a singleton resource that represents configuration parameters
1152
1297
  # that apply to all CryptoKeys and CryptoKeyVersions with a ProtectionLevel of
1153
1298
  # EXTERNAL_VPC in a given project and location.
@@ -1234,6 +1379,36 @@ module Google
1234
1379
  end
1235
1380
  end
1236
1381
 
1382
+ # A generic empty message that you can re-use to avoid defining duplicated empty
1383
+ # messages in your APIs. A typical example is to use it as the request or the
1384
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
1385
+ # protobuf.Empty) returns (google.protobuf.Empty); `
1386
+ class Empty
1387
+ include Google::Apis::Core::Hashable
1388
+
1389
+ def initialize(**args)
1390
+ update!(**args)
1391
+ end
1392
+
1393
+ # Update properties of this object
1394
+ def update!(**args)
1395
+ end
1396
+ end
1397
+
1398
+ # Enable the SingleTenantHsmInstance. The SingleTenantHsmInstance must be in the
1399
+ # DISABLED state to perform this operation.
1400
+ class EnableSingleTenantHsmInstance
1401
+ include Google::Apis::Core::Hashable
1402
+
1403
+ def initialize(**args)
1404
+ update!(**args)
1405
+ end
1406
+
1407
+ # Update properties of this object
1408
+ def update!(**args)
1409
+ end
1410
+ end
1411
+
1237
1412
  # Request message for KeyManagementService.Encrypt.
1238
1413
  class EncryptRequest
1239
1414
  include Google::Apis::Core::Hashable
@@ -1377,6 +1552,19 @@ module Google
1377
1552
  end
1378
1553
  end
1379
1554
 
1555
+ # Request message for HsmManagement.ExecuteSingleTenantHsmInstanceProposal.
1556
+ class ExecuteSingleTenantHsmInstanceProposalRequest
1557
+ include Google::Apis::Core::Hashable
1558
+
1559
+ def initialize(**args)
1560
+ update!(**args)
1561
+ end
1562
+
1563
+ # Update properties of this object
1564
+ def update!(**args)
1565
+ end
1566
+ end
1567
+
1380
1568
  # Represents a textual expression in the Common Expression Language (CEL) syntax.
1381
1569
  # CEL is a C-like expression language. The syntax and semantics of CEL are
1382
1570
  # documented at https://github.com/google/cel-spec. Example (Comparison): title:
@@ -2094,6 +2282,76 @@ module Google
2094
2282
  end
2095
2283
  end
2096
2284
 
2285
+ # Response message for HsmManagement.ListSingleTenantHsmInstanceProposals.
2286
+ class ListSingleTenantHsmInstanceProposalsResponse
2287
+ include Google::Apis::Core::Hashable
2288
+
2289
+ # A token to retrieve next page of results. Pass this value in
2290
+ # ListSingleTenantHsmInstanceProposalsRequest.page_token to retrieve the next
2291
+ # page of results.
2292
+ # Corresponds to the JSON property `nextPageToken`
2293
+ # @return [String]
2294
+ attr_accessor :next_page_token
2295
+
2296
+ # The list of SingleTenantHsmInstanceProposals.
2297
+ # Corresponds to the JSON property `singleTenantHsmInstanceProposals`
2298
+ # @return [Array<Google::Apis::CloudkmsV1::SingleTenantHsmInstanceProposal>]
2299
+ attr_accessor :single_tenant_hsm_instance_proposals
2300
+
2301
+ # The total number of SingleTenantHsmInstanceProposals that matched the query.
2302
+ # This field is not populated if ListSingleTenantHsmInstanceProposalsRequest.
2303
+ # filter is applied.
2304
+ # Corresponds to the JSON property `totalSize`
2305
+ # @return [Fixnum]
2306
+ attr_accessor :total_size
2307
+
2308
+ def initialize(**args)
2309
+ update!(**args)
2310
+ end
2311
+
2312
+ # Update properties of this object
2313
+ def update!(**args)
2314
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2315
+ @single_tenant_hsm_instance_proposals = args[:single_tenant_hsm_instance_proposals] if args.key?(:single_tenant_hsm_instance_proposals)
2316
+ @total_size = args[:total_size] if args.key?(:total_size)
2317
+ end
2318
+ end
2319
+
2320
+ # Response message for HsmManagement.ListSingleTenantHsmInstances.
2321
+ class ListSingleTenantHsmInstancesResponse
2322
+ include Google::Apis::Core::Hashable
2323
+
2324
+ # A token to retrieve next page of results. Pass this value in
2325
+ # ListSingleTenantHsmInstancesRequest.page_token to retrieve the next page of
2326
+ # results.
2327
+ # Corresponds to the JSON property `nextPageToken`
2328
+ # @return [String]
2329
+ attr_accessor :next_page_token
2330
+
2331
+ # The list of SingleTenantHsmInstances.
2332
+ # Corresponds to the JSON property `singleTenantHsmInstances`
2333
+ # @return [Array<Google::Apis::CloudkmsV1::SingleTenantHsmInstance>]
2334
+ attr_accessor :single_tenant_hsm_instances
2335
+
2336
+ # The total number of SingleTenantHsmInstances that matched the query. This
2337
+ # field is not populated if ListSingleTenantHsmInstancesRequest.filter is
2338
+ # applied.
2339
+ # Corresponds to the JSON property `totalSize`
2340
+ # @return [Fixnum]
2341
+ attr_accessor :total_size
2342
+
2343
+ def initialize(**args)
2344
+ update!(**args)
2345
+ end
2346
+
2347
+ # Update properties of this object
2348
+ def update!(**args)
2349
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2350
+ @single_tenant_hsm_instances = args[:single_tenant_hsm_instances] if args.key?(:single_tenant_hsm_instances)
2351
+ @total_size = args[:total_size] if args.key?(:total_size)
2352
+ end
2353
+ end
2354
+
2097
2355
  # A resource that represents a Google Cloud location.
2098
2356
  class Location
2099
2357
  include Google::Apis::Core::Hashable
@@ -2630,6 +2888,96 @@ module Google
2630
2888
  end
2631
2889
  end
2632
2890
 
2891
+ # Configuration for M of N quorum auth.
2892
+ class QuorumAuth
2893
+ include Google::Apis::Core::Hashable
2894
+
2895
+ # Output only. The required numbers of approvers. The M value used for M of N
2896
+ # quorum auth. Must be greater than or equal to 2 and less than or equal to
2897
+ # total_approver_count - 1.
2898
+ # Corresponds to the JSON property `requiredApproverCount`
2899
+ # @return [Fixnum]
2900
+ attr_accessor :required_approver_count
2901
+
2902
+ # Required. The total number of approvers. This is the N value used for M of N
2903
+ # quorum auth. Must be greater than or equal to 3 and less than or equal to 16.
2904
+ # Corresponds to the JSON property `totalApproverCount`
2905
+ # @return [Fixnum]
2906
+ attr_accessor :total_approver_count
2907
+
2908
+ # Output only. The public keys associated with the 2FA keys for M of N quorum
2909
+ # auth.
2910
+ # Corresponds to the JSON property `twoFactorPublicKeyPems`
2911
+ # @return [Array<String>]
2912
+ attr_accessor :two_factor_public_key_pems
2913
+
2914
+ def initialize(**args)
2915
+ update!(**args)
2916
+ end
2917
+
2918
+ # Update properties of this object
2919
+ def update!(**args)
2920
+ @required_approver_count = args[:required_approver_count] if args.key?(:required_approver_count)
2921
+ @total_approver_count = args[:total_approver_count] if args.key?(:total_approver_count)
2922
+ @two_factor_public_key_pems = args[:two_factor_public_key_pems] if args.key?(:two_factor_public_key_pems)
2923
+ end
2924
+ end
2925
+
2926
+ # Parameters of quorum approval for the SingleTenantHsmInstanceProposal.
2927
+ class QuorumParameters
2928
+ include Google::Apis::Core::Hashable
2929
+
2930
+ # Output only. The public keys associated with the 2FA keys that have already
2931
+ # approved the SingleTenantHsmInstanceProposal by signing the challenge.
2932
+ # Corresponds to the JSON property `approvedTwoFactorPublicKeyPems`
2933
+ # @return [Array<String>]
2934
+ attr_accessor :approved_two_factor_public_key_pems
2935
+
2936
+ # Output only. The challenges to be signed by 2FA keys for quorum auth. M of N
2937
+ # of these challenges are required to be signed to approve the operation.
2938
+ # Corresponds to the JSON property `challenges`
2939
+ # @return [Array<Google::Apis::CloudkmsV1::Challenge>]
2940
+ attr_accessor :challenges
2941
+
2942
+ # Output only. The required numbers of approvers. This is the M value used for M
2943
+ # of N quorum auth. It is less than the number of public keys.
2944
+ # Corresponds to the JSON property `requiredApproverCount`
2945
+ # @return [Fixnum]
2946
+ attr_accessor :required_approver_count
2947
+
2948
+ def initialize(**args)
2949
+ update!(**args)
2950
+ end
2951
+
2952
+ # Update properties of this object
2953
+ def update!(**args)
2954
+ @approved_two_factor_public_key_pems = args[:approved_two_factor_public_key_pems] if args.key?(:approved_two_factor_public_key_pems)
2955
+ @challenges = args[:challenges] if args.key?(:challenges)
2956
+ @required_approver_count = args[:required_approver_count] if args.key?(:required_approver_count)
2957
+ end
2958
+ end
2959
+
2960
+ # The reply to QuorumParameters for approving the proposal.
2961
+ class QuorumReply
2962
+ include Google::Apis::Core::Hashable
2963
+
2964
+ # Required. The challenge replies to approve the proposal. Challenge replies can
2965
+ # be sent across multiple requests. The proposal will be approved when
2966
+ # required_approver_count challenge replies are provided.
2967
+ # Corresponds to the JSON property `challengeReplies`
2968
+ # @return [Array<Google::Apis::CloudkmsV1::ChallengeReply>]
2969
+ attr_accessor :challenge_replies
2970
+
2971
+ def initialize(**args)
2972
+ update!(**args)
2973
+ end
2974
+
2975
+ # Update properties of this object
2976
+ def update!(**args)
2977
+ @challenge_replies = args[:challenge_replies] if args.key?(:challenge_replies)
2978
+ end
2979
+ end
2980
+
2633
2981
  # Request message for KeyManagementService.RawDecrypt.
2634
2982
  class RawDecryptRequest
2635
2983
  include Google::Apis::Core::Hashable
@@ -3018,6 +3366,145 @@ module Google
3018
3366
  end
3019
3367
  end
3020
3368
 
3369
+ # Refreshes the SingleTenantHsmInstance. This operation must be performed
3370
+ # periodically to keep the SingleTenantHsmInstance active. This operation must
3371
+ # be performed before unrefreshed_duration_until_disable has passed. The
3372
+ # SingleTenantHsmInstance must be in the ACTIVE state to perform this operation.
3373
+ class RefreshSingleTenantHsmInstance
3374
+ include Google::Apis::Core::Hashable
3375
+
3376
+ def initialize(**args)
3377
+ update!(**args)
3378
+ end
3379
+
3380
+ # Update properties of this object
3381
+ def update!(**args)
3382
+ end
3383
+ end
3384
+
3385
+ # Register 2FA keys for the SingleTenantHsmInstance. This operation requires all
3386
+ # Challenges to be signed by 2FA keys. The SingleTenantHsmInstance must be in
3387
+ # the PENDING_TWO_FACTOR_AUTH_REGISTRATION state to perform this operation.
3388
+ class RegisterTwoFactorAuthKeys
3389
+ include Google::Apis::Core::Hashable
3390
+
3391
+ # Required. The required numbers of approvers to set for the
3392
+ # SingleTenantHsmInstance. This is the M value used for M of N quorum auth. Must
3393
+ # be greater than or equal to 2 and less than or equal to total_approver_count -
3394
+ # 1.
3395
+ # Corresponds to the JSON property `requiredApproverCount`
3396
+ # @return [Fixnum]
3397
+ attr_accessor :required_approver_count
3398
+
3399
+ # Required. The public keys associated with the 2FA keys for M of N quorum auth.
3400
+ # Public keys must be associated with RSA 2048 keys.
3401
+ # Corresponds to the JSON property `twoFactorPublicKeyPems`
3402
+ # @return [Array<String>]
3403
+ attr_accessor :two_factor_public_key_pems
3404
+
3405
+ def initialize(**args)
3406
+ update!(**args)
3407
+ end
3408
+
3409
+ # Update properties of this object
3410
+ def update!(**args)
3411
+ @required_approver_count = args[:required_approver_count] if args.key?(:required_approver_count)
3412
+ @two_factor_public_key_pems = args[:two_factor_public_key_pems] if args.key?(:two_factor_public_key_pems)
3413
+ end
3414
+ end
3415
+
3416
+ # Remove a quorum member from the SingleTenantHsmInstance. This will reduce
3417
+ # total_approver_count by 1. The SingleTenantHsmInstance must be in the ACTIVE
3418
+ # state to perform this operation.
3419
+ class RemoveQuorumMember
3420
+ include Google::Apis::Core::Hashable
3421
+
3422
+ # Required. The public key associated with the 2FA key for the quorum member to
3423
+ # remove. Public keys must be associated with RSA 2048 keys.
3424
+ # Corresponds to the JSON property `twoFactorPublicKeyPem`
3425
+ # @return [String]
3426
+ attr_accessor :two_factor_public_key_pem
3427
+
3428
+ def initialize(**args)
3429
+ update!(**args)
3430
+ end
3431
+
3432
+ # Update properties of this object
3433
+ def update!(**args)
3434
+ @two_factor_public_key_pem = args[:two_factor_public_key_pem] if args.key?(:two_factor_public_key_pem)
3435
+ end
3436
+ end
3437
+
3438
+ # Parameters for an approval that has both required challenges and a quorum.
3439
+ class RequiredActionQuorumParameters
3440
+ include Google::Apis::Core::Hashable
3441
+
3442
+ # Output only. The public keys associated with the 2FA keys that have already
3443
+ # approved the SingleTenantHsmInstanceProposal by signing the challenge.
3444
+ # Corresponds to the JSON property `approvedTwoFactorPublicKeyPems`
3445
+ # @return [Array<String>]
3446
+ attr_accessor :approved_two_factor_public_key_pems
3447
+
3448
+ # Output only. The challenges to be signed by 2FA keys for quorum auth. M of N
3449
+ # of these challenges are required to be signed to approve the operation.
3450
+ # Corresponds to the JSON property `quorumChallenges`
3451
+ # @return [Array<Google::Apis::CloudkmsV1::Challenge>]
3452
+ attr_accessor :quorum_challenges
3453
+
3454
+ # Output only. The required number of quorum approvers. This is the M value used
3455
+ # for M of N quorum auth. It is less than the number of public keys.
3456
+ # Corresponds to the JSON property `requiredApproverCount`
3457
+ # @return [Fixnum]
3458
+ attr_accessor :required_approver_count
3459
+
3460
+ # Output only. A list of specific challenges that must be signed. For some
3461
+ # operations, this will contain a single challenge.
3462
+ # Corresponds to the JSON property `requiredChallenges`
3463
+ # @return [Array<Google::Apis::CloudkmsV1::Challenge>]
3464
+ attr_accessor :required_challenges
3465
+
3466
+ def initialize(**args)
3467
+ update!(**args)
3468
+ end
3469
+
3470
+ # Update properties of this object
3471
+ def update!(**args)
3472
+ @approved_two_factor_public_key_pems = args[:approved_two_factor_public_key_pems] if args.key?(:approved_two_factor_public_key_pems)
3473
+ @quorum_challenges = args[:quorum_challenges] if args.key?(:quorum_challenges)
3474
+ @required_approver_count = args[:required_approver_count] if args.key?(:required_approver_count)
3475
+ @required_challenges = args[:required_challenges] if args.key?(:required_challenges)
3476
+ end
3477
+ end
3478
+
3479
+ # The reply to RequiredActionQuorumParameters for approving the proposal.
3480
+ class RequiredActionQuorumReply
3481
+ include Google::Apis::Core::Hashable
3482
+
3483
+ # Required. Quorum members' signed challenge replies. These can be provided
3484
+ # across multiple requests. The proposal will be approved when
3485
+ # required_approver_count quorum_challenge_replies are provided and when all
3486
+ # required_challenge_replies are provided.
3487
+ # Corresponds to the JSON property `quorumChallengeReplies`
3488
+ # @return [Array<Google::Apis::CloudkmsV1::ChallengeReply>]
3489
+ attr_accessor :quorum_challenge_replies
3490
+
3491
+ # Required. All required challenges must be signed for the proposal to be
3492
+ # approved. These can be sent across multiple requests.
3493
+ # Corresponds to the JSON property `requiredChallengeReplies`
3494
+ # @return [Array<Google::Apis::CloudkmsV1::ChallengeReply>]
3495
+ attr_accessor :required_challenge_replies
3496
+
3497
+ def initialize(**args)
3498
+ update!(**args)
3499
+ end
3500
+
3501
+ # Update properties of this object
3502
+ def update!(**args)
3503
+ @quorum_challenge_replies = args[:quorum_challenge_replies] if args.key?(:quorum_challenge_replies)
3504
+ @required_challenge_replies = args[:required_challenge_replies] if args.key?(:required_challenge_replies)
3505
+ end
3506
+ end
3507
+
3021
3508
  # Request message for KeyManagementService.RestoreCryptoKeyVersion.
3022
3509
  class RestoreCryptoKeyVersionRequest
3023
3510
  include Google::Apis::Core::Hashable
@@ -3203,6 +3690,208 @@ module Google
3203
3690
  end
3204
3691
  end
3205
3692
 
3693
+ # A SingleTenantHsmInstance represents a single-tenant HSM instance. It can be
3694
+ # used for creating CryptoKeys with a ProtectionLevel of HSM_SINGLE_TENANT, as
3695
+ # well as performing cryptographic operations using keys created within the
3696
+ # SingleTenantHsmInstance.
3697
+ class SingleTenantHsmInstance
3698
+ include Google::Apis::Core::Hashable
3699
+
3700
+ # Output only. The time at which the SingleTenantHsmInstance was created.
3701
+ # Corresponds to the JSON property `createTime`
3702
+ # @return [String]
3703
+ attr_accessor :create_time
3704
+
3705
+ # Output only. The time at which the SingleTenantHsmInstance was deleted.
3706
+ # Corresponds to the JSON property `deleteTime`
3707
+ # @return [String]
3708
+ attr_accessor :delete_time
3709
+
3710
+ # Output only. The time at which the instance will be automatically disabled if
3711
+ # not refreshed. This field is updated upon creation and after each successful
3712
+ # refresh operation and enable. A RefreshSingleTenantHsmInstance operation must
3713
+ # be made via a SingleTenantHsmInstanceProposal before this time otherwise the
3714
+ # SingleTenantHsmInstance will become disabled.
3715
+ # Corresponds to the JSON property `disableTime`
3716
+ # @return [String]
3717
+ attr_accessor :disable_time
3718
+
3719
+ # Identifier. The resource name for this SingleTenantHsmInstance in the format `
3720
+ # projects/*/locations/*/singleTenantHsmInstances/*`.
3721
+ # Corresponds to the JSON property `name`
3722
+ # @return [String]
3723
+ attr_accessor :name
3724
+
3725
+ # Configuration for M of N quorum auth.
3726
+ # Corresponds to the JSON property `quorumAuth`
3727
+ # @return [Google::Apis::CloudkmsV1::QuorumAuth]
3728
+ attr_accessor :quorum_auth
3729
+
3730
+ # Output only. The state of the SingleTenantHsmInstance.
3731
+ # Corresponds to the JSON property `state`
3732
+ # @return [String]
3733
+ attr_accessor :state
3734
+
3735
+ # Output only. The system-defined duration that an instance can remain
3736
+ # unrefreshed until it is automatically disabled. This will have a value of 120
3737
+ # days.
3738
+ # Corresponds to the JSON property `unrefreshedDurationUntilDisable`
3739
+ # @return [String]
3740
+ attr_accessor :unrefreshed_duration_until_disable
3741
+
3742
+ def initialize(**args)
3743
+ update!(**args)
3744
+ end
3745
+
3746
+ # Update properties of this object
3747
+ def update!(**args)
3748
+ @create_time = args[:create_time] if args.key?(:create_time)
3749
+ @delete_time = args[:delete_time] if args.key?(:delete_time)
3750
+ @disable_time = args[:disable_time] if args.key?(:disable_time)
3751
+ @name = args[:name] if args.key?(:name)
3752
+ @quorum_auth = args[:quorum_auth] if args.key?(:quorum_auth)
3753
+ @state = args[:state] if args.key?(:state)
3754
+ @unrefreshed_duration_until_disable = args[:unrefreshed_duration_until_disable] if args.key?(:unrefreshed_duration_until_disable)
3755
+ end
3756
+ end
3757
+
3758
+ # A SingleTenantHsmInstanceProposal represents a proposal to perform an
3759
+ # operation on a SingleTenantHsmInstance.
3760
+ class SingleTenantHsmInstanceProposal
3761
+ include Google::Apis::Core::Hashable
3762
+
3763
+ # Add a quorum member to the SingleTenantHsmInstance. This will increase the
3764
+ # total_approver_count by 1. The SingleTenantHsmInstance must be in the ACTIVE
3765
+ # state to perform this operation.
3766
+ # Corresponds to the JSON property `addQuorumMember`
3767
+ # @return [Google::Apis::CloudkmsV1::AddQuorumMember]
3768
+ attr_accessor :add_quorum_member
3769
+
3770
+ # Output only. The time at which the SingleTenantHsmInstanceProposal was created.
3771
+ # Corresponds to the JSON property `createTime`
3772
+ # @return [String]
3773
+ attr_accessor :create_time
3774
+
3775
+ # Delete the SingleTenantHsmInstance. Deleting a SingleTenantHsmInstance will
3776
+ # make all CryptoKeys attached to the SingleTenantHsmInstance unusable. The
3777
+ # SingleTenantHsmInstance must not be in the DELETING or DELETED state to
3778
+ # perform this operation.
3779
+ # Corresponds to the JSON property `deleteSingleTenantHsmInstance`
3780
+ # @return [Google::Apis::CloudkmsV1::DeleteSingleTenantHsmInstance]
3781
+ attr_accessor :delete_single_tenant_hsm_instance
3782
+
3783
+ # Output only. The time at which the SingleTenantHsmInstanceProposal was deleted.
3784
+ # Corresponds to the JSON property `deleteTime`
3785
+ # @return [String]
3786
+ attr_accessor :delete_time
3787
+
3788
+ # Disable the SingleTenantHsmInstance. The SingleTenantHsmInstance must be in
3789
+ # the ACTIVE state to perform this operation.
3790
+ # Corresponds to the JSON property `disableSingleTenantHsmInstance`
3791
+ # @return [Google::Apis::CloudkmsV1::DisableSingleTenantHsmInstance]
3792
+ attr_accessor :disable_single_tenant_hsm_instance
3793
+
3794
+ # Enable the SingleTenantHsmInstance. The SingleTenantHsmInstance must be in the
3795
+ # DISABLED state to perform this operation.
3796
+ # Corresponds to the JSON property `enableSingleTenantHsmInstance`
3797
+ # @return [Google::Apis::CloudkmsV1::EnableSingleTenantHsmInstance]
3798
+ attr_accessor :enable_single_tenant_hsm_instance
3799
+
3800
+ # The time at which the SingleTenantHsmInstanceProposal will expire if not
3801
+ # approved and executed.
3802
+ # Corresponds to the JSON property `expireTime`
3803
+ # @return [String]
3804
+ attr_accessor :expire_time
3805
+
3806
+ # Output only. The root cause of the most recent failure. Only present if state
3807
+ # is FAILED.
3808
+ # Corresponds to the JSON property `failureReason`
3809
+ # @return [String]
3810
+ attr_accessor :failure_reason
3811
+
3812
+ # Identifier. The resource name for this SingleTenantHsmInstance in the format `
3813
+ # projects/*/locations/*/singleTenantHsmInstances/*/proposals/*`.
3814
+ # Corresponds to the JSON property `name`
3815
+ # @return [String]
3816
+ attr_accessor :name
3817
+
3818
+ # Output only. The time at which the soft-deleted
3819
+ # SingleTenantHsmInstanceProposal will be permanently purged. This field is only
3820
+ # populated when the state is DELETED and will be set a time after expiration of
3821
+ # the proposal, i.e. >= expire_time or (create_time + ttl).
3822
+ # Corresponds to the JSON property `purgeTime`
3823
+ # @return [String]
3824
+ attr_accessor :purge_time
3825
+
3826
+ # Parameters of quorum approval for the SingleTenantHsmInstanceProposal.
3827
+ # Corresponds to the JSON property `quorumParameters`
3828
+ # @return [Google::Apis::CloudkmsV1::QuorumParameters]
3829
+ attr_accessor :quorum_parameters
3830
+
3831
+ # Refreshes the SingleTenantHsmInstance. This operation must be performed
3832
+ # periodically to keep the SingleTenantHsmInstance active. This operation must
3833
+ # be performed before unrefreshed_duration_until_disable has passed. The
3834
+ # SingleTenantHsmInstance must be in the ACTIVE state to perform this operation.
3835
+ # Corresponds to the JSON property `refreshSingleTenantHsmInstance`
3836
+ # @return [Google::Apis::CloudkmsV1::RefreshSingleTenantHsmInstance]
3837
+ attr_accessor :refresh_single_tenant_hsm_instance
3838
+
3839
+ # Register 2FA keys for the SingleTenantHsmInstance. This operation requires all
3840
+ # Challenges to be signed by 2FA keys. The SingleTenantHsmInstance must be in
3841
+ # the PENDING_TWO_FACTOR_AUTH_REGISTRATION state to perform this operation.
3842
+ # Corresponds to the JSON property `registerTwoFactorAuthKeys`
3843
+ # @return [Google::Apis::CloudkmsV1::RegisterTwoFactorAuthKeys]
3844
+ attr_accessor :register_two_factor_auth_keys
3845
+
3846
+ # Remove a quorum member from the SingleTenantHsmInstance. This will reduce
3847
+ # total_approver_count by 1. The SingleTenantHsmInstance must be in the ACTIVE
3848
+ # state to perform this operation.
3849
+ # Corresponds to the JSON property `removeQuorumMember`
3850
+ # @return [Google::Apis::CloudkmsV1::RemoveQuorumMember]
3851
+ attr_accessor :remove_quorum_member
3852
+
3853
+ # Parameters for an approval that has both required challenges and a quorum.
3854
+ # Corresponds to the JSON property `requiredActionQuorumParameters`
3855
+ # @return [Google::Apis::CloudkmsV1::RequiredActionQuorumParameters]
3856
+ attr_accessor :required_action_quorum_parameters
3857
+
3858
+ # Output only. The state of the SingleTenantHsmInstanceProposal.
3859
+ # Corresponds to the JSON property `state`
3860
+ # @return [String]
3861
+ attr_accessor :state
3862
+
3863
+ # Input only. The TTL for the SingleTenantHsmInstanceProposal. Proposals will
3864
+ # expire after this duration.
3865
+ # Corresponds to the JSON property `ttl`
3866
+ # @return [String]
3867
+ attr_accessor :ttl
3868
+
3869
+ def initialize(**args)
3870
+ update!(**args)
3871
+ end
3872
+
3873
+ # Update properties of this object
3874
+ def update!(**args)
3875
+ @add_quorum_member = args[:add_quorum_member] if args.key?(:add_quorum_member)
3876
+ @create_time = args[:create_time] if args.key?(:create_time)
3877
+ @delete_single_tenant_hsm_instance = args[:delete_single_tenant_hsm_instance] if args.key?(:delete_single_tenant_hsm_instance)
3878
+ @delete_time = args[:delete_time] if args.key?(:delete_time)
3879
+ @disable_single_tenant_hsm_instance = args[:disable_single_tenant_hsm_instance] if args.key?(:disable_single_tenant_hsm_instance)
3880
+ @enable_single_tenant_hsm_instance = args[:enable_single_tenant_hsm_instance] if args.key?(:enable_single_tenant_hsm_instance)
3881
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
3882
+ @failure_reason = args[:failure_reason] if args.key?(:failure_reason)
3883
+ @name = args[:name] if args.key?(:name)
3884
+ @purge_time = args[:purge_time] if args.key?(:purge_time)
3885
+ @quorum_parameters = args[:quorum_parameters] if args.key?(:quorum_parameters)
3886
+ @refresh_single_tenant_hsm_instance = args[:refresh_single_tenant_hsm_instance] if args.key?(:refresh_single_tenant_hsm_instance)
3887
+ @register_two_factor_auth_keys = args[:register_two_factor_auth_keys] if args.key?(:register_two_factor_auth_keys)
3888
+ @remove_quorum_member = args[:remove_quorum_member] if args.key?(:remove_quorum_member)
3889
+ @required_action_quorum_parameters = args[:required_action_quorum_parameters] if args.key?(:required_action_quorum_parameters)
3890
+ @state = args[:state] if args.key?(:state)
3891
+ @ttl = args[:ttl] if args.key?(:ttl)
3892
+ end
3893
+ end
3894
+
3206
3895
  # The `Status` type defines a logical error model that is suitable for different
3207
3896
  # programming environments, including REST APIs and RPC APIs. It is used by [
3208
3897
  # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of