@@ -55,6 +55,20 @@ class Assignment
5555 # @return [String]
5656 attr_accessor :name
5757
58+ # Optional. Represents the principal for this assignment. If not empty, jobs run
59+ # by this principal will utilize the associated reservation. Otherwise, jobs
60+ # will fall back to using the reservation assigned to the project, folder, or
61+ # organization (in that order). If no reservation is assigned at any of these
62+ # levels, on-demand capacity will be used. The supported formats are: * `
63+ # principal://goog/subject/USER_EMAIL_ADDRESS` for users, * `principal://iam.
64+ # googleapis.com/projects/-/serviceAccounts/SA_EMAIL_ADDRESS` for service
65+ # accounts, * `principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/
66+ # global/workloadIdentityPools/POOL_ID/subject/SUBJECT_ID` for workload identity
67+ # pool identities.
68+ # Corresponds to the JSON property `principal`
69+ # @return [String]
70+ attr_accessor :principal
71+
5872 # The scheduling policy controls how a reservation's resources are distributed.
5973 # Corresponds to the JSON property `schedulingPolicy`
6074 # @return [Google::Apis::BigqueryreservationV1::SchedulingPolicy]
@@ -75,6 +89,7 @@ def update!(**args)
7589 @enable_gemini_in_bigquery = args [ :enable_gemini_in_bigquery ] if args . key? ( :enable_gemini_in_bigquery )
7690 @job_type = args [ :job_type ] if args . key? ( :job_type )
7791 @name = args [ :name ] if args . key? ( :name )
92+ @principal = args [ :principal ] if args . key? ( :principal )
7893 @scheduling_policy = args [ :scheduling_policy ] if args . key? ( :scheduling_policy )
7994 @state = args [ :state ] if args . key? ( :state )
8095 end
0 commit comments