google-apis-iam_v1 0.36.0 → 0.72.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,56 @@ module Google
22
22
  module Apis
23
23
  module IamV1
24
24
 
25
+ # Access related restrictions on the workforce pool.
26
+ class AccessRestrictions
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Optional. Immutable. Services allowed for web sign-in with the workforce pool.
30
+ # If not set by default there are no restrictions.
31
+ # Corresponds to the JSON property `allowedServices`
32
+ # @return [Array<Google::Apis::IamV1::ServiceConfig>]
33
+ attr_accessor :allowed_services
34
+
35
+ # Optional. Disable programmatic sign-in by disabling token issue via the
36
+ # Security Token API endpoint. See [Security Token Service API] (https://cloud.
37
+ # google.com/iam/docs/reference/sts/rest).
38
+ # Corresponds to the JSON property `disableProgrammaticSignin`
39
+ # @return [Boolean]
40
+ attr_accessor :disable_programmatic_signin
41
+ alias_method :disable_programmatic_signin?, :disable_programmatic_signin
42
+
43
+ def initialize(**args)
44
+ update!(**args)
45
+ end
46
+
47
+ # Update properties of this object
48
+ def update!(**args)
49
+ @allowed_services = args[:allowed_services] if args.key?(:allowed_services)
50
+ @disable_programmatic_signin = args[:disable_programmatic_signin] if args.key?(:disable_programmatic_signin)
51
+ end
52
+ end
53
+
54
+ # Request message for AddAttestationRule.
55
+ class AddAttestationRuleRequest
56
+ include Google::Apis::Core::Hashable
57
+
58
+ # Defines which workloads can receive an identity within a pool. When an
59
+ # AttestationRule is defined under a managed identity, matching workloads may
60
+ # receive that identity.
61
+ # Corresponds to the JSON property `attestationRule`
62
+ # @return [Google::Apis::IamV1::AttestationRule]
63
+ attr_accessor :attestation_rule
64
+
65
+ def initialize(**args)
66
+ update!(**args)
67
+ end
68
+
69
+ # Update properties of this object
70
+ def update!(**args)
71
+ @attestation_rule = args[:attestation_rule] if args.key?(:attestation_rule)
72
+ end
73
+ end
74
+
25
75
  # Audit log information specific to Cloud IAM admin APIs. This message is
26
76
  # serialized as an `Any` type in the `ServiceData` message of an `AuditLog`
27
77
  # message.
@@ -44,6 +94,28 @@ module Google
44
94
  end
45
95
  end
46
96
 
97
+ # Defines which workloads can receive an identity within a pool. When an
98
+ # AttestationRule is defined under a managed identity, matching workloads may
99
+ # receive that identity.
100
+ class AttestationRule
101
+ include Google::Apis::Core::Hashable
102
+
103
+ # Optional. A single workload operating on Google Cloud. For example: `//compute.
104
+ # googleapis.com/projects/123/uid/zones/us-central1-a/instances/12345`.
105
+ # Corresponds to the JSON property `googleCloudResource`
106
+ # @return [String]
107
+ attr_accessor :google_cloud_resource
108
+
109
+ def initialize(**args)
110
+ update!(**args)
111
+ end
112
+
113
+ # Update properties of this object
114
+ def update!(**args)
115
+ @google_cloud_resource = args[:google_cloud_resource] if args.key?(:google_cloud_resource)
116
+ end
117
+ end
118
+
47
119
  # Specifies the audit configuration for a service. The configuration determines
48
120
  # which permission types are logged, and what identities, if any, are exempted
49
121
  # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
@@ -139,8 +211,8 @@ module Google
139
211
  class AuditableService
140
212
  include Google::Apis::Core::Hashable
141
213
 
142
- # Public name of the service. For example, the service name for Cloud IAM is '
143
- # iam.googleapis.com'.
214
+ # Public name of the service. For example, the service name for IAM is 'iam.
215
+ # googleapis.com'.
144
216
  # Corresponds to the JSON property `name`
145
217
  # @return [String]
146
218
  attr_accessor :name
@@ -212,7 +284,27 @@ module Google
212
284
  # kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-
213
285
  # project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:`emailid``: An
214
286
  # email address that represents a Google group. For example, `admins@example.com`
215
- # . * `deleted:user:`emailid`?uid=`uniqueid``: An email address (plus unique
287
+ # . * `domain:`domain``: The G Suite domain (primary) that represents all the
288
+ # users of that domain. For example, `google.com` or `example.com`. * `principal:
289
+ # //iam.googleapis.com/locations/global/workforcePools/`pool_id`/subject/`
290
+ # subject_attribute_value``: A single identity in a workforce identity pool. * `
291
+ # principalSet://iam.googleapis.com/locations/global/workforcePools/`pool_id`/
292
+ # group/`group_id``: All workforce identities in a group. * `principalSet://iam.
293
+ # googleapis.com/locations/global/workforcePools/`pool_id`/attribute.`
294
+ # attribute_name`/`attribute_value``: All workforce identities with a specific
295
+ # attribute value. * `principalSet://iam.googleapis.com/locations/global/
296
+ # workforcePools/`pool_id`/*`: All identities in a workforce identity pool. * `
297
+ # principal://iam.googleapis.com/projects/`project_number`/locations/global/
298
+ # workloadIdentityPools/`pool_id`/subject/`subject_attribute_value``: A single
299
+ # identity in a workload identity pool. * `principalSet://iam.googleapis.com/
300
+ # projects/`project_number`/locations/global/workloadIdentityPools/`pool_id`/
301
+ # group/`group_id``: A workload identity pool group. * `principalSet://iam.
302
+ # googleapis.com/projects/`project_number`/locations/global/
303
+ # workloadIdentityPools/`pool_id`/attribute.`attribute_name`/`attribute_value``:
304
+ # All identities in a workload identity pool with a certain attribute. * `
305
+ # principalSet://iam.googleapis.com/projects/`project_number`/locations/global/
306
+ # workloadIdentityPools/`pool_id`/*`: All identities in a workload identity pool.
307
+ # * `deleted:user:`emailid`?uid=`uniqueid``: An email address (plus unique
216
308
  # identifier) representing a user that has been recently deleted. For example, `
217
309
  # alice@example.com?uid=123456789012345678901`. If the user is recovered, this
218
310
  # value reverts to `user:`emailid`` and the recovered user retains the role in
@@ -226,14 +318,19 @@ module Google
226
318
  # been recently deleted. For example, `admins@example.com?uid=
227
319
  # 123456789012345678901`. If the group is recovered, this value reverts to `
228
320
  # group:`emailid`` and the recovered group retains the role in the binding. * `
229
- # domain:`domain``: The G Suite domain (primary) that represents all the users
230
- # of that domain. For example, `google.com` or `example.com`.
321
+ # deleted:principal://iam.googleapis.com/locations/global/workforcePools/`
322
+ # pool_id`/subject/`subject_attribute_value``: Deleted single identity in a
323
+ # workforce identity pool. For example, `deleted:principal://iam.googleapis.com/
324
+ # locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.
231
325
  # Corresponds to the JSON property `members`
232
326
  # @return [Array<String>]
233
327
  attr_accessor :members
234
328
 
235
329
  # Role that is assigned to the list of `members`, or principals. For example, `
236
- # roles/viewer`, `roles/editor`, or `roles/owner`.
330
+ # roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM
331
+ # roles and permissions, see the [IAM documentation](https://cloud.google.com/
332
+ # iam/docs/roles-overview). For a list of the available pre-defined roles, see [
333
+ # here](https://cloud.google.com/iam/docs/understanding-roles).
237
334
  # Corresponds to the JSON property `role`
238
335
  # @return [String]
239
336
  attr_accessor :role
@@ -376,7 +473,7 @@ module Google
376
473
  # https://cloud.google.com/iam/help/service-accounts/overview). When you create
377
474
  # a service account, you specify the project ID that owns the service account,
378
475
  # as well as a name that must be unique within the project. IAM uses these
379
- # values to create an email address that identifies the service //
476
+ # values to create an email address that identifies the service account. //
380
477
  # Corresponds to the JSON property `serviceAccount`
381
478
  # @return [Google::Apis::IamV1::ServiceAccount]
382
479
  attr_accessor :service_account
@@ -396,12 +493,28 @@ module Google
396
493
  class DisableServiceAccountKeyRequest
397
494
  include Google::Apis::Core::Hashable
398
495
 
496
+ # Optional. Usable by internal google services only. An extended_status_message
497
+ # can be used to include additional information about the key, such as its
498
+ # private key data being exposed on a public repository like GitHub.
499
+ # Corresponds to the JSON property `extendedStatusMessage`
500
+ # @return [String]
501
+ attr_accessor :extended_status_message
502
+
503
+ # Optional. Describes the reason this key is being disabled. If unspecified, the
504
+ # default value of SERVICE_ACCOUNT_KEY_DISABLE_REASON_USER_INITIATED will be
505
+ # used.
506
+ # Corresponds to the JSON property `serviceAccountKeyDisableReason`
507
+ # @return [String]
508
+ attr_accessor :service_account_key_disable_reason
509
+
399
510
  def initialize(**args)
400
511
  update!(**args)
401
512
  end
402
513
 
403
514
  # Update properties of this object
404
515
  def update!(**args)
516
+ @extended_status_message = args[:extended_status_message] if args.key?(:extended_status_message)
517
+ @service_account_key_disable_reason = args[:service_account_key_disable_reason] if args.key?(:service_account_key_disable_reason)
405
518
  end
406
519
  end
407
520
 
@@ -514,38 +627,21 @@ module Google
514
627
  end
515
628
  end
516
629
 
517
- # The request to lint a Cloud IAM policy object.
518
- class LintPolicyRequest
630
+ # Extended status can store additional metadata. For example, for keys disabled
631
+ # due to their private key data being expoesed we may include a message with
632
+ # more information about the exposure.
633
+ class ExtendedStatus
519
634
  include Google::Apis::Core::Hashable
520
635
 
521
- # Represents a textual expression in the Common Expression Language (CEL) syntax.
522
- # CEL is a C-like expression language. The syntax and semantics of CEL are
523
- # documented at https://github.com/google/cel-spec. Example (Comparison): title:
524
- # "Summary size limit" description: "Determines if a summary is less than 100
525
- # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
526
- # Requestor is owner" description: "Determines if requestor is the document
527
- # owner" expression: "document.owner == request.auth.claims.email" Example (
528
- # Logic): title: "Public documents" description: "Determine whether the document
529
- # should be publicly visible" expression: "document.type != 'private' &&
530
- # document.type != 'internal'" Example (Data Manipulation): title: "Notification
531
- # string" description: "Create a notification string with a timestamp."
532
- # expression: "'New message received at ' + string(document.create_time)" The
533
- # exact variables and functions that may be referenced within an expression are
534
- # determined by the service that evaluates it. See the service documentation for
535
- # additional information.
536
- # Corresponds to the JSON property `condition`
537
- # @return [Google::Apis::IamV1::Expr]
538
- attr_accessor :condition
636
+ # The key for this extended status.
637
+ # Corresponds to the JSON property `key`
638
+ # @return [String]
639
+ attr_accessor :key
539
640
 
540
- # The full resource name of the policy this lint request is about. The name
541
- # follows the Google Cloud Platform (GCP) resource format. For example, a GCP
542
- # project with ID `my-project` will be named `//cloudresourcemanager.googleapis.
543
- # com/projects/my-project`. The resource name is not used to read the policy
544
- # instance from the Cloud IAM database. The candidate policy for lint has to be
545
- # provided in the same request object.
546
- # Corresponds to the JSON property `fullResourceName`
641
+ # The value for the extended status.
642
+ # Corresponds to the JSON property `value`
547
643
  # @return [String]
548
- attr_accessor :full_resource_name
644
+ attr_accessor :value
549
645
 
550
646
  def initialize(**args)
551
647
  update!(**args)
@@ -553,20 +649,19 @@ module Google
553
649
 
554
650
  # Update properties of this object
555
651
  def update!(**args)
556
- @condition = args[:condition] if args.key?(:condition)
557
- @full_resource_name = args[:full_resource_name] if args.key?(:full_resource_name)
652
+ @key = args[:key] if args.key?(:key)
653
+ @value = args[:value] if args.key?(:value)
558
654
  end
559
655
  end
560
656
 
561
- # The response of a lint operation. An empty response indicates the operation
562
- # was able to fully execute and no lint issue was found.
563
- class LintPolicyResponse
657
+ # Request message for `GetIamPolicy` method.
658
+ class GetIamPolicyRequest
564
659
  include Google::Apis::Core::Hashable
565
660
 
566
- # List of lint results sorted by `severity` in descending order.
567
- # Corresponds to the JSON property `lintResults`
568
- # @return [Array<Google::Apis::IamV1::LintResult>]
569
- attr_accessor :lint_results
661
+ # Encapsulates settings provided to GetIamPolicy.
662
+ # Corresponds to the JSON property `options`
663
+ # @return [Google::Apis::IamV1::GetPolicyOptions]
664
+ attr_accessor :options
570
665
 
571
666
  def initialize(**args)
572
667
  update!(**args)
@@ -574,50 +669,27 @@ module Google
574
669
 
575
670
  # Update properties of this object
576
671
  def update!(**args)
577
- @lint_results = args[:lint_results] if args.key?(:lint_results)
672
+ @options = args[:options] if args.key?(:options)
578
673
  end
579
674
  end
580
675
 
581
- # Structured response of a single validation unit.
582
- class LintResult
676
+ # Encapsulates settings provided to GetIamPolicy.
677
+ class GetPolicyOptions
583
678
  include Google::Apis::Core::Hashable
584
679
 
585
- # Human readable debug message associated with the issue.
586
- # Corresponds to the JSON property `debugMessage`
587
- # @return [String]
588
- attr_accessor :debug_message
589
-
590
- # The name of the field for which this lint result is about. For nested messages
591
- # `field_name` consists of names of the embedded fields separated by period
592
- # character. The top-level qualifier is the input object to lint in the request.
593
- # For example, the `field_name` value `condition.expression` identifies a lint
594
- # result for the `expression` field of the provided condition.
595
- # Corresponds to the JSON property `fieldName`
596
- # @return [String]
597
- attr_accessor :field_name
598
-
599
- # The validation unit level.
600
- # Corresponds to the JSON property `level`
601
- # @return [String]
602
- attr_accessor :level
603
-
604
- # 0-based character position of problematic construct within the object
605
- # identified by `field_name`. Currently, this is populated only for condition
606
- # expression.
607
- # Corresponds to the JSON property `locationOffset`
680
+ # Optional. The maximum policy version that will be used to format the policy.
681
+ # Valid values are 0, 1, and 3. Requests specifying an invalid value will be
682
+ # rejected. Requests for policies with any conditional role bindings must
683
+ # specify version 3. Policies with no conditional role bindings may specify any
684
+ # valid value or leave the field unset. The policy in the response might use the
685
+ # policy version that you specified, or it might use a lower policy version. For
686
+ # example, if you specify version 3, but the policy has no conditional role
687
+ # bindings, the response uses version 1. To learn which resources support
688
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
689
+ # google.com/iam/help/conditions/resource-policies).
690
+ # Corresponds to the JSON property `requestedPolicyVersion`
608
691
  # @return [Fixnum]
609
- attr_accessor :location_offset
610
-
611
- # The validation unit severity.
612
- # Corresponds to the JSON property `severity`
613
- # @return [String]
614
- attr_accessor :severity
615
-
616
- # The validation unit name, for instance "lintValidationUnits/
617
- # ConditionComplexityCheck".
618
- # Corresponds to the JSON property `validationUnitName`
619
- # @return [String]
620
- attr_accessor :validation_unit_name
692
+ attr_accessor :requested_policy_version
621
693
 
622
694
  def initialize(**args)
623
695
  update!(**args)
@@ -625,29 +697,45 @@ module Google
625
697
 
626
698
  # Update properties of this object
627
699
  def update!(**args)
628
- @debug_message = args[:debug_message] if args.key?(:debug_message)
629
- @field_name = args[:field_name] if args.key?(:field_name)
630
- @level = args[:level] if args.key?(:level)
631
- @location_offset = args[:location_offset] if args.key?(:location_offset)
632
- @severity = args[:severity] if args.key?(:severity)
633
- @validation_unit_name = args[:validation_unit_name] if args.key?(:validation_unit_name)
700
+ @requested_policy_version = args[:requested_policy_version] if args.key?(:requested_policy_version)
634
701
  end
635
702
  end
636
703
 
637
- # The response containing the roles defined under a resource.
638
- class ListRolesResponse
704
+ # Represents the OAuth 2.0 client credential configuration for retrieving
705
+ # additional user attributes that are not present in the initial authentication
706
+ # credentials from the identity provider, e.g. groups. See https://datatracker.
707
+ # ietf.org/doc/html/rfc6749#section-4.4 for more details on client credentials
708
+ # grant flow.
709
+ class GoogleIamAdminV1WorkforcePoolProviderExtraAttributesOAuth2Client
639
710
  include Google::Apis::Core::Hashable
640
711
 
641
- # To retrieve the next page of results, set `ListRolesRequest.page_token` to
642
- # this value.
643
- # Corresponds to the JSON property `nextPageToken`
712
+ # Required. Represents the IdP and type of claims that should be fetched.
713
+ # Corresponds to the JSON property `attributesType`
644
714
  # @return [String]
645
- attr_accessor :next_page_token
715
+ attr_accessor :attributes_type
646
716
 
