lib/google/apis/servicecontrol_v1/classes.rb in google-apis-servicecontrol_v1-0.29.0 vs lib/google/apis/servicecontrol_v1/classes.rb in google-apis-servicecontrol_v1-0.30.0

- old
+ new

@@ -426,10 +426,18 @@ # PROJECT_ID`/serviceAccounts/`ACCOUNT`/keys/`key`" # Corresponds to the JSON property `serviceAccountKeyName` # @return [String] attr_accessor :service_account_key_name + # The history of delegation across multiple services as the result of the + # original user's action. Such as "service A uses its own account to do + # something for user B". This differs from ServiceAccountDelegationInfo, which + # only tracks the history of direct token exchanges (impersonation). + # Corresponds to the JSON property `serviceDelegationHistory` + # @return [Google::Apis::ServicecontrolV1::ServiceDelegationHistory] + attr_accessor :service_delegation_history + # The third party identification (if any) of the authenticated user making the # request. When the JSON object represented here has a proto equivalent, the # proto name will be indicated in the `@type` property. # Corresponds to the JSON property `thirdPartyPrincipal` # @return [Hash<String,Object>] @@ -444,10 +452,11 @@ @authority_selector = args[:authority_selector] if args.key?(:authority_selector) @principal_email = args[:principal_email] if args.key?(:principal_email) @principal_subject = args[:principal_subject] if args.key?(:principal_subject) @service_account_delegation_info = args[:service_account_delegation_info] if args.key?(:service_account_delegation_info) @service_account_key_name = args[:service_account_key_name] if args.key?(:service_account_key_name) + @service_delegation_history = args[:service_delegation_history] if args.key?(:service_delegation_history) @third_party_principal = args[:third_party_principal] if args.key?(:third_party_principal) end end # Authorization information for the operation. @@ -2287,9 +2296,79 @@ # Update properties of this object def update!(**args) @first_party_principal = args[:first_party_principal] if args.key?(:first_party_principal) @principal_subject = args[:principal_subject] if args.key?(:principal_subject) @third_party_principal = args[:third_party_principal] if args.key?(:third_party_principal) + end + end + + # The history of delegation across multiple services as the result of the + # original user's action. Such as "service A uses its own account to do + # something for user B". This differs from ServiceAccountDelegationInfo, which + # only tracks the history of direct token exchanges (impersonation). + class ServiceDelegationHistory + include Google::Apis::Core::Hashable + + # The original end user who initiated the request to GCP. + # Corresponds to the JSON property `originalPrincipal` + # @return [String] + attr_accessor :original_principal + + # Data identifying the service specific jobs or units of work that were involved + # in a chain of service calls. + # Corresponds to the JSON property `serviceMetadata` + # @return [Array<Google::Apis::ServicecontrolV1::ServiceMetadata>] + attr_accessor :service_metadata + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @original_principal = args[:original_principal] if args.key?(:original_principal) + @service_metadata = args[:service_metadata] if args.key?(:service_metadata) + end + end + + # Metadata describing the service and additional service specific information + # used to identify the job or unit of work at hand. + class ServiceMetadata + include Google::Apis::Core::Hashable + + # Additional metadata provided by service teams to describe service specific job + # information that was triggered by the original principal. + # Corresponds to the JSON property `jobMetadata` + # @return [Hash<String,Object>] + attr_accessor :job_metadata + + # A string representing the principal_subject associated with the identity. For + # most identities, the format will be `principal://iam.googleapis.com/`identity + # pool name`/subject/`subject)` except for some GKE identities (GKE_WORKLOAD, + # FREEFORM, GKE_HUB_WORKLOAD) that are still in the legacy format ` + # serviceAccount:`identity pool name`[`subject`]` If the identity is a Google + # account (e.g. workspace user account or service account), this will be the + # email of the prefixed by `serviceAccount:`. For example: `serviceAccount:my- + # service-account@project-1.iam.gserviceaccount.com`. If the identity is an + # individual user, the identity will be formatted as: `user:user_ABC@email.com`. + # Corresponds to the JSON property `principalSubject` + # @return [String] + attr_accessor :principal_subject + + # The service's fully qualified domain name, e.g. "dataproc.googleapis.com". + # Corresponds to the JSON property `serviceDomain` + # @return [String] + attr_accessor :service_domain + + def initialize(**args) + update!(**args) + end + + # Update properties of this object + def update!(**args) + @job_metadata = args[:job_metadata] if args.key?(:job_metadata) + @principal_subject = args[:principal_subject] if args.key?(:principal_subject) + @service_domain = args[:service_domain] if args.key?(:service_domain) end end # The context of a span. This is attached to an Exemplar in Distribution values # during aggregation. It contains the name of a span with format: projects/[