647
- # The Roles defined on this resource.
648
- # Corresponds to the JSON property `roles`
649
- # @return [Array<Google::Apis::IamV1::Role>]
650
- attr_accessor :roles
717
+ # Required. The OAuth 2.0 client ID for retrieving extra attributes from the
718
+ # identity provider. Required to get the Access Token using client credentials
719
+ # grant flow.
720
+ # Corresponds to the JSON property `clientId`
721
+ # @return [String]
722
+ attr_accessor :client_id
723
+
724
+ # Representation of a client secret configured for the OIDC provider.
725
+ # Corresponds to the JSON property `clientSecret`
726
+ # @return [Google::Apis::IamV1::GoogleIamAdminV1WorkforcePoolProviderOidcClientSecret]
727
+ attr_accessor :client_secret
728
+
729
+ # Required. The OIDC identity provider's issuer URI. Must be a valid URI using
730
+ # the `https` scheme. Required to get the OIDC discovery document.
731
+ # Corresponds to the JSON property `issuerUri`
732
+ # @return [String]
733
+ attr_accessor :issuer_uri
734
+
735
+ # Represents the parameters to control which claims are fetched from an IdP.
736
+ # Corresponds to the JSON property `queryParameters`
737
+ # @return [Google::Apis::IamV1::GoogleIamAdminV1WorkforcePoolProviderExtraAttributesOAuth2ClientQueryParameters]
738
+ attr_accessor :query_parameters
651
739
 
652
740
  def initialize(**args)
653
741
  update!(**args)
@@ -655,19 +743,35 @@ module Google
655
743
 
656
744
  # Update properties of this object
657
745
  def update!(**args)
658
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
659
- @roles = args[:roles] if args.key?(:roles)
746
+ @attributes_type = args[:attributes_type] if args.key?(:attributes_type)
747
+ @client_id = args[:client_id] if args.key?(:client_id)
748
+ @client_secret = args[:client_secret] if args.key?(:client_secret)
749
+ @issuer_uri = args[:issuer_uri] if args.key?(:issuer_uri)
750
+ @query_parameters = args[:query_parameters] if args.key?(:query_parameters)
660
751
  end
661
752
  end
662
753
 
663
- # The service account keys list response.
664
- class ListServiceAccountKeysResponse
754
+ # Represents the parameters to control which claims are fetched from an IdP.
755
+ class GoogleIamAdminV1WorkforcePoolProviderExtraAttributesOAuth2ClientQueryParameters
665
756
  include Google::Apis::Core::Hashable
666
757
 
667
- # The public keys for the service account.
668
- # Corresponds to the JSON property `keys`
669
- # @return [Array<Google::Apis::IamV1::ServiceAccountKey>]
670
- attr_accessor :keys
758
+ # Optional. The filter used to request specific records from the IdP. By default,
759
+ # all of the groups that are associated with a user are fetched. For Microsoft
760
+ # Entra ID, you can add `$search` query parameters using [Keyword Query Language]
761
+ # (https://learn.microsoft.com/en-us/sharepoint/dev/general-development/keyword-
762
+ # query-language-kql-syntax-reference). To learn more about `$search` querying
763
+ # in Microsoft Entra ID, see [Use the `$search` query parameter] (https://learn.
764
+ # microsoft.com/en-us/graph/search-query-parameter). Additionally, Workforce
765
+ # Identity Federation automatically adds the following [`$filter` query
766
+ # parameters] (https://learn.microsoft.com/en-us/graph/filter-query-parameter),
767
+ # based on the value of `attributes_type`. Values passed to `filter` are
768
+ # converted to `$search` query parameters. Additional `$filter` query parameters
769
+ # cannot be added using this field. * `AZURE_AD_GROUPS_MAIL`: `mailEnabled` and `
770
+ # securityEnabled` filters are applied. * `AZURE_AD_GROUPS_ID`: `securityEnabled`
771
+ # filter is applied.
772
+ # Corresponds to the JSON property `filter`
773
+ # @return [String]
774
+ attr_accessor :filter
671
775
 
672
776
  def initialize(**args)
673
777
  update!(**args)
@@ -675,24 +779,45 @@ module Google
675
779
 
676
780
  # Update properties of this object
677
781
  def update!(**args)
678
- @keys = args[:keys] if args.key?(:keys)
782
+ @filter = args[:filter] if args.key?(:filter)
679
783
  end
680
784
  end
681
785
 
682
- # The service account list response.
683
- class ListServiceAccountsResponse
786
+ # Represents an OpenId Connect 1.0 identity provider.
787
+ class GoogleIamAdminV1WorkforcePoolProviderOidc
684
788
  include Google::Apis::Core::Hashable
685
789
 
686
- # The list of matching service accounts.
687
- # Corresponds to the JSON property `accounts`
688
- # @return [Array<Google::Apis::IamV1::ServiceAccount>]
689
- attr_accessor :accounts
790
+ # Required. The client ID. Must match the audience claim of the JWT issued by
791
+ # the identity provider.
792
+ # Corresponds to the JSON property `clientId`
793
+ # @return [String]
794
+ attr_accessor :client_id
690
795
 
691
- # To retrieve the next page of results, set ListServiceAccountsRequest.
692
- # page_token to this value.
693
- # Corresponds to the JSON property `nextPageToken`
796
+ # Representation of a client secret configured for the OIDC provider.
797
+ # Corresponds to the JSON property `clientSecret`
798
+ # @return [Google::Apis::IamV1::GoogleIamAdminV1WorkforcePoolProviderOidcClientSecret]
799
+ attr_accessor :client_secret
800
+
801
+ # Required. The OIDC issuer URI. Must be a valid URI using the `https` scheme.
802
+ # Corresponds to the JSON property `issuerUri`
694
803
  # @return [String]
695
- attr_accessor :next_page_token
804
+ attr_accessor :issuer_uri
805
+
806
+ # Optional. OIDC JWKs in JSON String format. For details on the definition of a
807
+ # JWK, see https://tools.ietf.org/html/rfc7517. If not set, the `jwks_uri` from
808
+ # the discovery document(fetched from the .well-known path of the `issuer_uri`)
809
+ # will be used. Currently, RSA and EC asymmetric keys are supported. The JWK
810
+ # must use following format and include only the following fields: ` "keys": [ `
811
+ # "kty": "RSA/EC", "alg": "", "use": "sig", "kid": "", "n": "", "e": "", "x": "",
812
+ # "y": "", "crv": "" ` ] `
813
+ # Corresponds to the JSON property `jwksJson`
814
+ # @return [String]
815
+ attr_accessor :jwks_json
816
+
817
+ # Configuration for web single sign-on for the OIDC provider.
818
+ # Corresponds to the JSON property `webSsoConfig`
819
+ # @return [Google::Apis::IamV1::GoogleIamAdminV1WorkforcePoolProviderOidcWebSsoConfig]
820
+ attr_accessor :web_sso_config
696
821
 
697
822
  def initialize(**args)
698
823
  update!(**args)
@@ -700,25 +825,22 @@ module Google
700
825
 
701
826
  # Update properties of this object
702
827
  def update!(**args)
703
- @accounts = args[:accounts] if args.key?(:accounts)
704
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
828
+ @client_id = args[:client_id] if args.key?(:client_id)
829
+ @client_secret = args[:client_secret] if args.key?(:client_secret)
830
+ @issuer_uri = args[:issuer_uri] if args.key?(:issuer_uri)
831
+ @jwks_json = args[:jwks_json] if args.key?(:jwks_json)
832
+ @web_sso_config = args[:web_sso_config] if args.key?(:web_sso_config)
705
833
  end
706
834
  end
707
835
 
708
- # Response message for ListWorkloadIdentityPoolProviders.
709
- class ListWorkloadIdentityPoolProvidersResponse
836
+ # Representation of a client secret configured for the OIDC provider.
837
+ class GoogleIamAdminV1WorkforcePoolProviderOidcClientSecret
710
838
  include Google::Apis::Core::Hashable
711
839
 
712
- # A token, which can be sent as `page_token` to retrieve the next page. If this
713
- # field is omitted, there are no subsequent pages.
714
- # Corresponds to the JSON property `nextPageToken`
715
- # @return [String]
716
- attr_accessor :next_page_token
717
-
718
- # A list of providers.
719
- # Corresponds to the JSON property `workloadIdentityPoolProviders`
720
- # @return [Array<Google::Apis::IamV1::WorkloadIdentityPoolProvider>]
721
- attr_accessor :workload_identity_pool_providers
840
+ # Representation of the value of the client secret.
841
+ # Corresponds to the JSON property `value`
842
+ # @return [Google::Apis::IamV1::GoogleIamAdminV1WorkforcePoolProviderOidcClientSecretValue]
843
+ attr_accessor :value
722
844
 
723
845
  def initialize(**args)
724
846
  update!(**args)
@@ -726,25 +848,25 @@ module Google
726
848
 
727
849
  # Update properties of this object
728
850
  def update!(**args)
729
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
730
- @workload_identity_pool_providers = args[:workload_identity_pool_providers] if args.key?(:workload_identity_pool_providers)
851
+ @value = args[:value] if args.key?(:value)
731
852
  end
732
853
  end
733
854
 
734
- # Response message for ListWorkloadIdentityPools.
735
- class ListWorkloadIdentityPoolsResponse
855
+ # Representation of the value of the client secret.
856
+ class GoogleIamAdminV1WorkforcePoolProviderOidcClientSecretValue
736
857
  include Google::Apis::Core::Hashable
737
858
 
738
- # A token, which can be sent as `page_token` to retrieve the next page. If this
739
- # field is omitted, there are no subsequent pages.
740
- # Corresponds to the JSON property `nextPageToken`
859
+ # Optional. Input only. The plain text of the client secret value. For security
860
+ # reasons, this field is only used for input and will never be populated in any
861
+ # response.
862
+ # Corresponds to the JSON property `plainText`
741
863
  # @return [String]
742
- attr_accessor :next_page_token
864
+ attr_accessor :plain_text
743
865
 
744
- # A list of pools.
745
- # Corresponds to the JSON property `workloadIdentityPools`
746
- # @return [Array<Google::Apis::IamV1::WorkloadIdentityPool>]
747
- attr_accessor :workload_identity_pools
866
+ # Output only. A thumbprint to represent the current client secret value.
867
+ # Corresponds to the JSON property `thumbprint`
868
+ # @return [String]
869
+ attr_accessor :thumbprint
748
870
 
749
871
  def initialize(**args)
750
872
  update!(**args)
@@ -752,32 +874,36 @@ module Google
752
874
 
753
875
  # Update properties of this object
754
876
  def update!(**args)
755
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
756
- @workload_identity_pools = args[:workload_identity_pools] if args.key?(:workload_identity_pools)
877
+ @plain_text = args[:plain_text] if args.key?(:plain_text)
878
+ @thumbprint = args[:thumbprint] if args.key?(:thumbprint)
757
879
  end
758
880
  end
759
881
 
760
- # Represents an OpenId Connect 1.0 identity provider.
761
- class Oidc
882
+ # Configuration for web single sign-on for the OIDC provider.
883
+ class GoogleIamAdminV1WorkforcePoolProviderOidcWebSsoConfig
762
884
  include Google::Apis::Core::Hashable
763
885
 
764
- # Acceptable values for the `aud` field (audience) in the OIDC token. Token
765
- # exchange requests are rejected if the token audience does not match one of the
766
- # configured values. Each audience may be at most 256 characters. A maximum of
767
- # 10 audiences may be configured. If this list is empty, the OIDC token audience
768
- # must be equal to the full canonical resource name of the
769
- # WorkloadIdentityPoolProvider, with or without the HTTPS prefix. For example: ``
770
- # ` //iam.googleapis.com/projects//locations//workloadIdentityPools//providers/
771
- # https://iam.googleapis.com/projects//locations//workloadIdentityPools//
772
- # providers/ ```
773
- # Corresponds to the JSON property `allowedAudiences`
886
+ # Optional. Additional scopes to request for in the OIDC authentication request
887
+ # on top of scopes requested by default. By default, the `openid`, `profile` and
888
+ # `email` scopes that are supported by the identity provider are requested. Each
889
+ # additional scope may be at most 256 characters. A maximum of 10 additional
890
+ # scopes may be configured.
891
+ # Corresponds to the JSON property `additionalScopes`
774
892
  # @return [Array<String>]
775
- attr_accessor :allowed_audiences
893
+ attr_accessor :additional_scopes
776
894
 
777
- # Required. The OIDC issuer URL. Must be an HTTPS endpoint.
778
- # Corresponds to the JSON property `issuerUri`
895
+ # Required. The behavior for how OIDC Claims are included in the `assertion`
896
+ # object used for attribute mapping and attribute condition.
897
+ # Corresponds to the JSON property `assertionClaimsBehavior`
779
898
  # @return [String]
780
- attr_accessor :issuer_uri
899
+ attr_accessor :assertion_claims_behavior
900
+
901
+ # Required. The Response Type to request for in the OIDC Authorization Request
902
+ # for web sign-in. The `CODE` Response Type is recommended to avoid the Implicit
903
+ # Flow, for security reasons.
904
+ # Corresponds to the JSON property `responseType`
905
+ # @return [String]
906
+ attr_accessor :response_type
781
907
 
782
908
  def initialize(**args)
783
909
  update!(**args)
@@ -785,58 +911,31 @@ module Google
785
911
 
786
912
  # Update properties of this object
787
913
  def update!(**args)
788
- @allowed_audiences = args[:allowed_audiences] if args.key?(:allowed_audiences)
789
- @issuer_uri = args[:issuer_uri] if args.key?(:issuer_uri)
914
+ @additional_scopes = args[:additional_scopes] if args.key?(:additional_scopes)
915
+ @assertion_claims_behavior = args[:assertion_claims_behavior] if args.key?(:assertion_claims_behavior)
916
+ @response_type = args[:response_type] if args.key?(:response_type)
790
917
  end
791
918
  end
792
919
 
793
- # This resource represents a long-running operation that is the result of a
794
- # network API call.
795
- class Operation
920
+ # Represents a SAML identity provider.
921
+ class GoogleIamAdminV1WorkforcePoolProviderSaml
796
922
  include Google::Apis::Core::Hashable
797
923
 
798
- # If the value is `false`, it means the operation is still in progress. If `true`
799
- # , the operation is completed, and either `error` or `response` is available.
800
- # Corresponds to the JSON property `done`
801
- # @return [Boolean]
802
- attr_accessor :done
803
- alias_method :done?, :done
804
-
805
- # The `Status` type defines a logical error model that is suitable for different
806
- # programming environments, including REST APIs and RPC APIs. It is used by [
807
- # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
808
- # data: error code, error message, and error details. You can find out more
809
- # about this error model and how to work with it in the [API Design Guide](https:
810
- # //cloud.google.com/apis/design/errors).
811
- # Corresponds to the JSON property `error`
812
- # @return [Google::Apis::IamV1::Status]
813
- attr_accessor :error
814
-
815
- # Service-specific metadata associated with the operation. It typically contains
816
- # progress information and common metadata such as create time. Some services
817
- # might not provide such metadata. Any method that returns a long-running
818
- # operation should document the metadata type, if any.
819
- # Corresponds to the JSON property `metadata`
820
- # @return [Hash<String,Object>]
821
- attr_accessor :metadata
822
-
823
- # The server-assigned name, which is only unique within the same service that
824
- # originally returns it. If you use the default HTTP mapping, the `name` should
825
- # be a resource name ending with `operations/`unique_id``.
826
- # Corresponds to the JSON property `name`
924
+ # Required. SAML Identity provider configuration metadata xml doc. The xml
925
+ # document should comply with [SAML 2.0 specification](https://docs.oasis-open.
926
+ # org/security/saml/v2.0/saml-metadata-2.0-os.pdf). The max size of the
927
+ # acceptable xml document will be bounded to 128k characters. The metadata xml
928
+ # document should satisfy the following constraints: 1) Must contain an Identity
929
+ # Provider Entity ID. 2) Must contain at least one non-expired signing key
930
+ # certificate. 3) For each signing key: a) Valid from should be no more than 7
931
+ # days from now. b) Valid to should be no more than 25 years in the future. 4)
932
+ # Up to 3 IdP signing keys are allowed in the metadata xml. When updating the
933
+ # provider's metadata xml, at least one non-expired signing key must overlap
934
+ # with the existing metadata. This requirement is skipped if there are no non-
935
+ # expired signing keys present in the existing metadata.
936
+ # Corresponds to the JSON property `idpMetadataXml`
827
937
  # @return [String]
828
- attr_accessor :name
829
-
830
- # The normal response of the operation in case of success. If the original
831
- # method returns no data on success, such as `Delete`, the response is `google.
832
- # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
833
- # the response should be the resource. For other methods, the response should
834
- # have the type `XxxResponse`, where `Xxx` is the original method name. For
835
- # example, if the original method name is `TakeSnapshot()`, the inferred
836
- # response type is `TakeSnapshotResponse`.
837
- # Corresponds to the JSON property `response`
838
- # @return [Hash<String,Object>]
839
- attr_accessor :response
938
+ attr_accessor :idp_metadata_xml
840
939
 
841
940
  def initialize(**args)
842
941
  update!(**args)
@@ -844,15 +943,962 @@ module Google
844
943
 
845
944
  # Update properties of this object
846
945
  def update!(**args)
847
- @done = args[:done] if args.key?(:done)
848
- @error = args[:error] if args.key?(:error)
849
- @metadata = args[:metadata] if args.key?(:metadata)
850
- @name = args[:name] if args.key?(:name)
851
- @response = args[:response] if args.key?(:response)
946
+ @idp_metadata_xml = args[:idp_metadata_xml] if args.key?(:idp_metadata_xml)
852
947
  end
853
948
  end
854
949
 
855
- # The service account patch request. You can patch only the `display_name` and `
950
+ # Represents configuration for generating mutual TLS (mTLS) certificates for the
951
+ # identities within this pool.
952
+ class InlineCertificateIssuanceConfig
953
+ include Google::Apis::Core::Hashable
954
+
955
+ # Optional. A required mapping of a Google Cloud region to the CA pool resource
956
+ # located in that region. The CA pool is used for certificate issuance, adhering
957
+ # to the following constraints: * Key format: A supported cloud region name
958
+ # equivalent to the location identifier in the corresponding map entry's value. *
959
+ # Value format: A valid CA pool resource path format like: "projects/`project`/
960
+ # locations/`location`/caPools/`ca_pool`" * Region Matching: Workloads are ONLY
961
+ # issued certificates from CA pools within the same region. Also the CA pool
962
+ # region (in value) must match the workload's region (key).
963
+ # Corresponds to the JSON property `caPools`
964
+ # @return [Hash<String,String>]
965
+ attr_accessor :ca_pools
966
+
967
+ # Optional. Key algorithm to use when generating the key pair. This key pair
968
+ # will be used to create the certificate. If not specified, this will default to
969
+ # ECDSA_P256.
970
+ # Corresponds to the JSON property `keyAlgorithm`
971
+ # @return [String]
972
+ attr_accessor :key_algorithm
973
+
974
+ # Optional. Lifetime of the workload certificates issued by the CA pool. Must be
975
+ # between 24 hours and 30 days. If not specified, this will be defaulted to 24
976
+ # hours.
977
+ # Corresponds to the JSON property `lifetime`
978
+ # @return [String]
979
+ attr_accessor :lifetime
980
+
981
+ # Optional. Rotation window percentage, the percentage of remaining lifetime
982
+ # after which certificate rotation is initiated. Must be between 50 and 80. If
983
+ # no value is specified, rotation window percentage is defaulted to 50.
984
+ # Corresponds to the JSON property `rotationWindowPercentage`
985
+ # @return [Fixnum]
986
+ attr_accessor :rotation_window_percentage
987
+
988
+ def initialize(**args)
989
+ update!(**args)
990
+ end
991
+
992
+ # Update properties of this object
993
+ def update!(**args)
994
+ @ca_pools = args[:ca_pools] if args.key?(:ca_pools)
995
+ @key_algorithm = args[:key_algorithm] if args.key?(:key_algorithm)
996
+ @lifetime = args[:lifetime] if args.key?(:lifetime)
997
+ @rotation_window_percentage = args[:rotation_window_percentage] if args.key?(:rotation_window_percentage)
998
+ end
999
+ end
1000
+
1001
+ # Defines configuration for extending trust to additional trust domains. By
1002
+ # establishing trust with another domain, the current domain will recognize and
1003
+ # accept certificates issued by entities within the trusted domains. Note that a
1004
+ # trust domain automatically trusts itself, eliminating the need for explicit
1005
+ # configuration.
1006
+ class InlineTrustConfig
1007
+ include Google::Apis::Core::Hashable
1008
+
1009
+ # Optional. Maps specific trust domains (e.g., "example.com") to their
1010
+ # corresponding TrustStore, which contain the trusted root certificates for that
1011
+ # domain. There can be a maximum of 10 trust domain entries in this map. Note
1012
+ # that a trust domain automatically trusts itself and don't need to be specified
1013
+ # here. If however, this WorkloadIdentityPool's trust domain contains any trust
1014
+ # anchors in the additional_trust_bundles map, those trust anchors will be *
1015
+ # appended to* the trust bundle automatically derived from your
1016
+ # InlineCertificateIssuanceConfig's ca_pools.
1017
+ # Corresponds to the JSON property `additionalTrustBundles`
1018
+ # @return [Hash<String,Google::Apis::IamV1::TrustStore>]
1019
+ attr_accessor :additional_trust_bundles
1020
+
1021
+ def initialize(**args)
1022
+ update!(**args)
1023
+ end
1024
+
1025
+ # Update properties of this object
1026
+ def update!(**args)
1027
+ @additional_trust_bundles = args[:additional_trust_bundles] if args.key?(:additional_trust_bundles)
1028
+ end
1029
+ end
1030
+
1031
+ # Intermediate CA certificates used for building the trust chain to trust anchor
1032
+ class IntermediateCa
1033
+ include Google::Apis::Core::Hashable
1034
+
1035
+ # PEM certificate of the PKI used for validation. Must only contain one ca
1036
+ # certificate.
1037
+ # Corresponds to the JSON property `pemCertificate`
1038
+ # @return [String]
1039
+ attr_accessor :pem_certificate
1040
+
1041
+ def initialize(**args)
1042
+ update!(**args)
1043
+ end
1044
+
1045
+ # Update properties of this object
1046
+ def update!(**args)
1047
+ @pem_certificate = args[:pem_certificate] if args.key?(:pem_certificate)
1048
+ end
1049
+ end
1050
+
1051
+ # Represents a public key data along with its format.
1052
+ class KeyData
1053
+ include Google::Apis::Core::Hashable
1054
+
1055
+ # Output only. The format of the key.
1056
+ # Corresponds to the JSON property `format`
1057
+ # @return [String]
1058
+ attr_accessor :format
1059
+
1060
+ # Output only. The key data. The format of the key is represented by the format
1061
+ # field.
1062
+ # Corresponds to the JSON property `key`
1063
+ # @return [String]
1064
+ attr_accessor :key
1065
+
1066
+ # Required. The specifications for the key.
1067
+ # Corresponds to the JSON property `keySpec`
1068
+ # @return [String]
1069
+ attr_accessor :key_spec
1070
+
1071
+ # Output only. Latest timestamp when this key is valid. Attempts to use this key
1072
+ # after this time will fail. Only present if the key data represents a X.509
1073
+ # certificate.
1074
+ # Corresponds to the JSON property `notAfterTime`
1075
+ # @return [String]
1076
+ attr_accessor :not_after_time
1077
+
1078
+ # Output only. Earliest timestamp when this key is valid. Attempts to use this
1079
+ # key before this time will fail. Only present if the key data represents a X.
1080
+ # 509 certificate.
1081
+ # Corresponds to the JSON property `notBeforeTime`
1082
+ # @return [String]
1083
+ attr_accessor :not_before_time
1084
+
1085
+ def initialize(**args)
1086
+ update!(**args)
1087
+ end
1088
+
1089
+ # Update properties of this object
1090
+ def update!(**args)
1091
+ @format = args[:format] if args.key?(:format)
1092
+ @key = args[:key] if args.key?(:key)
1093
+ @key_spec = args[:key_spec] if args.key?(:key_spec)
1094
+ @not_after_time = args[:not_after_time] if args.key?(:not_after_time)
1095
+ @not_before_time = args[:not_before_time] if args.key?(:not_before_time)
1096
+ end
1097
+ end
1098
+
1099
+ # The request to lint an IAM policy object.
1100
+ class LintPolicyRequest
1101
+ include Google::Apis::Core::Hashable
1102
+
1103
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
1104
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
1105
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
1106
+ # "Summary size limit" description: "Determines if a summary is less than 100
1107
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
1108
+ # Requestor is owner" description: "Determines if requestor is the document
1109
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
1110
+ # Logic): title: "Public documents" description: "Determine whether the document
1111
+ # should be publicly visible" expression: "document.type != 'private' &&
1112
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
1113
+ # string" description: "Create a notification string with a timestamp."
1114
+ # expression: "'New message received at ' + string(document.create_time)" The
1115
+ # exact variables and functions that may be referenced within an expression are
1116
+ # determined by the service that evaluates it. See the service documentation for
1117
+ # additional information.
1118
+ # Corresponds to the JSON property `condition`
1119
+ # @return [Google::Apis::IamV1::Expr]
1120
+ attr_accessor :condition
1121
+
1122
+ # The full resource name of the policy this lint request is about. The name
1123
+ # follows the Google Cloud format for full resource names. For example, a Google
1124
+ # Cloud project with ID `my-project` will be named `//cloudresourcemanager.
1125
+ # googleapis.com/projects/my-project`. The resource name is not used to read a
1126
+ # policy from IAM. Only the data in the request object is linted.
1127
+ # Corresponds to the JSON property `fullResourceName`
1128
+ # @return [String]
1129
+ attr_accessor :full_resource_name
1130
+
1131
+ def initialize(**args)
1132
+ update!(**args)
1133
+ end
1134
+
1135
+ # Update properties of this object
1136
+ def update!(**args)
1137
+ @condition = args[:condition] if args.key?(:condition)
1138
+ @full_resource_name = args[:full_resource_name] if args.key?(:full_resource_name)
1139
+ end
1140
+ end
1141
+
1142
+ # The response of a lint operation. An empty response indicates the operation
1143
+ # was able to fully execute and no lint issue was found.
1144
+ class LintPolicyResponse
1145
+ include Google::Apis::Core::Hashable
1146
+
1147
+ # List of lint results sorted by `severity` in descending order.
1148
+ # Corresponds to the JSON property `lintResults`
1149
+ # @return [Array<Google::Apis::IamV1::LintResult>]
1150
+ attr_accessor :lint_results
1151
+
1152
+ def initialize(**args)
1153
+ update!(**args)
1154
+ end
1155
+
1156
+ # Update properties of this object
1157
+ def update!(**args)
1158
+ @lint_results = args[:lint_results] if args.key?(:lint_results)
1159
+ end
1160
+ end
1161
+
1162
+ # Structured response of a single validation unit.
1163
+ class LintResult
1164
+ include Google::Apis::Core::Hashable
1165
+
1166
+ # Human readable debug message associated with the issue.
1167
+ # Corresponds to the JSON property `debugMessage`
1168
+ # @return [String]
1169
+ attr_accessor :debug_message
1170
+
1171
+ # The name of the field for which this lint result is about. For nested messages
1172
+ # `field_name` consists of names of the embedded fields separated by period
1173
+ # character. The top-level qualifier is the input object to lint in the request.
1174
+ # For example, the `field_name` value `condition.expression` identifies a lint
1175
+ # result for the `expression` field of the provided condition.
1176
+ # Corresponds to the JSON property `fieldName`
1177
+ # @return [String]
1178
+ attr_accessor :field_name
1179
+
1180
+ # The validation unit level.
1181
+ # Corresponds to the JSON property `level`
1182
+ # @return [String]
1183
+ attr_accessor :level
1184
+
1185
+ # 0-based character position of problematic construct within the object
1186
+ # identified by `field_name`. Currently, this is populated only for condition
1187
+ # expression.
1188
+ # Corresponds to the JSON property `locationOffset`
1189
+ # @return [Fixnum]
1190
+ attr_accessor :location_offset
1191
+
1192
+ # The validation unit severity.
1193
+ # Corresponds to the JSON property `severity`
1194
+ # @return [String]
1195
+ attr_accessor :severity
1196
+
1197
+ # The validation unit name, for instance "lintValidationUnits/
1198
+ # ConditionComplexityCheck".
1199
+ # Corresponds to the JSON property `validationUnitName`
1200
+ # @return [String]
1201
+ attr_accessor :validation_unit_name
1202
+
1203
+ def initialize(**args)
1204
+ update!(**args)
1205
+ end
1206
+
1207
+ # Update properties of this object
1208
+ def update!(**args)
1209
+ @debug_message = args[:debug_message] if args.key?(:debug_message)
1210
+ @field_name = args[:field_name] if args.key?(:field_name)
1211
+ @level = args[:level] if args.key?(:level)
1212
+ @location_offset = args[:location_offset] if args.key?(:location_offset)
1213
+ @severity = args[:severity] if args.key?(:severity)
1214
+ @validation_unit_name = args[:validation_unit_name] if args.key?(:validation_unit_name)
1215
+ end
1216
+ end
1217
+
1218
+ # Response message for ListAttestationRules.
1219
+ class ListAttestationRulesResponse
1220
+ include Google::Apis::Core::Hashable
1221
+
1222
+ # A list of AttestationRules.
1223
+ # Corresponds to the JSON property `attestationRules`
1224
+ # @return [Array<Google::Apis::IamV1::AttestationRule>]
1225
+ attr_accessor :attestation_rules
1226
+
1227
+ # Optional. A token, which can be sent as `page_token` to retrieve the next page.
1228
+ # If this field is omitted, there are no subsequent pages.
1229
+ # Corresponds to the JSON property `nextPageToken`
1230
+ # @return [String]
1231
+ attr_accessor :next_page_token
1232
+
1233
+ def initialize(**args)
1234
+ update!(**args)
1235
+ end
1236
+
1237
+ # Update properties of this object
1238
+ def update!(**args)
1239
+ @attestation_rules = args[:attestation_rules] if args.key?(:attestation_rules)
1240
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1241
+ end
1242
+ end
1243
+
1244
+ # Response message for ListOauthClientCredentials.
1245
+ class ListOauthClientCredentialsResponse
1246
+ include Google::Apis::Core::Hashable
1247
+
1248
+ # A list of OauthClientCredentials.
1249
+ # Corresponds to the JSON property `oauthClientCredentials`
1250
+ # @return [Array<Google::Apis::IamV1::OauthClientCredential>]
1251
+ attr_accessor :oauth_client_credentials
1252
+
1253
+ def initialize(**args)
1254
+ update!(**args)
1255
+ end
1256
+
1257
+ # Update properties of this object
1258
+ def update!(**args)
1259
+ @oauth_client_credentials = args[:oauth_client_credentials] if args.key?(:oauth_client_credentials)
1260
+ end
1261
+ end
1262
+
1263
+ # Response message for ListOauthClients.
1264
+ class ListOauthClientsResponse
1265
+ include Google::Apis::Core::Hashable
1266
+
1267
+ # Optional. A token, which can be sent as `page_token` to retrieve the next page.
1268
+ # If this field is omitted, there are no subsequent pages.
1269
+ # Corresponds to the JSON property `nextPageToken`
1270
+ # @return [String]
1271
+ attr_accessor :next_page_token
1272
+
1273
+ # A list of OauthClients.
1274
+ # Corresponds to the JSON property `oauthClients`
1275
+ # @return [Array<Google::Apis::IamV1::OauthClient>]
1276
+ attr_accessor :oauth_clients
1277
+
1278
+ def initialize(**args)
1279
+ update!(**args)
1280
+ end
1281
+
1282
+ # Update properties of this object
1283
+ def update!(**args)
1284
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1285
+ @oauth_clients = args[:oauth_clients] if args.key?(:oauth_clients)
1286
+ end
1287
+ end
1288
+
1289
+ # The response containing the roles defined under a resource.
1290
+ class ListRolesResponse
1291
+ include Google::Apis::Core::Hashable
1292
+
1293
+ # To retrieve the next page of results, set `ListRolesRequest.page_token` to
1294
+ # this value.
1295
+ # Corresponds to the JSON property `nextPageToken`
1296
+ # @return [String]
1297
+ attr_accessor :next_page_token
1298
+
1299
+ # The Roles defined on this resource.
1300
+ # Corresponds to the JSON property `roles`
1301
+ # @return [Array<Google::Apis::IamV1::Role>]
1302
+ attr_accessor :roles
1303
+
1304
+ def initialize(**args)
1305
+ update!(**args)
1306
+ end
1307
+
1308
+ # Update properties of this object
1309
+ def update!(**args)
1310
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1311
+ @roles = args[:roles] if args.key?(:roles)
1312
+ end
1313
+ end
1314
+
1315
+ # The service account keys list response.
1316
+ class ListServiceAccountKeysResponse
1317
+ include Google::Apis::Core::Hashable
1318
+
1319
+ # The public keys for the service account.
1320
+ # Corresponds to the JSON property `keys`
1321
+ # @return [Array<Google::Apis::IamV1::ServiceAccountKey>]
1322
+ attr_accessor :keys
1323
+
1324
+ def initialize(**args)
1325
+ update!(**args)
1326
+ end
1327
+
1328
+ # Update properties of this object
1329
+ def update!(**args)
1330
+ @keys = args[:keys] if args.key?(:keys)
1331
+ end
1332
+ end
1333
+
1334
+ # The service account list response.
1335
+ class ListServiceAccountsResponse
1336
+ include Google::Apis::Core::Hashable
1337
+
1338
+ # The list of matching service accounts.
1339
+ # Corresponds to the JSON property `accounts`
1340
+ # @return [Array<Google::Apis::IamV1::ServiceAccount>]
1341
+ attr_accessor :accounts
1342
+
1343
+ # To retrieve the next page of results, set ListServiceAccountsRequest.
1344
+ # page_token to this value.
1345
+ # Corresponds to the JSON property `nextPageToken`
1346
+ # @return [String]
1347
+ attr_accessor :next_page_token
1348
+
1349
+ def initialize(**args)
1350
+ update!(**args)
1351
+ end
1352
+
1353
+ # Update properties of this object
1354
+ def update!(**args)
1355
+ @accounts = args[:accounts] if args.key?(:accounts)
1356
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1357
+ end
1358
+ end
1359
+
1360
+ # Response message for ListWorkforcePoolProviderKeys.
1361
+ class ListWorkforcePoolProviderKeysResponse
1362
+ include Google::Apis::Core::Hashable
1363
+
1364
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1365
+ # field is omitted, there are no subsequent pages.
1366
+ # Corresponds to the JSON property `nextPageToken`
1367
+ # @return [String]
1368
+ attr_accessor :next_page_token
1369
+
1370
+ # A list of WorkforcePoolProviderKeys.
1371
+ # Corresponds to the JSON property `workforcePoolProviderKeys`
1372
+ # @return [Array<Google::Apis::IamV1::WorkforcePoolProviderKey>]
1373
+ attr_accessor :workforce_pool_provider_keys
1374
+
1375
+ def initialize(**args)
1376
+ update!(**args)
1377
+ end
1378
+
1379
+ # Update properties of this object
1380
+ def update!(**args)
1381
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1382
+ @workforce_pool_provider_keys = args[:workforce_pool_provider_keys] if args.key?(:workforce_pool_provider_keys)
1383
+ end
1384
+ end
1385
+
1386
+ # Response message for ListWorkforcePoolProviders.
1387
+ class ListWorkforcePoolProvidersResponse
1388
+ include Google::Apis::Core::Hashable
1389
+
1390
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1391
+ # field is omitted, there are no subsequent pages.
1392
+ # Corresponds to the JSON property `nextPageToken`
1393
+ # @return [String]
1394
+ attr_accessor :next_page_token
1395
+
1396
+ # A list of providers.
1397
+ # Corresponds to the JSON property `workforcePoolProviders`
1398
+ # @return [Array<Google::Apis::IamV1::WorkforcePoolProvider>]
1399
+ attr_accessor :workforce_pool_providers
1400
+
1401
+ def initialize(**args)
1402
+ update!(**args)
1403
+ end
1404
+
1405
+ # Update properties of this object
1406
+ def update!(**args)
1407
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1408
+ @workforce_pool_providers = args[:workforce_pool_providers] if args.key?(:workforce_pool_providers)
1409
+ end
1410
+ end
1411
+
1412
+ # Response message for ListWorkforcePools.
1413
+ class ListWorkforcePoolsResponse
1414
+ include Google::Apis::Core::Hashable
1415
+
1416
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1417
+ # field is omitted, there are no subsequent pages.
1418
+ # Corresponds to the JSON property `nextPageToken`
1419
+ # @return [String]
1420
+ attr_accessor :next_page_token
1421
+
1422
+ # A list of pools.
1423
+ # Corresponds to the JSON property `workforcePools`
1424
+ # @return [Array<Google::Apis::IamV1::WorkforcePool>]
1425
+ attr_accessor :workforce_pools
1426
+
1427
+ def initialize(**args)
1428
+ update!(**args)
1429
+ end
1430
+
1431
+ # Update properties of this object
1432
+ def update!(**args)
1433
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1434
+ @workforce_pools = args[:workforce_pools] if args.key?(:workforce_pools)
1435
+ end
1436
+ end
1437
+
1438
+ # Response message for ListWorkloadIdentityPoolManagedIdentities.
1439
+ class ListWorkloadIdentityPoolManagedIdentitiesResponse
1440
+ include Google::Apis::Core::Hashable
1441
+
1442
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1443
+ # field is omitted, there are no subsequent pages.
1444
+ # Corresponds to the JSON property `nextPageToken`
1445
+ # @return [String]
1446
+ attr_accessor :next_page_token
1447
+
1448
+ # A list of managed identities.
1449
+ # Corresponds to the JSON property `workloadIdentityPoolManagedIdentities`
1450
+ # @return [Array<Google::Apis::IamV1::WorkloadIdentityPoolManagedIdentity>]
1451
+ attr_accessor :workload_identity_pool_managed_identities
1452
+
1453
+ def initialize(**args)
1454
+ update!(**args)
1455
+ end
1456
+
1457
+ # Update properties of this object
1458
+ def update!(**args)
1459
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1460
+ @workload_identity_pool_managed_identities = args[:workload_identity_pool_managed_identities] if args.key?(:workload_identity_pool_managed_identities)
1461
+ end
1462
+ end
1463
+
1464
+ # Response message for ListWorkloadIdentityPoolNamespaces.
1465
+ class ListWorkloadIdentityPoolNamespacesResponse
1466
+ include Google::Apis::Core::Hashable
1467
+
1468
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1469
+ # field is omitted, there are no subsequent pages.
1470
+ # Corresponds to the JSON property `nextPageToken`
1471
+ # @return [String]
1472
+ attr_accessor :next_page_token
1473
+
1474
+ # A list of namespaces.
1475
+ # Corresponds to the JSON property `workloadIdentityPoolNamespaces`
1476
+ # @return [Array<Google::Apis::IamV1::WorkloadIdentityPoolNamespace>]
1477
+ attr_accessor :workload_identity_pool_namespaces
1478
+
1479
+ def initialize(**args)
1480
+ update!(**args)
1481
+ end
1482
+
1483
+ # Update properties of this object
1484
+ def update!(**args)
1485
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1486
+ @workload_identity_pool_namespaces = args[:workload_identity_pool_namespaces] if args.key?(:workload_identity_pool_namespaces)
1487
+ end
1488
+ end
1489
+
1490
+ # Response message for ListWorkloadIdentityPoolProviderKeys.
1491
+ class ListWorkloadIdentityPoolProviderKeysResponse
1492
+ include Google::Apis::Core::Hashable
1493
+
1494
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1495
+ # field is omitted, there are no subsequent pages.
1496
+ # Corresponds to the JSON property `nextPageToken`
1497
+ # @return [String]
1498
+ attr_accessor :next_page_token
1499
+
1500
+ # A list of WorkloadIdentityPoolProviderKey
1501
+ # Corresponds to the JSON property `workloadIdentityPoolProviderKeys`
1502
+ # @return [Array<Google::Apis::IamV1::WorkloadIdentityPoolProviderKey>]
1503
+ attr_accessor :workload_identity_pool_provider_keys
1504
+
1505
+ def initialize(**args)
1506
+ update!(**args)
1507
+ end
1508
+
1509
+ # Update properties of this object
1510
+ def update!(**args)
1511
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1512
+ @workload_identity_pool_provider_keys = args[:workload_identity_pool_provider_keys] if args.key?(:workload_identity_pool_provider_keys)
1513
+ end
1514
+ end
1515
+
1516
+ # Response message for ListWorkloadIdentityPoolProviders.
1517
+ class ListWorkloadIdentityPoolProvidersResponse
1518
+ include Google::Apis::Core::Hashable
1519
+
1520
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1521
+ # field is omitted, there are no subsequent pages.
1522
+ # Corresponds to the JSON property `nextPageToken`
1523
+ # @return [String]
1524
+ attr_accessor :next_page_token
1525
+
1526
+ # A list of providers.
1527
+ # Corresponds to the JSON property `workloadIdentityPoolProviders`
1528
+ # @return [Array<Google::Apis::IamV1::WorkloadIdentityPoolProvider>]
1529
+ attr_accessor :workload_identity_pool_providers
1530
+
1531
+ def initialize(**args)
1532
+ update!(**args)
1533
+ end
1534
+
1535
+ # Update properties of this object
1536
+ def update!(**args)
1537
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1538
+ @workload_identity_pool_providers = args[:workload_identity_pool_providers] if args.key?(:workload_identity_pool_providers)
1539
+ end
1540
+ end
1541
+
1542
+ # Response message for ListWorkloadIdentityPools.
1543
+ class ListWorkloadIdentityPoolsResponse
1544
+ include Google::Apis::Core::Hashable
1545
+
1546
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
1547
+ # field is omitted, there are no subsequent pages.
1548
+ # Corresponds to the JSON property `nextPageToken`
1549
+ # @return [String]
1550
+ attr_accessor :next_page_token
1551
+
1552
+ # A list of pools.
1553
+ # Corresponds to the JSON property `workloadIdentityPools`
1554
+ # @return [Array<Google::Apis::IamV1::WorkloadIdentityPool>]
1555
+ attr_accessor :workload_identity_pools
1556
+
1557
+ def initialize(**args)
1558
+ update!(**args)
1559
+ end
1560
+
1561
+ # Update properties of this object
1562
+ def update!(**args)
1563
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1564
+ @workload_identity_pools = args[:workload_identity_pools] if args.key?(:workload_identity_pools)
1565
+ end
1566
+ end
1567
+
1568
+ # Represents an OauthClient. Used to access Google Cloud resources on behalf of
1569
+ # a Workforce Identity Federation user by using OAuth 2.0 Protocol to obtain an
1570
+ # access token from Google Cloud.
1571
+ class OauthClient
1572
+ include Google::Apis::Core::Hashable
1573
+
1574
+ # Required. The list of OAuth grant types is allowed for the OauthClient.
1575
+ # Corresponds to the JSON property `allowedGrantTypes`
1576
+ # @return [Array<String>]
1577
+ attr_accessor :allowed_grant_types
1578
+
1579
+ # Required. The list of redirect uris that is allowed to redirect back when
1580
+ # authorization process is completed.
1581
+ # Corresponds to the JSON property `allowedRedirectUris`
1582
+ # @return [Array<String>]
1583
+ attr_accessor :allowed_redirect_uris
1584
+
1585
+ # Required. The list of scopes that the OauthClient is allowed to request during
1586
+ # OAuth flows. The following scopes are supported: * `https://www.googleapis.com/
1587
+ # auth/cloud-platform`: See, edit, configure, and delete your Google Cloud data
1588
+ # and see the email address for your Google Account. * `openid`: The OAuth
1589
+ # client can associate you with your personal information on Google Cloud. * `
1590
+ # email`: The OAuth client can read a federated identity's email address. * `
1591
+ # groups`: The OAuth client can read a federated identity's groups.
1592
+ # Corresponds to the JSON property `allowedScopes`
1593
+ # @return [Array<String>]
1594
+ attr_accessor :allowed_scopes
1595
+
1596
+ # Output only. The system-generated OauthClient id.
1597
+ # Corresponds to the JSON property `clientId`
1598
+ # @return [String]
1599
+ attr_accessor :client_id
1600
+
1601
+ # Immutable. The type of OauthClient. Either public or private. For private
1602
+ # clients, the client secret can be managed using the dedicated
1603
+ # OauthClientCredential resource.
1604
+ # Corresponds to the JSON property `clientType`
1605
+ # @return [String]
1606
+ attr_accessor :client_type
1607
+
1608
+ # Optional. A user-specified description of the OauthClient. Cannot exceed 256
1609
+ # characters.
1610
+ # Corresponds to the JSON property `description`
1611
+ # @return [String]
1612
+ attr_accessor :description
1613
+
1614
+ # Optional. Whether the OauthClient is disabled. You cannot use a disabled OAuth
1615
+ # client.
1616
+ # Corresponds to the JSON property `disabled`
1617
+ # @return [Boolean]
1618
+ attr_accessor :disabled
1619
+ alias_method :disabled?, :disabled
1620
+
1621
+ # Optional. A user-specified display name of the OauthClient. Cannot exceed 32
1622
+ # characters.
1623
+ # Corresponds to the JSON property `displayName`
1624
+ # @return [String]
1625
+ attr_accessor :display_name
1626
+
1627
+ # Output only. Time after which the OauthClient will be permanently purged and
1628
+ # cannot be recovered.
1629
+ # Corresponds to the JSON property `expireTime`
1630
+ # @return [String]
1631
+ attr_accessor :expire_time
1632
+
1633
+ # Immutable. Identifier. The resource name of the OauthClient. Format:`projects/`
1634
+ # project`/locations/`location`/oauthClients/`oauth_client``.
1635
+ # Corresponds to the JSON property `name`
1636
+ # @return [String]
1637
+ attr_accessor :name
1638
+
1639
+ # Output only. The state of the OauthClient.
1640
+ # Corresponds to the JSON property `state`
1641
+ # @return [String]
1642
+ attr_accessor :state
1643
+
1644
+ def initialize(**args)
1645
+ update!(**args)
1646
+ end
1647
+
1648
+ # Update properties of this object
1649
+ def update!(**args)
1650
+ @allowed_grant_types = args[:allowed_grant_types] if args.key?(:allowed_grant_types)
1651
+ @allowed_redirect_uris = args[:allowed_redirect_uris] if args.key?(:allowed_redirect_uris)
1652
+ @allowed_scopes = args[:allowed_scopes] if args.key?(:allowed_scopes)
1653
+ @client_id = args[:client_id] if args.key?(:client_id)
1654
+ @client_type = args[:client_type] if args.key?(:client_type)
1655
+ @description = args[:description] if args.key?(:description)
1656
+ @disabled = args[:disabled] if args.key?(:disabled)
1657
+ @display_name = args[:display_name] if args.key?(:display_name)
1658
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
1659
+ @name = args[:name] if args.key?(:name)
1660
+ @state = args[:state] if args.key?(:state)
1661
+ end
1662
+ end
1663
+
1664
+ # Represents an OauthClientCredential. Used to authenticate an OauthClient while
1665
+ # accessing Google Cloud resources on behalf of a user by using OAuth 2.0
1666
+ # Protocol.
1667
+ class OauthClientCredential
1668
+ include Google::Apis::Core::Hashable
1669
+
1670
+ # Output only. The system-generated OAuth client secret. The client secret must
1671
+ # be stored securely. If the client secret is leaked, you must delete and re-
1672
+ # create the client credential. To learn more, see [OAuth client and credential
1673
+ # security risks and mitigations](https://cloud.google.com/iam/docs/workforce-
1674
+ # oauth-app#security)
1675
+ # Corresponds to the JSON property `clientSecret`
1676
+ # @return [String]
1677
+ attr_accessor :client_secret
1678
+
1679
+ # Optional. Whether the OauthClientCredential is disabled. You cannot use a
1680
+ # disabled OauthClientCredential.
1681
+ # Corresponds to the JSON property `disabled`
1682
+ # @return [Boolean]
1683
+ attr_accessor :disabled
1684
+ alias_method :disabled?, :disabled
1685
+
1686
+ # Optional. A user-specified display name of the OauthClientCredential. Cannot
1687
+ # exceed 32 characters.
1688
+ # Corresponds to the JSON property `displayName`
1689
+ # @return [String]
1690
+ attr_accessor :display_name
1691
+
1692
+ # Immutable. Identifier. The resource name of the OauthClientCredential. Format:
1693
+ # `projects/`project`/locations/`location`/oauthClients/`oauth_client`/
1694
+ # credentials/`credential``
1695
+ # Corresponds to the JSON property `name`
1696
+ # @return [String]
1697
+ attr_accessor :name
1698
+
1699
+ def initialize(**args)
1700
+ update!(**args)
1701
+ end
1702
+
1703
+ # Update properties of this object
1704
+ def update!(**args)
1705
+ @client_secret = args[:client_secret] if args.key?(:client_secret)
1706
+ @disabled = args[:disabled] if args.key?(:disabled)
1707
+ @display_name = args[:display_name] if args.key?(:display_name)
1708
+ @name = args[:name] if args.key?(:name)
1709
+ end
1710
+ end
1711
+
1712
+ # Represents an OpenId Connect 1.0 identity provider.
1713
+ class Oidc
1714
+ include Google::Apis::Core::Hashable
1715
+
1716
+ # Optional. Acceptable values for the `aud` field (audience) in the OIDC token.
1717
+ # Token exchange requests are rejected if the token audience does not match one
1718
+ # of the configured values. Each audience may be at most 256 characters. A
1719
+ # maximum of 10 audiences may be configured. If this list is empty, the OIDC
1720
+ # token audience must be equal to the full canonical resource name of the
1721
+ # WorkloadIdentityPoolProvider, with or without the HTTPS prefix. For example: ``
1722
+ # ` //iam.googleapis.com/projects//locations//workloadIdentityPools//providers/
1723
+ # https://iam.googleapis.com/projects//locations//workloadIdentityPools//
1724
+ # providers/ ```
1725
+ # Corresponds to the JSON property `allowedAudiences`
1726
+ # @return [Array<String>]
1727
+ attr_accessor :allowed_audiences
1728
+
1729
+ # Required. The OIDC issuer URL. Must be an HTTPS endpoint. Per OpenID Connect
1730
+ # Discovery 1.0 spec, the OIDC issuer URL is used to locate the provider's
1731
+ # public keys (via `jwks_uri`) for verifying tokens like the OIDC ID token.
1732
+ # These public key types must be 'EC' or 'RSA'.
1733
+ # Corresponds to the JSON property `issuerUri`
1734
+ # @return [String]
1735
+ attr_accessor :issuer_uri
1736
+
1737
+ # Optional. OIDC JWKs in JSON String format. For details on the definition of a
1738
+ # JWK, see https://tools.ietf.org/html/rfc7517. If not set, the `jwks_uri` from
1739
+ # the discovery document(fetched from the .well-known path of the `issuer_uri`)
1740
+ # will be used. Currently, RSA and EC asymmetric keys are supported. The JWK
1741
+ # must use following format and include only the following fields: ` "keys": [ `
1742
+ # "kty": "RSA/EC", "alg": "", "use": "sig", "kid": "", "n": "", "e": "", "x": "",
1743
+ # "y": "", "crv": "" ` ] `
1744
+ # Corresponds to the JSON property `jwksJson`
1745
+ # @return [String]
1746
+ attr_accessor :jwks_json
1747
+
1748
+ def initialize(**args)
1749
+ update!(**args)
1750
+ end
1751
+
1752
+ # Update properties of this object
1753
+ def update!(**args)
1754
+ @allowed_audiences = args[:allowed_audiences] if args.key?(:allowed_audiences)
1755
+ @issuer_uri = args[:issuer_uri] if args.key?(:issuer_uri)
1756
+ @jwks_json = args[:jwks_json] if args.key?(:jwks_json)
1757
+ end
1758
+ end
1759
+
1760
+ # This resource represents a long-running operation that is the result of a
1761
+ # network API call.
1762
+ class Operation
1763
+ include Google::Apis::Core::Hashable
1764
+
1765
+ # If the value is `false`, it means the operation is still in progress. If `true`
1766
+ # , the operation is completed, and either `error` or `response` is available.
1767
+ # Corresponds to the JSON property `done`
1768
+ # @return [Boolean]
1769
+ attr_accessor :done
1770
+ alias_method :done?, :done
1771
+
1772
+ # The `Status` type defines a logical error model that is suitable for different
1773
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1774
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1775
+ # data: error code, error message, and error details. You can find out more
1776
+ # about this error model and how to work with it in the [API Design Guide](https:
1777
+ # //cloud.google.com/apis/design/errors).
1778
+ # Corresponds to the JSON property `error`
1779
+ # @return [Google::Apis::IamV1::Status]
1780
+ attr_accessor :error
1781
+
1782
+ # Service-specific metadata associated with the operation. It typically contains
1783
+ # progress information and common metadata such as create time. Some services
1784
+ # might not provide such metadata. Any method that returns a long-running
1785
+ # operation should document the metadata type, if any.
1786
+ # Corresponds to the JSON property `metadata`
1787
+ # @return [Hash<String,Object>]
1788
+ attr_accessor :metadata
1789
+
1790
+ # The server-assigned name, which is only unique within the same service that
1791
+ # originally returns it. If you use the default HTTP mapping, the `name` should
1792
+ # be a resource name ending with `operations/`unique_id``.
1793
+ # Corresponds to the JSON property `name`
1794
+ # @return [String]
1795
+ attr_accessor :name
1796
+
1797
+ # The normal, successful response of the operation. If the original method
1798
+ # returns no data on success, such as `Delete`, the response is `google.protobuf.
1799
+ # Empty`. If the original method is standard `Get`/`Create`/`Update`, the
1800
+ # response should be the resource. For other methods, the response should have
1801
+ # the type `XxxResponse`, where `Xxx` is the original method name. For example,
1802
+ # if the original method name is `TakeSnapshot()`, the inferred response type is
1803
+ # `TakeSnapshotResponse`.
1804
+ # Corresponds to the JSON property `response`
1805
+ # @return [Hash<String,Object>]
1806
+ attr_accessor :response
1807
+
1808
+ def initialize(**args)
1809
+ update!(**args)
1810
+ end
1811
+
1812
+ # Update properties of this object
1813
+ def update!(**args)
1814
+ @done = args[:done] if args.key?(:done)
1815
+ @error = args[:error] if args.key?(:error)
1816
+ @metadata = args[:metadata] if args.key?(:metadata)
1817
+ @name = args[:name] if args.key?(:name)
1818
+ @response = args[:response] if args.key?(:response)
1819
+ end
1820
+ end
1821
+
1822
+ # Represents the metadata of the long-running operation.
1823
+ class OperationMetadata
1824
+ include Google::Apis::Core::Hashable
1825
+
1826
+ # Output only. API version used to start the operation.
1827
+ # Corresponds to the JSON property `apiVersion`
1828
+ # @return [String]
1829
+ attr_accessor :api_version
1830
+
1831
+ # Output only. Identifies whether the user has requested cancellation of the
1832
+ # operation. Operations that have been cancelled successfully have google.
1833
+ # longrunning.Operation.error value with a google.rpc.Status.code of `1`,
1834
+ # corresponding to `Code.CANCELLED`.
1835
+ # Corresponds to the JSON property `cancelRequested`
1836
+ # @return [Boolean]
1837
+ attr_accessor :cancel_requested
1838
+ alias_method :cancel_requested?, :cancel_requested
1839
+
1840
+ # Output only. The time the operation was created.
1841
+ # Corresponds to the JSON property `createTime`
1842
+ # @return [String]
1843
+ attr_accessor :create_time
1844
+
1845
+ # Output only. The time the operation finished running.
1846
+ # Corresponds to the JSON property `endTime`
1847
+ # @return [String]
1848
+ attr_accessor :end_time
1849
+
1850
+ # Output only. Human-readable status of the operation, if any.
1851
+ # Corresponds to the JSON property `statusDetail`
1852
+ # @return [String]
1853
+ attr_accessor :status_detail
1854
+
1855
+ # Output only. Server-defined resource path for the target of the operation.
1856
+ # Corresponds to the JSON property `target`
1857
+ # @return [String]
1858
+ attr_accessor :target
1859
+
1860
+ # Output only. Name of the verb executed by the operation.
1861
+ # Corresponds to the JSON property `verb`
1862
+ # @return [String]
1863
+ attr_accessor :verb
1864
+
1865
+ def initialize(**args)
1866
+ update!(**args)
1867
+ end
1868
+
1869
+ # Update properties of this object
1870
+ def update!(**args)
1871
+ @api_version = args[:api_version] if args.key?(:api_version)
1872
+ @cancel_requested = args[:cancel_requested] if args.key?(:cancel_requested)
1873
+ @create_time = args[:create_time] if args.key?(:create_time)
1874
+ @end_time = args[:end_time] if args.key?(:end_time)
1875
+ @status_detail = args[:status_detail] if args.key?(:status_detail)
1876
+ @target = args[:target] if args.key?(:target)
1877
+ @verb = args[:verb] if args.key?(:verb)
1878
+ end
1879
+ end
1880
+
1881
+ # The Google Cloud service that owns this namespace.
1882
+ class OwnerService
1883
+ include Google::Apis::Core::Hashable
1884
+
1885
+ # Required. The service agent principal subject, e.g. "serviceAccount:service-
1886
+ # 1234@gcp-sa-gkehub.iam.gserviceaccount.com".
1887
+ # Corresponds to the JSON property `principalSubject`
1888
+ # @return [String]
1889
+ attr_accessor :principal_subject
1890
+
1891
+ def initialize(**args)
1892
+ update!(**args)
1893
+ end
1894
+
1895
+ # Update properties of this object
1896
+ def update!(**args)
1897
+ @principal_subject = args[:principal_subject] if args.key?(:principal_subject)
1898
+ end
1899
+ end
1900
+
1901
+ # The service account patch request. You can patch only the `display_name` and `
856
1902
  # description` fields. You must use the `update_mask` field to specify which of
857
1903
  # these fields you want to patch. Only the fields specified in the request are
858
1904
  # guaranteed to be returned in the response. Other fields may be empty in the
@@ -866,7 +1912,7 @@ module Google
866
1912
  # https://cloud.google.com/iam/help/service-accounts/overview). When you create
867
1913
  # a service account, you specify the project ID that owns the service account,
868
1914
  # as well as a name that must be unique within the project. IAM uses these
869
- # values to create an email address that identifies the service //
1915
+ # values to create an email address that identifies the service account. //
870
1916
  # Corresponds to the JSON property `serviceAccount`
871
1917
  # @return [Google::Apis::IamV1::ServiceAccount]
872
1918
  attr_accessor :service_account
@@ -902,8 +1948,7 @@ module Google
902
1948
  # @return [String]
903
1949
  attr_accessor :custom_roles_support_level
904
1950
 
905
- # A brief description of what this Permission is used for. This permission can
906
- # ONLY be used in predefined roles.
1951
+ # A brief description of what this Permission is used for.
907
1952
  # Corresponds to the JSON property `description`
908
1953
  # @return [String]
909
1954
  attr_accessor :description
@@ -989,22 +2034,22 @@ module Google
989
2034
  # evaluates to `true`. A condition can add constraints based on attributes of
990
2035
  # the request, the resource, or both. To learn which resources support
991
2036
  # conditions in their IAM policies, see the [IAM documentation](https://cloud.
992
- # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
2037
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
993
2038
  # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
994
2039
  # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
995
2040
  # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
996
2041
  # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
997
2042
  # ], "condition": ` "title": "expirable access", "description": "Does not grant
998
2043
  # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
999
- # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
1000
- # bindings: - members: - user:mike@example.com - group:admins@example.com -
1001
- # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
1002
- # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
1003
- # com role: roles/resourcemanager.organizationViewer condition: title: expirable
1004
- # access description: Does not grant access after Sep 2020 expression: request.
1005
- # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
1006
- # a description of IAM and its features, see the [IAM documentation](https://
1007
- # cloud.google.com/iam/docs/).
2044
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
2045
+ # example:** ``` bindings: - members: - user:mike@example.com - group:admins@
2046
+ # example.com - domain:google.com - serviceAccount:my-project-id@appspot.
2047
+ # gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
2048
+ # user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
2049
+ # title: expirable access description: Does not grant access after Sep 2020
2050
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
2051
+ # BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
2052
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
1008
2053
  class Policy
1009
2054
  include Google::Apis::Core::Hashable
1010
2055
 
@@ -1137,16 +2182,16 @@ module Google
1137
2182
  class QueryGrantableRolesRequest
1138
2183
  include Google::Apis::Core::Hashable
1139
2184
 
1140
- # Required. The full resource name to query from the list of grantable roles.
1141
- # The name follows the Google Cloud Platform resource format. For example, a
1142
- # Cloud Platform project with id `my-project` will be named `//
2185
+ # Required. Required. The full resource name to query from the list of grantable
2186
+ # roles. The name follows the Google Cloud Platform resource format. For example,
2187
+ # a Cloud Platform project with id `my-project` will be named `//
1143
2188
  # cloudresourcemanager.googleapis.com/projects/my-project`.
1144
2189
  # Corresponds to the JSON property `fullResourceName`
1145
2190
  # @return [String]
1146
2191
  attr_accessor :full_resource_name
1147
2192
 
1148
2193
  # Optional limit on the number of roles to include in the response. The default
1149
- # is 300, and the maximum is 1,000.
2194
+ # is 300, and the maximum is 2,000.
1150
2195
  # Corresponds to the JSON property `pageSize`
1151
2196
  # @return [Fixnum]
1152
2197
  attr_accessor :page_size
@@ -1218,11 +2263,64 @@ module Google
1218
2263
  # @return [Fixnum]
1219
2264
  attr_accessor :page_size
1220
2265
 
1221
- # Optional pagination token returned in an earlier
1222
- # QueryTestablePermissionsRequest.
1223
- # Corresponds to the JSON property `pageToken`
2266
+ # Optional pagination token returned in an earlier
2267
+ # QueryTestablePermissionsRequest.
2268
+ # Corresponds to the JSON property `pageToken`
2269
+ # @return [String]
2270
+ attr_accessor :page_token
2271
+
2272
+ def initialize(**args)
2273
+ update!(**args)
2274
+ end
2275
+
2276
+ # Update properties of this object
2277
+ def update!(**args)
2278
+ @full_resource_name = args[:full_resource_name] if args.key?(:full_resource_name)
2279
+ @page_size = args[:page_size] if args.key?(:page_size)
2280
+ @page_token = args[:page_token] if args.key?(:page_token)
2281
+ end
2282
+ end
2283
+
2284
+ # The response containing permissions which can be tested on a resource.
2285
+ class QueryTestablePermissionsResponse
2286
+ include Google::Apis::Core::Hashable
2287
+
2288
+ # To retrieve the next page of results, set `QueryTestableRolesRequest.
2289
+ # page_token` to this value.
2290
+ # Corresponds to the JSON property `nextPageToken`
2291
+ # @return [String]
2292
+ attr_accessor :next_page_token
2293
+
2294
+ # The Permissions testable on the requested resource.
2295
+ # Corresponds to the JSON property `permissions`
2296
+ # @return [Array<Google::Apis::IamV1::Permission>]
2297
+ attr_accessor :permissions
2298
+
2299
+ def initialize(**args)
2300
+ update!(**args)
2301
+ end
2302
+
2303
+ # Update properties of this object
2304
+ def update!(**args)
2305
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2306
+ @permissions = args[:permissions] if args.key?(:permissions)
2307
+ end
2308
+ end
2309
+
2310
+ # Operation metadata returned by the CLH during resource state reconciliation.
2311
+ class ReconciliationOperationMetadata
2312
+ include Google::Apis::Core::Hashable
2313
+
2314
+ # DEPRECATED. Use exclusive_action instead.
2315
+ # Corresponds to the JSON property `deleteResource`
2316
+ # @return [Boolean]
2317
+ attr_accessor :delete_resource
2318
+ alias_method :delete_resource?, :delete_resource
2319
+
2320
+ # Excluisive action returned by the CLH.
2321
+ # Corresponds to the JSON property `exclusiveAction`
1224
2322
  # @return [String]
1225
- attr_accessor :page_token
2323
+ attr_accessor :exclusive_action
1226
2324
 
1227
2325
  def initialize(**args)
1228
2326
  update!(**args)
@@ -1230,26 +2328,21 @@ module Google
1230
2328
 
1231
2329
  # Update properties of this object
1232
2330
  def update!(**args)
1233
- @full_resource_name = args[:full_resource_name] if args.key?(:full_resource_name)
1234
- @page_size = args[:page_size] if args.key?(:page_size)
1235
- @page_token = args[:page_token] if args.key?(:page_token)
2331
+ @delete_resource = args[:delete_resource] if args.key?(:delete_resource)
2332
+ @exclusive_action = args[:exclusive_action] if args.key?(:exclusive_action)
1236
2333
  end
1237
2334
  end
1238
2335
 
1239
- # The response containing permissions which can be tested on a resource.
1240
- class QueryTestablePermissionsResponse
2336
+ # Request message for RemoveAttestationRule.
2337
+ class RemoveAttestationRuleRequest
1241
2338
  include Google::Apis::Core::Hashable
1242
2339
 
1243
- # To retrieve the next page of results, set `QueryTestableRolesRequest.
1244
- # page_token` to this value.
1245
- # Corresponds to the JSON property `nextPageToken`
1246
- # @return [String]
1247
- attr_accessor :next_page_token
1248
-
1249
- # The Permissions testable on the requested resource.
1250
- # Corresponds to the JSON property `permissions`
1251
- # @return [Array<Google::Apis::IamV1::Permission>]
1252
- attr_accessor :permissions
2340
+ # Defines which workloads can receive an identity within a pool. When an
2341
+ # AttestationRule is defined under a managed identity, matching workloads may
2342
+ # receive that identity.
2343
+ # Corresponds to the JSON property `attestationRule`
2344
+ # @return [Google::Apis::IamV1::AttestationRule]
2345
+ attr_accessor :attestation_rule
1253
2346
 
1254
2347
  def initialize(**args)
1255
2348
  update!(**args)
@@ -1257,8 +2350,7 @@ module Google
1257
2350
 
1258
2351
  # Update properties of this object
1259
2352
  def update!(**args)
1260
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1261
- @permissions = args[:permissions] if args.key?(:permissions)
2353
+ @attestation_rule = args[:attestation_rule] if args.key?(:attestation_rule)
1262
2354
  end
1263
2355
  end
1264
2356
 
@@ -1289,11 +2381,12 @@ module Google
1289
2381
  # @return [Array<String>]
1290
2382
  attr_accessor :included_permissions
1291
2383
 
1292
- # The name of the role. When Role is used in CreateRole, the role name must not
1293
- # be set. When Role is used in output and other input such as UpdateRole, the
1294
- # role name is the complete path, e.g., roles/logging.viewer for predefined
1295
- # roles and organizations/`ORGANIZATION_ID`/roles/logging.viewer for custom
1296
- # roles.
2384
+ # The name of the role. When `Role` is used in `CreateRole`, the role name must
2385
+ # not be set. When `Role` is used in output and other input such as `UpdateRole`,
2386
+ # the role name is the complete path. For example, `roles/logging.viewer` for
2387
+ # predefined roles, `organizations/`ORGANIZATION_ID`/roles/myRole` for
2388
+ # organization-level custom roles, and `projects/`PROJECT_ID`/roles/myRole` for
2389
+ # project-level custom roles.
1297
2390
  # Corresponds to the JSON property `name`
1298
2391
  # @return [String]
1299
2392
  attr_accessor :name
@@ -1331,18 +2424,18 @@ module Google
1331
2424
  class Saml
1332
2425
  include Google::Apis::Core::Hashable
1333
2426
 
1334
- # Required. SAML Identity provider configuration metadata xml doc. The xml
1335
- # document should comply with [SAML 2.0 specification](https://www.oasis-open.
1336
- # org/committees/download.php/56785/sstc-saml-metadata-errata-2.0-wd-05.pdf).
1337
- # The max size of the acceptable xml document will be bounded to 128k characters.
1338
- # The metadata xml document should satisfy the following constraints: 1) Must
1339
- # contain an Identity Provider Entity ID. 2) Must contain at least one non-
1340
- # expired signing key certificate. 3) For each signing key: a) Valid from should
1341
- # be no more than 7 days from now. b) Valid to should be no more than 14 years
1342
- # in the future. 4) Upto 3 IdP signing keys are allowed in the metadata xml.
1343
- # When updating the provider's metadata xml, at lease one non-expired signing
1344
- # key must overlap with the existing metadata. This requirement is skipped if
1345
- # there are no non-expired signing keys present in the existing metadata
2427
+ # Required. SAML identity provider (IdP) configuration metadata XML doc. The XML
2428
+ # document must comply with the [SAML 2.0 specification](https://docs.oasis-open.
2429
+ # org/security/saml/v2.0/saml-metadata-2.0-os.pdf). The maximum size of an
2430
+ # acceptable XML document is 128K characters. The SAML metadata XML document
2431
+ # must satisfy the following constraints: * Must contain an IdP Entity ID. *
2432
+ # Must contain at least one non-expired signing certificate. * For each signing
2433
+ # certificate, the expiration must be: * From no more than 7 days in the future.
2434
+ # * To no more than 25 years in the future. * Up to three IdP signing keys are
2435
+ # allowed. When updating the provider's metadata XML, at least one non-expired
2436
+ # signing key must overlap with the existing metadata. This requirement is
2437
+ # skipped if there are no non-expired signing keys present in the existing
2438
+ # metadata.
1346
2439
  # Corresponds to the JSON property `idpMetadataXml`
1347
2440
  # @return [String]
1348
2441
  attr_accessor :idp_metadata_xml
@@ -1363,7 +2456,7 @@ module Google
1363
2456
  # https://cloud.google.com/iam/help/service-accounts/overview). When you create
1364
2457
  # a service account, you specify the project ID that owns the service account,
1365
2458
  # as well as a name that must be unique within the project. IAM uses these
1366
- # values to create an email address that identifies the service //
2459
+ # values to create an email address that identifies the service account. //
1367
2460
  class ServiceAccount
1368
2461
  include Google::Apis::Core::Hashable
1369
2462
 
@@ -1402,10 +2495,10 @@ module Google
1402
2495
  # character instead of the project ID: * `projects/-/serviceAccounts/`
1403
2496
  # EMAIL_ADDRESS`` * `projects/-/serviceAccounts/`UNIQUE_ID`` When possible,
1404
2497
  # avoid using the `-` wildcard character, because it can cause response messages
1405
- # to contain misleading error codes. For example, if you try to get the service
1406
- # account `projects/-/serviceAccounts/fake@example.com`, which does not exist,
1407
- # the response contains an HTTP `403 Forbidden` error instead of a `404 Not
1408
- # Found` error.
2498
+ # to contain misleading error codes. For example, if you try to access the
2499
+ # service account `projects/-/serviceAccounts/fake@example.com`, which does not
2500
+ # exist, the response contains an HTTP `403 Forbidden` error instead of a `404
2501
+ # Not Found` error.
1409
2502
  # Corresponds to the JSON property `name`
1410
2503
  # @return [String]
1411
2504
  attr_accessor :name
@@ -1465,12 +2558,26 @@ module Google
1465
2558
  class ServiceAccountKey
1466
2559
  include Google::Apis::Core::Hashable
1467
2560
 
2561
+ # Output only. optional. If the key is disabled, it may have a DisableReason
2562
+ # describing why it was disabled.
2563
+ # Corresponds to the JSON property `disableReason`
2564
+ # @return [String]
2565
+ attr_accessor :disable_reason
2566
+
1468
2567
  # The key status.
1469
2568
  # Corresponds to the JSON property `disabled`
1470
2569
  # @return [Boolean]
1471
2570
  attr_accessor :disabled
1472
2571
  alias_method :disabled?, :disabled
1473
2572
 
2573
+ # Output only. Extended Status provides permanent information about a service
2574
+ # account key. For example, if this key was detected as exposed or compromised,
2575
+ # that information will remain for the lifetime of the key in the
2576
+ # extended_status.
2577
+ # Corresponds to the JSON property `extendedStatus`
2578
+ # @return [Array<Google::Apis::IamV1::ExtendedStatus>]
2579
+ attr_accessor :extended_status
2580
+
1474
2581
  # Specifies the algorithm (and possibly key size) for the key.
1475
2582
  # Corresponds to the JSON property `keyAlgorithm`
1476
2583
  # @return [String]
@@ -1534,7 +2641,9 @@ module Google
1534
2641
 
1535
2642
  # Update properties of this object
1536
2643
  def update!(**args)
2644
+ @disable_reason = args[:disable_reason] if args.key?(:disable_reason)
1537
2645
  @disabled = args[:disabled] if args.key?(:disabled)
2646
+ @extended_status = args[:extended_status] if args.key?(:extended_status)
1538
2647
  @key_algorithm = args[:key_algorithm] if args.key?(:key_algorithm)
1539
2648
  @key_origin = args[:key_origin] if args.key?(:key_origin)
1540
2649
  @key_type = args[:key_type] if args.key?(:key_type)
@@ -1547,6 +2656,45 @@ module Google
1547
2656
  end
1548
2657
  end
1549
2658
 
2659
+ # Configuration for a service.
2660
+ class ServiceConfig
2661
+ include Google::Apis::Core::Hashable
2662
+
2663
+ # Optional. Domain name of the service. Example: console.cloud.google
2664
+ # Corresponds to the JSON property `domain`
2665
+ # @return [String]
2666
+ attr_accessor :domain
2667
+
2668
+ def initialize(**args)
2669
+ update!(**args)
2670
+ end
2671
+
2672
+ # Update properties of this object
2673
+ def update!(**args)
2674
+ @domain = args[:domain] if args.key?(:domain)
2675
+ end
2676
+ end
2677
+
2678
+ # Request message for SetAttestationRules.
2679
+ class SetAttestationRulesRequest
2680
+ include Google::Apis::Core::Hashable
2681
+
2682
+ # Required. The attestation rules to be set. At most 50 attestation rules can be
2683
+ # set.
2684
+ # Corresponds to the JSON property `attestationRules`
2685
+ # @return [Array<Google::Apis::IamV1::AttestationRule>]
2686
+ attr_accessor :attestation_rules
2687
+
2688
+ def initialize(**args)
2689
+ update!(**args)
2690
+ end
2691
+
2692
+ # Update properties of this object
2693
+ def update!(**args)
2694
+ @attestation_rules = args[:attestation_rules] if args.key?(:attestation_rules)
2695
+ end
2696
+ end
2697
+
1550
2698
  # Request message for `SetIamPolicy` method.
1551
2699
  class SetIamPolicyRequest
1552
2700
  include Google::Apis::Core::Hashable
@@ -1562,22 +2710,22 @@ module Google
1562
2710
  # evaluates to `true`. A condition can add constraints based on attributes of
1563
2711
  # the request, the resource, or both. To learn which resources support
1564
2712
  # conditions in their IAM policies, see the [IAM documentation](https://cloud.
1565
- # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
2713
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
1566
2714
  # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
1567
2715
  # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
1568
2716
  # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
1569
2717
  # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
1570
2718
  # ], "condition": ` "title": "expirable access", "description": "Does not grant
1571
2719
  # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
1572
- # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
1573
- # bindings: - members: - user:mike@example.com - group:admins@example.com -
1574
- # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
1575
- # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
1576
- # com role: roles/resourcemanager.organizationViewer condition: title: expirable
1577
- # access description: Does not grant access after Sep 2020 expression: request.
1578
- # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
1579
- # a description of IAM and its features, see the [IAM documentation](https://
1580
- # cloud.google.com/iam/docs/).
2720
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
2721
+ # example:** ``` bindings: - members: - user:mike@example.com - group:admins@
2722
+ # example.com - domain:google.com - serviceAccount:my-project-id@appspot.
2723
+ # gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
2724
+ # user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
2725
+ # title: expirable access description: Does not grant access after Sep 2020
2726
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
2727
+ # BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
2728
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
1581
2729
  # Corresponds to the JSON property `policy`
1582
2730
  # @return [Google::Apis::IamV1::Policy]
1583
2731
  attr_accessor :policy
@@ -1762,38 +2910,278 @@ module Google
1762
2910
 
1763
2911
  # Update properties of this object
1764
2912
  def update!(**args)
1765
- @permissions = args[:permissions] if args.key?(:permissions)
2913
+ @permissions = args[:permissions] if args.key?(:permissions)
2914
+ end
2915
+ end
2916
+
2917
+ # Response message for `TestIamPermissions` method.
2918
+ class TestIamPermissionsResponse
2919
+ include Google::Apis::Core::Hashable
2920
+
2921
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
2922
+ # Corresponds to the JSON property `permissions`
2923
+ # @return [Array<String>]
2924
+ attr_accessor :permissions
2925
+
2926
+ def initialize(**args)
2927
+ update!(**args)
2928
+ end
2929
+
2930
+ # Update properties of this object
2931
+ def update!(**args)
2932
+ @permissions = args[:permissions] if args.key?(:permissions)
2933
+ end
2934
+ end
2935
+
2936
+ # Represents a root of trust.
2937
+ class TrustAnchor
2938
+ include Google::Apis::Core::Hashable
2939
+
2940
+ # PEM certificate of the PKI used for validation. Must only contain one ca
2941
+ # certificate(either root or intermediate cert).
2942
+ # Corresponds to the JSON property `pemCertificate`
2943
+ # @return [String]
2944
+ attr_accessor :pem_certificate
2945
+
2946
+ def initialize(**args)
2947
+ update!(**args)
2948
+ end
2949
+
2950
+ # Update properties of this object
2951
+ def update!(**args)
2952
+ @pem_certificate = args[:pem_certificate] if args.key?(:pem_certificate)
2953
+ end
2954
+ end
2955
+
2956
+ # Trust store that contains trust anchors and optional intermediate CAs used in
2957
+ # PKI to build a trust chain(trust hierarchy) and verify a client's identity.
2958
+ class TrustStore
2959
+ include Google::Apis::Core::Hashable
2960
+
2961
+ # Optional. Set of intermediate CA certificates used for building the trust
2962
+ # chain to the trust anchor. Important: Intermediate CAs are only supported for
2963
+ # X.509 federation.
2964
+ # Corresponds to the JSON property `intermediateCas`
2965
+ # @return [Array<Google::Apis::IamV1::IntermediateCa>]
2966
+ attr_accessor :intermediate_cas
2967
+
2968
+ # Required. List of trust anchors to be used while performing validation against
2969
+ # a given TrustStore. The incoming end entity's certificate must be in the trust
2970
+ # chain of one of the trust anchors here.
2971
+ # Corresponds to the JSON property `trustAnchors`
2972
+ # @return [Array<Google::Apis::IamV1::TrustAnchor>]
2973
+ attr_accessor :trust_anchors
2974
+
2975
+ def initialize(**args)
2976
+ update!(**args)
2977
+ end
2978
+
2979
+ # Update properties of this object
2980
+ def update!(**args)
2981
+ @intermediate_cas = args[:intermediate_cas] if args.key?(:intermediate_cas)
2982
+ @trust_anchors = args[:trust_anchors] if args.key?(:trust_anchors)
2983
+ end
2984
+ end
2985
+
2986
+ # Request message for UndeleteOauthClient.
2987
+ class UndeleteOauthClientRequest
2988
+ include Google::Apis::Core::Hashable
2989
+
2990
+ def initialize(**args)
2991
+ update!(**args)
2992
+ end
2993
+
2994
+ # Update properties of this object
2995
+ def update!(**args)
2996
+ end
2997
+ end
2998
+
2999
+ # The request to undelete an existing role.
3000
+ class UndeleteRoleRequest
3001
+ include Google::Apis::Core::Hashable
3002
+
3003
+ # Used to perform a consistent read-modify-write.
3004
+ # Corresponds to the JSON property `etag`
3005
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
3006
+ # @return [String]
3007
+ attr_accessor :etag
3008
+
3009
+ def initialize(**args)
3010
+ update!(**args)
3011
+ end
3012
+
3013
+ # Update properties of this object
3014
+ def update!(**args)
3015
+ @etag = args[:etag] if args.key?(:etag)
3016
+ end
3017
+ end
3018
+
3019
+ # The service account undelete request.
3020
+ class UndeleteServiceAccountRequest
3021
+ include Google::Apis::Core::Hashable
3022
+
3023
+ def initialize(**args)
3024
+ update!(**args)
3025
+ end
3026
+
3027
+ # Update properties of this object
3028
+ def update!(**args)
3029
+ end
3030
+ end
3031
+
3032
+ #
3033
+ class UndeleteServiceAccountResponse
3034
+ include Google::Apis::Core::Hashable
3035
+
3036
+ # An IAM service account. A service account is an account for an application or
3037
+ # a virtual machine (VM) instance, not a person. You can use a service account
3038
+ # to call Google APIs. To learn more, read the [overview of service accounts](
3039
+ # https://cloud.google.com/iam/help/service-accounts/overview). When you create
3040
+ # a service account, you specify the project ID that owns the service account,
3041
+ # as well as a name that must be unique within the project. IAM uses these
3042
+ # values to create an email address that identifies the service account. //
3043
+ # Corresponds to the JSON property `restoredAccount`
3044
+ # @return [Google::Apis::IamV1::ServiceAccount]
3045
+ attr_accessor :restored_account
3046
+
3047
+ def initialize(**args)
3048
+ update!(**args)
3049
+ end
3050
+
3051
+ # Update properties of this object
3052
+ def update!(**args)
3053
+ @restored_account = args[:restored_account] if args.key?(:restored_account)
3054
+ end
3055
+ end
3056
+
3057
+ # Request message for UndeleteWorkforcePoolProviderKey.
3058
+ class UndeleteWorkforcePoolProviderKeyRequest
3059
+ include Google::Apis::Core::Hashable
3060
+
3061
+ def initialize(**args)
3062
+ update!(**args)
3063
+ end
3064
+
3065
+ # Update properties of this object
3066
+ def update!(**args)
3067
+ end
3068
+ end
3069
+
3070
+ # Request message for UndeleteWorkforcePoolProvider.
3071
+ class UndeleteWorkforcePoolProviderRequest
3072
+ include Google::Apis::Core::Hashable
3073
+
3074
+ def initialize(**args)
3075
+ update!(**args)
3076
+ end
3077
+
3078
+ # Update properties of this object
3079
+ def update!(**args)
3080
+ end
3081
+ end
3082
+
3083
+ # Request message for UndeleteWorkforcePool.
3084
+ class UndeleteWorkforcePoolRequest
3085
+ include Google::Apis::Core::Hashable
3086
+
3087
+ def initialize(**args)
3088
+ update!(**args)
3089
+ end
3090
+
3091
+ # Update properties of this object
3092
+ def update!(**args)
3093
+ end
3094
+ end
3095
+
3096
+ # Request message for UndeleteWorkforcePoolSubject.
3097
+ class UndeleteWorkforcePoolSubjectRequest
3098
+ include Google::Apis::Core::Hashable
3099
+
3100
+ def initialize(**args)
3101
+ update!(**args)
3102
+ end
3103
+
3104
+ # Update properties of this object
3105
+ def update!(**args)
3106
+ end
3107
+ end
3108
+
3109
+ # Request message for UndeleteWorkloadIdentityPoolManagedIdentity.
3110
+ class UndeleteWorkloadIdentityPoolManagedIdentityRequest
3111
+ include Google::Apis::Core::Hashable
3112
+
3113
+ def initialize(**args)
3114
+ update!(**args)
3115
+ end
3116
+
3117
+ # Update properties of this object
3118
+ def update!(**args)
3119
+ end
3120
+ end
3121
+
3122
+ # Request message for UndeleteWorkloadIdentityPoolNamespace.
3123
+ class UndeleteWorkloadIdentityPoolNamespaceRequest
3124
+ include Google::Apis::Core::Hashable
3125
+
3126
+ def initialize(**args)
3127
+ update!(**args)
3128
+ end
3129
+
3130
+ # Update properties of this object
3131
+ def update!(**args)
3132
+ end
3133
+ end
3134
+
3135
+ # Request message for UndeleteWorkloadIdentityPoolProviderKey.
3136
+ class UndeleteWorkloadIdentityPoolProviderKeyRequest
3137
+ include Google::Apis::Core::Hashable
3138
+
3139
+ def initialize(**args)
3140
+ update!(**args)
3141
+ end
3142
+
3143
+ # Update properties of this object
3144
+ def update!(**args)
3145
+ end
3146
+ end
3147
+
3148
+ # Request message for UndeleteWorkloadIdentityPoolProvider.
3149
+ class UndeleteWorkloadIdentityPoolProviderRequest
3150
+ include Google::Apis::Core::Hashable
3151
+
3152
+ def initialize(**args)
3153
+ update!(**args)
3154
+ end
3155
+
3156
+ # Update properties of this object
3157
+ def update!(**args)
1766
3158
  end
1767
3159
  end
1768
3160
 
1769
- # Response message for `TestIamPermissions` method.
1770
- class TestIamPermissionsResponse
3161
+ # Request message for UndeleteWorkloadIdentityPool.
3162
+ class UndeleteWorkloadIdentityPoolRequest
1771
3163
  include Google::Apis::Core::Hashable
1772
3164
 
1773
- # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
1774
- # Corresponds to the JSON property `permissions`
1775
- # @return [Array<String>]
1776
- attr_accessor :permissions
1777
-
1778
3165
  def initialize(**args)
1779
3166
  update!(**args)
1780
3167
  end
1781
3168
 
1782
3169
  # Update properties of this object
1783
3170
  def update!(**args)
1784
- @permissions = args[:permissions] if args.key?(:permissions)
1785
3171
  end
1786
3172
  end
1787
3173
 
1788
- # The request to undelete an existing role.
1789
- class UndeleteRoleRequest
3174
+ # The service account key upload request.
3175
+ class UploadServiceAccountKeyRequest
1790
3176
  include Google::Apis::Core::Hashable
1791
3177
 
1792
- # Used to perform a consistent read-modify-write.
1793
- # Corresponds to the JSON property `etag`
3178
+ # The public key to associate with the service account. Must be an RSA public
3179
+ # key that is wrapped in an X.509 v3 certificate. Include the first line, `-----
3180
+ # BEGIN CERTIFICATE-----`, and the last line, `-----END CERTIFICATE-----`.
3181
+ # Corresponds to the JSON property `publicKeyData`
1794
3182
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
1795
3183
  # @return [String]
1796
- attr_accessor :etag
3184
+ attr_accessor :public_key_data
1797
3185
 
1798
3186
  def initialize(**args)
1799
3187
  update!(**args)
@@ -1801,37 +3189,220 @@ module Google
1801
3189
 
1802
3190
  # Update properties of this object
1803
3191
  def update!(**args)
1804
- @etag = args[:etag] if args.key?(:etag)
3192
+ @public_key_data = args[:public_key_data] if args.key?(:public_key_data)
1805
3193
  end
1806
3194
  end
1807
3195
 
1808
- # The service account undelete request.
1809
- class UndeleteServiceAccountRequest
3196
+ # Represents a collection of external workforces. Provides namespaces for
3197
+ # federated users that can be referenced in IAM policies.
3198
+ class WorkforcePool
1810
3199
  include Google::Apis::Core::Hashable
1811
3200
 
3201
+ # Access related restrictions on the workforce pool.
3202
+ # Corresponds to the JSON property `accessRestrictions`
3203
+ # @return [Google::Apis::IamV1::AccessRestrictions]
3204
+ attr_accessor :access_restrictions
3205
+
3206
+ # Optional. A user-specified description of the pool. Cannot exceed 256
3207
+ # characters.
3208
+ # Corresponds to the JSON property `description`
3209
+ # @return [String]
3210
+ attr_accessor :description
3211
+
3212
+ # Optional. Disables the workforce pool. You cannot use a disabled pool to
3213
+ # exchange tokens, or use existing tokens to access resources. If the pool is re-
3214
+ # enabled, existing tokens grant access again.
3215
+ # Corresponds to the JSON property `disabled`
3216
+ # @return [Boolean]
3217
+ attr_accessor :disabled
3218
+ alias_method :disabled?, :disabled
3219
+
3220
+ # Optional. A user-specified display name of the pool in Google Cloud Console.
3221
+ # Cannot exceed 32 characters.
3222
+ # Corresponds to the JSON property `displayName`
3223
+ # @return [String]
3224
+ attr_accessor :display_name
3225
+
3226
+ # Output only. Time after which the workforce pool will be permanently purged
3227
+ # and cannot be recovered.
3228
+ # Corresponds to the JSON property `expireTime`
3229
+ # @return [String]
3230
+ attr_accessor :expire_time
3231
+
3232
+ # Identifier. The resource name of the pool. Format: `locations/`location`/
3233
+ # workforcePools/`workforce_pool_id``
3234
+ # Corresponds to the JSON property `name`
3235
+ # @return [String]
3236
+ attr_accessor :name
3237
+
3238
+ # Immutable. The resource name of the parent. Format: `organizations/`org-id``.
3239
+ # Corresponds to the JSON property `parent`
3240
+ # @return [String]
3241
+ attr_accessor :parent
3242
+
3243
+ # Optional. Duration that the Google Cloud access tokens, console sign-in
3244
+ # sessions, and `gcloud` sign-in sessions from this pool are valid. Must be
3245
+ # greater than 15 minutes (900s) and less than 12 hours (43200s). If `
3246
+ # session_duration` is not configured, minted credentials have a default
3247
+ # duration of one hour (3600s). For SAML providers, the lifetime of the token is
3248
+ # the minimum of the `session_duration` and the `SessionNotOnOrAfter` claim in
3249
+ # the SAML assertion.
3250
+ # Corresponds to the JSON property `sessionDuration`
3251
+ # @return [String]
3252
+ attr_accessor :session_duration
3253
+
3254
+ # Output only. The state of the pool.
3255
+ # Corresponds to the JSON property `state`
3256
+ # @return [String]
3257
+ attr_accessor :state
3258
+
1812
3259
  def initialize(**args)
1813
3260
  update!(**args)
1814
3261
  end
1815
3262
 
1816
3263
  # Update properties of this object
1817
3264
  def update!(**args)
3265
+ @access_restrictions = args[:access_restrictions] if args.key?(:access_restrictions)
3266
+ @description = args[:description] if args.key?(:description)
3267
+ @disabled = args[:disabled] if args.key?(:disabled)
3268
+ @display_name = args[:display_name] if args.key?(:display_name)
3269
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
3270
+ @name = args[:name] if args.key?(:name)
3271
+ @parent = args[:parent] if args.key?(:parent)
3272
+ @session_duration = args[:session_duration] if args.key?(:session_duration)
3273
+ @state = args[:state] if args.key?(:state)
1818
3274
  end
1819
3275
  end
1820
3276
 
1821
- #
1822
- class UndeleteServiceAccountResponse
3277
+ # A configuration for an external identity provider.
3278
+ class WorkforcePoolProvider
1823
3279
  include Google::Apis::Core::Hashable
1824
3280
 
1825
- # An IAM service account. A service account is an account for an application or
1826
- # a virtual machine (VM) instance, not a person. You can use a service account
1827
- # to call Google APIs. To learn more, read the [overview of service accounts](
1828
- # https://cloud.google.com/iam/help/service-accounts/overview). When you create
1829
- # a service account, you specify the project ID that owns the service account,
1830
- # as well as a name that must be unique within the project. IAM uses these
1831
- # values to create an email address that identifies the service //
1832
- # Corresponds to the JSON property `restoredAccount`
1833
- # @return [Google::Apis::IamV1::ServiceAccount]
1834
- attr_accessor :restored_account
3281
+ # Optional. A [Common Expression Language](https://opensource.google/projects/
3282
+ # cel) expression, in plain text, to restrict what otherwise valid
3283
+ # authentication credentials issued by the provider should not be accepted. The
3284
+ # expression must output a boolean representing whether to allow the federation.
3285
+ # The following keywords may be referenced in the expressions: * `assertion`:
3286
+ # JSON representing the authentication credential issued by the provider. * `
3287
+ # google`: The Google attributes mapped from the assertion in the `
3288
+ # attribute_mappings`. `google.profile_photo`, `google.display_name` and `google.
3289
+ # posix_username` are not supported. * `attribute`: The custom attributes mapped
3290
+ # from the assertion in the `attribute_mappings`. The maximum length of the
3291
+ # attribute condition expression is 4096 characters. If unspecified, all valid
3292
+ # authentication credentials will be accepted. The following example shows how
3293
+ # to only allow credentials with a mapped `google.groups` value of `admins`: ```
3294
+ # "'admins' in google.groups" ```
3295
+ # Corresponds to the JSON property `attributeCondition`
3296
+ # @return [String]
3297
+ attr_accessor :attribute_condition
3298
+
3299
+ # Required. Maps attributes from the authentication credentials issued by an
3300
+ # external identity provider to Google Cloud attributes, such as `subject` and `
3301
+ # segment`. Each key must be a string specifying the Google Cloud IAM attribute
3302
+ # to map to. The following keys are supported: * `google.subject`: The principal
3303
+ # IAM is authenticating. You can reference this value in IAM bindings. This is
3304
+ # also the subject that appears in Cloud Logging logs. This is a required field
3305
+ # and the mapped subject cannot exceed 127 bytes. * `google.groups`: Groups the
3306
+ # authenticating user belongs to. You can grant groups access to resources using
3307
+ # an IAM `principalSet` binding; access applies to all members of the group. * `
3308
+ # google.display_name`: The name of the authenticated user. This is an optional
3309
+ # field and the mapped display name cannot exceed 100 bytes. If not set, `google.
3310
+ # subject` will be displayed instead. This attribute cannot be referenced in IAM
3311
+ # bindings. * `google.profile_photo`: The URL that specifies the authenticated
3312
+ # user's thumbnail photo. This is an optional field. When set, the image will be
3313
+ # visible as the user's profile picture. If not set, a generic user icon will be
3314
+ # displayed instead. This attribute cannot be referenced in IAM bindings. * `
3315
+ # google.posix_username`: The Linux username used by OS Login. This is an
3316
+ # optional field and the mapped POSIX username cannot exceed 32 characters, The
3317
+ # key must match the regex "^a-zA-Z0-9._`0,31`$". This attribute cannot be
3318
+ # referenced in IAM bindings. You can also provide custom attributes by
3319
+ # specifying `attribute.`custom_attribute``, where `custom_attribute` is the
3320
+ # name of the custom attribute to be mapped. You can define a maximum of 50
3321
+ # custom attributes. The maximum length of a mapped attribute key is 100
3322
+ # characters, and the key may only contain the characters [a-z0-9_]. You can
3323
+ # reference these attributes in IAM policies to define fine-grained access for a
3324
+ # workforce pool to Google Cloud resources. For example: * `google.subject`: `
3325
+ # principal://iam.googleapis.com/locations/global/workforcePools/`pool`/subject/`
3326
+ # value`` * `google.groups`: `principalSet://iam.googleapis.com/locations/global/
3327
+ # workforcePools/`pool`/group/`value`` * `attribute.`custom_attribute``: `
3328
+ # principalSet://iam.googleapis.com/locations/global/workforcePools/`pool`/
3329
+ # attribute.`custom_attribute`/`value`` Each value must be a [Common Expression
3330
+ # Language] (https://opensource.google/projects/cel) function that maps an
3331
+ # identity provider credential to the normalized attribute specified by the
3332
+ # corresponding map key. You can use the `assertion` keyword in the expression
3333
+ # to access a JSON representation of the authentication credential issued by the
3334
+ # provider. The maximum length of an attribute mapping expression is 2048
3335
+ # characters. When evaluated, the total size of all mapped attributes must not
3336
+ # exceed 4KB. For OIDC providers, you must supply a custom mapping that includes
3337
+ # the `google.subject` attribute. For example, the following maps the `sub`
3338
+ # claim of the incoming credential to the `subject` attribute on a Google token:
3339
+ # ``` `"google.subject": "assertion.sub"` ```
3340
+ # Corresponds to the JSON property `attributeMapping`
3341
+ # @return [Hash<String,String>]
3342
+ attr_accessor :attribute_mapping
3343
+
3344
+ # Optional. A user-specified description of the provider. Cannot exceed 256
3345
+ # characters.
3346
+ # Corresponds to the JSON property `description`
3347
+ # @return [String]
3348
+ attr_accessor :description
3349
+
3350
+ # Optional. If true, populates additional debug information in Cloud Audit Logs
3351
+ # for this provider. Logged attribute mappings and values can be found in `sts.
3352
+ # googleapis.com` data access logs. Default value is false.
3353
+ # Corresponds to the JSON property `detailedAuditLogging`
3354
+ # @return [Boolean]
3355
+ attr_accessor :detailed_audit_logging
3356
+ alias_method :detailed_audit_logging?, :detailed_audit_logging
3357
+
3358
+ # Optional. Disables the workforce pool provider. You cannot use a disabled
3359
+ # provider to exchange tokens. However, existing tokens still grant access.
3360
+ # Corresponds to the JSON property `disabled`
3361
+ # @return [Boolean]
3362
+ attr_accessor :disabled
3363
+ alias_method :disabled?, :disabled
3364
+
3365
+ # Optional. A user-specified display name for the provider. Cannot exceed 32
3366
+ # characters.
3367
+ # Corresponds to the JSON property `displayName`
3368
+ # @return [String]
3369
+ attr_accessor :display_name
3370
+
3371
+ # Output only. Time after which the workload pool provider will be permanently
3372
+ # purged and cannot be recovered.
3373
+ # Corresponds to the JSON property `expireTime`
3374
+ # @return [String]
3375
+ attr_accessor :expire_time
3376
+
3377
+ # Represents the OAuth 2.0 client credential configuration for retrieving
3378
+ # additional user attributes that are not present in the initial authentication
3379
+ # credentials from the identity provider, e.g. groups. See https://datatracker.
3380
+ # ietf.org/doc/html/rfc6749#section-4.4 for more details on client credentials
3381
+ # grant flow.
3382
+ # Corresponds to the JSON property `extraAttributesOauth2Client`
3383
+ # @return [Google::Apis::IamV1::GoogleIamAdminV1WorkforcePoolProviderExtraAttributesOAuth2Client]
3384
+ attr_accessor :extra_attributes_oauth2_client
3385
+
3386
+ # Identifier. The resource name of the provider. Format: `locations/`location`/
3387
+ # workforcePools/`workforce_pool_id`/providers/`provider_id``
3388
+ # Corresponds to the JSON property `name`
3389
+ # @return [String]
3390
+ attr_accessor :name
3391
+
3392
+ # Represents an OpenId Connect 1.0 identity provider.
3393
+ # Corresponds to the JSON property `oidc`
3394
+ # @return [Google::Apis::IamV1::GoogleIamAdminV1WorkforcePoolProviderOidc]
3395
+ attr_accessor :oidc
3396
+
3397
+ # Represents a SAML identity provider.
3398
+ # Corresponds to the JSON property `saml`
3399
+ # @return [Google::Apis::IamV1::GoogleIamAdminV1WorkforcePoolProviderSaml]
3400
+ attr_accessor :saml
3401
+
3402
+ # Output only. The state of the provider.
3403
+ # Corresponds to the JSON property `state`
3404
+ # @return [String]
3405
+ attr_accessor :state
1835
3406
 
1836
3407
  def initialize(**args)
1837
3408
  update!(**args)
@@ -1839,47 +3410,178 @@ module Google
1839
3410
 
1840
3411
  # Update properties of this object
1841
3412
  def update!(**args)
1842
- @restored_account = args[:restored_account] if args.key?(:restored_account)
3413
+ @attribute_condition = args[:attribute_condition] if args.key?(:attribute_condition)
3414
+ @attribute_mapping = args[:attribute_mapping] if args.key?(:attribute_mapping)
3415
+ @description = args[:description] if args.key?(:description)
3416
+ @detailed_audit_logging = args[:detailed_audit_logging] if args.key?(:detailed_audit_logging)
3417
+ @disabled = args[:disabled] if args.key?(:disabled)
3418
+ @display_name = args[:display_name] if args.key?(:display_name)
3419
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
3420
+ @extra_attributes_oauth2_client = args[:extra_attributes_oauth2_client] if args.key?(:extra_attributes_oauth2_client)
3421
+ @name = args[:name] if args.key?(:name)
3422
+ @oidc = args[:oidc] if args.key?(:oidc)
3423
+ @saml = args[:saml] if args.key?(:saml)
3424
+ @state = args[:state] if args.key?(:state)
1843
3425
  end
1844
3426
  end
1845
3427
 
1846
- # Request message for UndeleteWorkloadIdentityPoolProvider.
1847
- class UndeleteWorkloadIdentityPoolProviderRequest
3428
+ # Represents a public key configuration for a Workforce Pool Provider. The key
3429
+ # can be configured in your identity provider to encrypt SAML assertions. Google
3430
+ # holds the corresponding private key, which it uses to decrypt encrypted tokens.
3431
+ class WorkforcePoolProviderKey
1848
3432
  include Google::Apis::Core::Hashable
1849
3433
 
3434
+ # Output only. The time after which the key will be permanently deleted and
3435
+ # cannot be recovered. Note that the key may get purged before this time if the
3436
+ # total limit of keys per provider is exceeded.
3437
+ # Corresponds to the JSON property `expireTime`
3438
+ # @return [String]
3439
+ attr_accessor :expire_time
3440
+
3441
+ # Represents a public key data along with its format.
3442
+ # Corresponds to the JSON property `keyData`
3443
+ # @return [Google::Apis::IamV1::KeyData]
3444
+ attr_accessor :key_data
3445
+
3446
+ # Identifier. The resource name of the key. Format: `locations/`location`/
3447
+ # workforcePools/`workforce_pool_id`/providers/`provider_id`/keys/`key_id``
3448
+ # Corresponds to the JSON property `name`
3449
+ # @return [String]
3450
+ attr_accessor :name
3451
+
3452
+ # Output only. The state of the key.
3453
+ # Corresponds to the JSON property `state`
3454
+ # @return [String]
3455
+ attr_accessor :state
3456
+
3457
+ # Required. The purpose of the key.
3458
+ # Corresponds to the JSON property `use`
3459
+ # @return [String]
3460
+ attr_accessor :use
3461
+
1850
3462
  def initialize(**args)
1851
3463
  update!(**args)
1852
3464
  end
1853
3465
 
1854
3466
  # Update properties of this object
1855
3467
  def update!(**args)
3468
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
3469
+ @key_data = args[:key_data] if args.key?(:key_data)
3470
+ @name = args[:name] if args.key?(:name)
3471
+ @state = args[:state] if args.key?(:state)
3472
+ @use = args[:use] if args.key?(:use)
1856
3473
  end
1857
3474
  end
1858
3475
 
1859
- # Request message for UndeleteWorkloadIdentityPool.
1860
- class UndeleteWorkloadIdentityPoolRequest
3476
+ # Represents a collection of workload identities. You can define IAM policies to
3477
+ # grant these identities access to Google Cloud resources.
3478
+ class WorkloadIdentityPool
1861
3479
  include Google::Apis::Core::Hashable
1862
3480
 
3481
+ # Optional. A description of the pool. Cannot exceed 256 characters.
3482
+ # Corresponds to the JSON property `description`
3483
+ # @return [String]
3484
+ attr_accessor :description
3485
+
3486
+ # Optional. Whether the pool is disabled. You cannot use a disabled pool to
3487
+ # exchange tokens, or use existing tokens to access resources. If the pool is re-
3488
+ # enabled, existing tokens grant access again.
3489
+ # Corresponds to the JSON property `disabled`
3490
+ # @return [Boolean]
3491
+ attr_accessor :disabled
3492
+ alias_method :disabled?, :disabled
3493
+
3494
+ # Optional. A display name for the pool. Cannot exceed 32 characters.
3495
+ # Corresponds to the JSON property `displayName`
3496
+ # @return [String]
3497
+ attr_accessor :display_name
3498
+
3499
+ # Output only. Time after which the workload identity pool will be permanently
3500
+ # purged and cannot be recovered.
3501
+ # Corresponds to the JSON property `expireTime`
3502
+ # @return [String]
3503
+ attr_accessor :expire_time
3504
+
3505
+ # Represents configuration for generating mutual TLS (mTLS) certificates for the
3506
+ # identities within this pool.
3507
+ # Corresponds to the JSON property `inlineCertificateIssuanceConfig`
3508
+ # @return [Google::Apis::IamV1::InlineCertificateIssuanceConfig]
3509
+ attr_accessor :inline_certificate_issuance_config
3510
+
3511
+ # Defines configuration for extending trust to additional trust domains. By
3512
+ # establishing trust with another domain, the current domain will recognize and
3513
+ # accept certificates issued by entities within the trusted domains. Note that a
3514
+ # trust domain automatically trusts itself, eliminating the need for explicit
3515
+ # configuration.
3516
+ # Corresponds to the JSON property `inlineTrustConfig`
3517
+ # @return [Google::Apis::IamV1::InlineTrustConfig]
3518
+ attr_accessor :inline_trust_config
3519
+
3520
+ # Immutable. The mode the pool is operating in.
3521
+ # Corresponds to the JSON property `mode`
3522
+ # @return [String]
3523
+ attr_accessor :mode
3524
+
3525
+ # Output only. The resource name of the pool.
3526
+ # Corresponds to the JSON property `name`
3527
+ # @return [String]
3528
+ attr_accessor :name
3529
+
3530
+ # Output only. The state of the pool.
3531
+ # Corresponds to the JSON property `state`
3532
+ # @return [String]
3533
+ attr_accessor :state
3534
+
1863
3535
  def initialize(**args)
1864
3536
  update!(**args)
1865
3537
  end
1866
3538
 
1867
3539
  # Update properties of this object
1868
3540
  def update!(**args)
3541
+ @description = args[:description] if args.key?(:description)
3542
+ @disabled = args[:disabled] if args.key?(:disabled)
3543
+ @display_name = args[:display_name] if args.key?(:display_name)
3544
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
3545
+ @inline_certificate_issuance_config = args[:inline_certificate_issuance_config] if args.key?(:inline_certificate_issuance_config)
3546
+ @inline_trust_config = args[:inline_trust_config] if args.key?(:inline_trust_config)
3547
+ @mode = args[:mode] if args.key?(:mode)
3548
+ @name = args[:name] if args.key?(:name)
3549
+ @state = args[:state] if args.key?(:state)
1869
3550
  end
1870
3551
  end
1871
3552
 
1872
- # The service account key upload request.
1873
- class UploadServiceAccountKeyRequest
3553
+ # Represents a managed identity for a workload identity pool namespace.
3554
+ class WorkloadIdentityPoolManagedIdentity
1874
3555
  include Google::Apis::Core::Hashable
1875
3556
 
1876
- # The public key to associate with the service account. Must be an RSA public
1877
- # key that is wrapped in an X.509 v3 certificate. Include the first line, `-----
1878
- # BEGIN CERTIFICATE-----`, and the last line, `-----END CERTIFICATE-----`.
1879
- # Corresponds to the JSON property `publicKeyData`
1880
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
3557
+ # A description of the managed identity. Cannot exceed 256 characters.
3558
+ # Corresponds to the JSON property `description`
1881
3559
  # @return [String]
1882
- attr_accessor :public_key_data
3560
+ attr_accessor :description
3561
+
3562
+ # Whether the managed identity is disabled. If disabled, credentials may no
3563
+ # longer be issued for the identity, however existing credentials will still be
3564
+ # accepted until they expire.
3565
+ # Corresponds to the JSON property `disabled`
3566
+ # @return [Boolean]
3567
+ attr_accessor :disabled
3568
+ alias_method :disabled?, :disabled
3569
+
3570
+ # Output only. Time after which the managed identity will be permanently purged
3571
+ # and cannot be recovered.
3572
+ # Corresponds to the JSON property `expireTime`
3573
+ # @return [String]
3574
+ attr_accessor :expire_time
3575
+
3576
+ # Output only. The resource name of the managed identity.
3577
+ # Corresponds to the JSON property `name`
3578
+ # @return [String]
3579
+ attr_accessor :name
3580
+
3581
+ # Output only. The state of the managed identity.
3582
+ # Corresponds to the JSON property `state`
3583
+ # @return [String]
3584
+ attr_accessor :state
1883
3585
 
1884
3586
  def initialize(**args)
1885
3587
  update!(**args)
@@ -1887,39 +3589,49 @@ module Google
1887
3589
 
1888
3590
  # Update properties of this object
1889
3591
  def update!(**args)
1890
- @public_key_data = args[:public_key_data] if args.key?(:public_key_data)
3592
+ @description = args[:description] if args.key?(:description)
3593
+ @disabled = args[:disabled] if args.key?(:disabled)
3594
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
3595
+ @name = args[:name] if args.key?(:name)
3596
+ @state = args[:state] if args.key?(:state)
1891
3597
  end
1892
3598
  end
1893
3599
 
1894
- # Represents a collection of external workload identities. You can define IAM
1895
- # policies to grant these identities access to Google Cloud resources.
1896
- class WorkloadIdentityPool
3600
+ # Represents a namespace for a workload identity pool. Namespaces are used to
3601
+ # segment identities within the pool.
3602
+ class WorkloadIdentityPoolNamespace
1897
3603
  include Google::Apis::Core::Hashable
1898
3604
 
1899
- # A description of the pool. Cannot exceed 256 characters.
3605
+ # A description of the namespace. Cannot exceed 256 characters.
1900
3606
  # Corresponds to the JSON property `description`
1901
3607
  # @return [String]
1902
3608
  attr_accessor :description
1903
3609
 
1904
- # Whether the pool is disabled. You cannot use a disabled pool to exchange
1905
- # tokens, or use existing tokens to access resources. If the pool is re-enabled,
1906
- # existing tokens grant access again.
3610
+ # Whether the namespace is disabled. If disabled, credentials may no longer be
3611
+ # issued for identities within this namespace, however existing credentials will
3612
+ # still be accepted until they expire.
1907
3613
  # Corresponds to the JSON property `disabled`
1908
3614
  # @return [Boolean]
1909
3615
  attr_accessor :disabled
1910
3616
  alias_method :disabled?, :disabled
1911
3617
 
1912
- # A display name for the pool. Cannot exceed 32 characters.
1913
- # Corresponds to the JSON property `displayName`
3618
+ # Output only. Time after which the namespace will be permanently purged and
3619
+ # cannot be recovered.
3620
+ # Corresponds to the JSON property `expireTime`
1914
3621
  # @return [String]
1915
- attr_accessor :display_name
3622
+ attr_accessor :expire_time
1916
3623
 
1917
- # Output only. The resource name of the pool.
3624
+ # Output only. The resource name of the namespace.
1918
3625
  # Corresponds to the JSON property `name`
1919
3626
  # @return [String]
1920
3627
  attr_accessor :name
1921
3628
 
1922
- # Output only. The state of the pool.
3629
+ # The Google Cloud service that owns this namespace.
3630
+ # Corresponds to the JSON property `ownerService`
3631
+ # @return [Google::Apis::IamV1::OwnerService]
3632
+ attr_accessor :owner_service
3633
+
3634
+ # Output only. The state of the namespace.
1923
3635
  # Corresponds to the JSON property `state`
1924
3636
  # @return [String]
1925
3637
  attr_accessor :state
@@ -1932,8 +3644,9 @@ module Google
1932
3644
  def update!(**args)
1933
3645
  @description = args[:description] if args.key?(:description)
1934
3646
  @disabled = args[:disabled] if args.key?(:disabled)
1935
- @display_name = args[:display_name] if args.key?(:display_name)
3647
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
1936
3648
  @name = args[:name] if args.key?(:name)
3649
+ @owner_service = args[:owner_service] if args.key?(:owner_service)
1937
3650
  @state = args[:state] if args.key?(:state)
1938
3651
  end
1939
3652
  end
@@ -1955,59 +3668,61 @@ module Google
1955
3668
  class WorkloadIdentityPoolProvider
1956
3669
  include Google::Apis::Core::Hashable
1957
3670
 
1958
- # [A Common Expression Language](https://opensource.google/projects/cel)
1959
- # expression, in plain text, to restrict what otherwise valid authentication
1960
- # credentials issued by the provider should not be accepted. The expression must
1961
- # output a boolean representing whether to allow the federation. The following
1962
- # keywords may be referenced in the expressions: * `assertion`: JSON
1963
- # representing the authentication credential issued by the provider. * `google`:
1964
- # The Google attributes mapped from the assertion in the `attribute_mappings`. *
1965
- # `attribute`: The custom attributes mapped from the assertion in the `
1966
- # attribute_mappings`. The maximum length of the attribute condition expression
1967
- # is 4096 characters. If unspecified, all valid authentication credential are
1968
- # accepted. The following example shows how to only allow credentials with a
1969
- # mapped `google.groups` value of `admins`: ``` "'admins' in google.groups" ```
3671
+ # Optional. [A Common Expression Language](https://opensource.google/projects/
3672
+ # cel) expression, in plain text, to restrict what otherwise valid
3673
+ # authentication credentials issued by the provider should not be accepted. The
3674
+ # expression must output a boolean representing whether to allow the federation.
3675
+ # The following keywords may be referenced in the expressions: * `assertion`:
3676
+ # JSON representing the authentication credential issued by the provider. * `
3677
+ # google`: The Google attributes mapped from the assertion in the `
3678
+ # attribute_mappings`. * `attribute`: The custom attributes mapped from the
3679
+ # assertion in the `attribute_mappings`. The maximum length of the attribute
3680
+ # condition expression is 4096 characters. If unspecified, all valid
3681
+ # authentication credential are accepted. The following example shows how to
3682
+ # only allow credentials with a mapped `google.groups` value of `admins`: ``` "'
3683
+ # admins' in google.groups" ```
1970
3684
  # Corresponds to the JSON property `attributeCondition`
1971
3685
  # @return [String]
1972
3686
  attr_accessor :attribute_condition
1973
3687
 
1974
- # Maps attributes from authentication credentials issued by an external identity
1975
- # provider to Google Cloud attributes, such as `subject` and `segment`. Each key
1976
- # must be a string specifying the Google Cloud IAM attribute to map to. The
1977
- # following keys are supported: * `google.subject`: The principal IAM is
1978
- # authenticating. You can reference this value in IAM bindings. This is also the
1979
- # subject that appears in Cloud Logging logs. Cannot exceed 127 bytes. * `google.
1980
- # groups`: Groups the external identity belongs to. You can grant groups access
1981
- # to resources using an IAM `principalSet` binding; access applies to all
1982
- # members of the group. You can also provide custom attributes by specifying `
1983
- # attribute.`custom_attribute``, where ``custom_attribute`` is the name of the
1984
- # custom attribute to be mapped. You can define a maximum of 50 custom
1985
- # attributes. The maximum length of a mapped attribute key is 100 characters,
1986
- # and the key may only contain the characters [a-z0-9_]. You can reference these
1987
- # attributes in IAM policies to define fine-grained access for a workload to
1988
- # Google Cloud resources. For example: * `google.subject`: `principal://iam.
1989
- # googleapis.com/projects/`project`/locations/`location`/workloadIdentityPools/`
1990
- # pool`/subject/`value`` * `google.groups`: `principalSet://iam.googleapis.com/
1991
- # projects/`project`/locations/`location`/workloadIdentityPools/`pool`/group/`
1992
- # value`` * `attribute.`custom_attribute``: `principalSet://iam.googleapis.com/
1993
- # projects/`project`/locations/`location`/workloadIdentityPools/`pool`/attribute.
1994
- # `custom_attribute`/`value`` Each value must be a [Common Expression Language] (
1995
- # https://opensource.google/projects/cel) function that maps an identity
1996
- # provider credential to the normalized attribute specified by the corresponding
1997
- # map key. You can use the `assertion` keyword in the expression to access a
1998
- # JSON representation of the authentication credential issued by the provider.
1999
- # The maximum length of an attribute mapping expression is 2048 characters. When
2000
- # evaluated, the total size of all mapped attributes must not exceed 8KB. For
2001
- # AWS providers, if no attribute mapping is defined, the following default
2002
- # mapping applies: ``` ` "google.subject":"assertion.arn", "attribute.aws_role":
2003
- # "assertion.arn.contains('assumed-role')" " ? assertion.arn.extract('`
2004
- # account_arn`assumed-role/')" " + 'assumed-role/'" " + assertion.arn.extract('
2005
- # assumed-role/`role_name`/')" " : assertion.arn", ` ``` If any custom attribute
2006
- # mappings are defined, they must include a mapping to the `google.subject`
2007
- # attribute. For OIDC providers, you must supply a custom mapping, which must
2008
- # include the `google.subject` attribute. For example, the following maps the `
2009
- # sub` claim of the incoming credential to the `subject` attribute on a Google
2010
- # token: ``` `"google.subject": "assertion.sub"` ```
3688
+ # Optional. Maps attributes from authentication credentials issued by an
3689
+ # external identity provider to Google Cloud attributes, such as `subject` and `
3690
+ # segment`. Each key must be a string specifying the Google Cloud IAM attribute
3691
+ # to map to. The following keys are supported: * `google.subject`: The principal
3692
+ # IAM is authenticating. You can reference this value in IAM bindings. This is
3693
+ # also the subject that appears in Cloud Logging logs. Cannot exceed 127 bytes. *
3694
+ # `google.groups`: Groups the external identity belongs to. You can grant
3695
+ # groups access to resources using an IAM `principalSet` binding; access applies
3696
+ # to all members of the group. You can also provide custom attributes by
3697
+ # specifying `attribute.`custom_attribute``, where ``custom_attribute`` is the
3698
+ # name of the custom attribute to be mapped. You can define a maximum of 50
3699
+ # custom attributes. The maximum length of a mapped attribute key is 100
3700
+ # characters, and the key may only contain the characters [a-z0-9_]. You can
3701
+ # reference these attributes in IAM policies to define fine-grained access for a
3702
+ # workload to Google Cloud resources. For example: * `google.subject`: `
3703
+ # principal://iam.googleapis.com/projects/`project`/locations/`location`/
3704
+ # workloadIdentityPools/`pool`/subject/`value`` * `google.groups`: `principalSet:
3705
+ # //iam.googleapis.com/projects/`project`/locations/`location`/
3706
+ # workloadIdentityPools/`pool`/group/`value`` * `attribute.`custom_attribute``: `
3707
+ # principalSet://iam.googleapis.com/projects/`project`/locations/`location`/
3708
+ # workloadIdentityPools/`pool`/attribute.`custom_attribute`/`value`` Each value
3709
+ # must be a [Common Expression Language] (https://opensource.google/projects/cel)
3710
+ # function that maps an identity provider credential to the normalized
3711
+ # attribute specified by the corresponding map key. You can use the `assertion`
3712
+ # keyword in the expression to access a JSON representation of the
3713
+ # authentication credential issued by the provider. The maximum length of an
3714
+ # attribute mapping expression is 2048 characters. When evaluated, the total
3715
+ # size of all mapped attributes must not exceed 8KB. For AWS providers, if no
3716
+ # attribute mapping is defined, the following default mapping applies: ``` ` "
3717
+ # google.subject":"assertion.arn", "attribute.aws_role": "assertion.arn.contains(
3718
+ # 'assumed-role')" " ? assertion.arn.extract('`account_arn`assumed-role/')" " + '
3719
+ # assumed-role/'" " + assertion.arn.extract('assumed-role/`role_name`/')" " :
3720
+ # assertion.arn", ` ``` If any custom attribute mappings are defined, they must
3721
+ # include a mapping to the `google.subject` attribute. For OIDC providers, you
3722
+ # must supply a custom mapping, which must include the `google.subject`
3723
+ # attribute. For example, the following maps the `sub` claim of the incoming
3724
+ # credential to the `subject` attribute on a Google token: ``` `"google.subject":
3725
+ # "assertion.sub"` ```
2011
3726
  # Corresponds to the JSON property `attributeMapping`
2012
3727
  # @return [Hash<String,String>]
2013
3728
  attr_accessor :attribute_mapping
@@ -2017,23 +3732,29 @@ module Google
2017
3732
  # @return [Google::Apis::IamV1::Aws]
2018
3733
  attr_accessor :aws
2019
3734
 
2020
- # A description for the provider. Cannot exceed 256 characters.
3735
+ # Optional. A description for the provider. Cannot exceed 256 characters.
2021
3736
  # Corresponds to the JSON property `description`
2022
3737
  # @return [String]
2023
3738
  attr_accessor :description
2024
3739
 
2025
- # Whether the provider is disabled. You cannot use a disabled provider to
2026
- # exchange tokens. However, existing tokens still grant access.
3740
+ # Optional. Whether the provider is disabled. You cannot use a disabled provider
3741
+ # to exchange tokens. However, existing tokens still grant access.
2027
3742
  # Corresponds to the JSON property `disabled`
2028
3743
  # @return [Boolean]
2029
3744
  attr_accessor :disabled
2030
3745
  alias_method :disabled?, :disabled
2031
3746
 
2032
- # A display name for the provider. Cannot exceed 32 characters.
3747
+ # Optional. A display name for the provider. Cannot exceed 32 characters.
2033
3748
  # Corresponds to the JSON property `displayName`
2034
3749
  # @return [String]
2035
3750
  attr_accessor :display_name
2036
3751
 
3752
+ # Output only. Time after which the workload identity pool provider will be
3753
+ # permanently purged and cannot be recovered.
3754
+ # Corresponds to the JSON property `expireTime`
3755
+ # @return [String]
3756
+ attr_accessor :expire_time
3757
+
2037
3758
  # Output only. The resource name of the provider.
2038
3759
  # Corresponds to the JSON property `name`
2039
3760
  # @return [String]
@@ -2054,6 +3775,12 @@ module Google
2054
3775
  # @return [String]
2055
3776
  attr_accessor :state
2056
3777
 
3778
+ # An X.509-type identity provider represents a CA. It is trusted to assert a
3779
+ # client identity if the client has a certificate that chains up to this CA.
3780
+ # Corresponds to the JSON property `x509`
3781
+ # @return [Google::Apis::IamV1::X509]
3782
+ attr_accessor :x509
3783
+
2057
3784
  def initialize(**args)
2058
3785
  update!(**args)
2059
3786
  end
@@ -2066,10 +3793,81 @@ module Google
2066
3793
  @description = args[:description] if args.key?(:description)
2067
3794
  @disabled = args[:disabled] if args.key?(:disabled)
2068
3795
  @display_name = args[:display_name] if args.key?(:display_name)
3796
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
2069
3797
  @name = args[:name] if args.key?(:name)
2070
3798
  @oidc = args[:oidc] if args.key?(:oidc)
2071
3799
  @saml = args[:saml] if args.key?(:saml)
2072
3800
  @state = args[:state] if args.key?(:state)
3801
+ @x509 = args[:x509] if args.key?(:x509)
3802
+ end
3803
+ end
3804
+
3805
+ # Represents a public key configuration for your workload identity pool provider.
3806
+ # The key can be configured in your identity provider to encrypt the SAML
3807
+ # assertions. Google holds the corresponding private key which it uses to
3808
+ # decrypt encrypted tokens.
3809
+ class WorkloadIdentityPoolProviderKey
3810
+ include Google::Apis::Core::Hashable
3811
+
3812
+ # Output only. Time after which the key will be permanently purged and cannot be
3813
+ # recovered. Note that the key may get purged before this timestamp if the total
3814
+ # limit of keys per provider is crossed.
3815
+ # Corresponds to the JSON property `expireTime`
3816
+ # @return [String]
3817
+ attr_accessor :expire_time
3818
+
3819
+ # Represents a public key data along with its format.
3820
+ # Corresponds to the JSON property `keyData`
3821
+ # @return [Google::Apis::IamV1::KeyData]
3822
+ attr_accessor :key_data
3823
+
3824
+ # Output only. The resource name of the key.
3825
+ # Corresponds to the JSON property `name`
3826
+ # @return [String]
3827
+ attr_accessor :name
3828
+
3829
+ # Output only. The state of the key.
3830
+ # Corresponds to the JSON property `state`
3831
+ # @return [String]
3832
+ attr_accessor :state
3833
+
3834
+ # Required. The purpose of the key.
3835
+ # Corresponds to the JSON property `use`
3836
+ # @return [String]
3837
+ attr_accessor :use
3838
+
3839
+ def initialize(**args)
3840
+ update!(**args)
3841
+ end
3842
+
3843
+ # Update properties of this object
3844
+ def update!(**args)
3845
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
3846
+ @key_data = args[:key_data] if args.key?(:key_data)
3847
+ @name = args[:name] if args.key?(:name)
3848
+ @state = args[:state] if args.key?(:state)
3849
+ @use = args[:use] if args.key?(:use)
3850
+ end
3851
+ end
3852
+
3853
+ # An X.509-type identity provider represents a CA. It is trusted to assert a
3854
+ # client identity if the client has a certificate that chains up to this CA.
3855
+ class X509
3856
+ include Google::Apis::Core::Hashable
3857
+
3858
+ # Trust store that contains trust anchors and optional intermediate CAs used in
3859
+ # PKI to build a trust chain(trust hierarchy) and verify a client's identity.
3860
+ # Corresponds to the JSON property `trustStore`
3861
+ # @return [Google::Apis::IamV1::TrustStore]
3862
+ attr_accessor :trust_store
3863
+
3864
+ def initialize(**args)
3865
+ update!(**args)
3866
+ end
3867
+
3868
+ # Update properties of this object
3869
+ def update!(**args)
3870
+ @trust_store = args[:trust_store] if args.key?(:trust_store)
2073
3871
  end
2074
3872
  end
2075
3873
  end