google-apis-assuredworkloads_v1beta1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,914 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module AssuredworkloadsV1beta1
24
+
25
+ # Request for acknowledging the violation Next Id: 4
26
+ class GoogleCloudAssuredworkloadsV1beta1AcknowledgeViolationRequest
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Required. Business justification explaining the need for violation
30
+ # acknowledgement
31
+ # Corresponds to the JSON property `comment`
32
+ # @return [String]
33
+ attr_accessor :comment
34
+
35
+ def initialize(**args)
36
+ update!(**args)
37
+ end
38
+
39
+ # Update properties of this object
40
+ def update!(**args)
41
+ @comment = args[:comment] if args.key?(:comment)
42
+ end
43
+ end
44
+
45
+ # Response for violation acknowledgement
46
+ class GoogleCloudAssuredworkloadsV1beta1AcknowledgeViolationResponse
47
+ include Google::Apis::Core::Hashable
48
+
49
+ def initialize(**args)
50
+ update!(**args)
51
+ end
52
+
53
+ # Update properties of this object
54
+ def update!(**args)
55
+ end
56
+ end
57
+
58
+ # A response that includes the analysis of the hypothetical resource move.
59
+ class GoogleCloudAssuredworkloadsV1beta1AnalyzeWorkloadMoveResponse
60
+ include Google::Apis::Core::Hashable
61
+
62
+ # A list of blockers that should be addressed before moving the source project
63
+ # or project-based workload to the destination folder-based workload.
64
+ # Corresponds to the JSON property `blockers`
65
+ # @return [Array<String>]
66
+ attr_accessor :blockers
67
+
68
+ def initialize(**args)
69
+ update!(**args)
70
+ end
71
+
72
+ # Update properties of this object
73
+ def update!(**args)
74
+ @blockers = args[:blockers] if args.key?(:blockers)
75
+ end
76
+ end
77
+
78
+ # Response of ListViolations endpoint.
79
+ class GoogleCloudAssuredworkloadsV1beta1ListViolationsResponse
80
+ include Google::Apis::Core::Hashable
81
+
82
+ # The next page token. Returns empty if reached the last page.
83
+ # Corresponds to the JSON property `nextPageToken`
84
+ # @return [String]
85
+ attr_accessor :next_page_token
86
+
87
+ # List of Violations under a Workload.
88
+ # Corresponds to the JSON property `violations`
89
+ # @return [Array<Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1Violation>]
90
+ attr_accessor :violations
91
+
92
+ def initialize(**args)
93
+ update!(**args)
94
+ end
95
+
96
+ # Update properties of this object
97
+ def update!(**args)
98
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
99
+ @violations = args[:violations] if args.key?(:violations)
100
+ end
101
+ end
102
+
103
+ # Response of ListWorkloads endpoint.
104
+ class GoogleCloudAssuredworkloadsV1beta1ListWorkloadsResponse
105
+ include Google::Apis::Core::Hashable
106
+
107
+ # The next page token. Return empty if reached the last page.
108
+ # Corresponds to the JSON property `nextPageToken`
109
+ # @return [String]
110
+ attr_accessor :next_page_token
111
+
112
+ # List of Workloads under a given parent.
113
+ # Corresponds to the JSON property `workloads`
114
+ # @return [Array<Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1Workload>]
115
+ attr_accessor :workloads
116
+
117
+ def initialize(**args)
118
+ update!(**args)
119
+ end
120
+
121
+ # Update properties of this object
122
+ def update!(**args)
123
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
124
+ @workloads = args[:workloads] if args.key?(:workloads)
125
+ end
126
+ end
127
+
128
+ # Request for restricting list of available resources in Workload environment.
129
+ class GoogleCloudAssuredworkloadsV1beta1RestrictAllowedResourcesRequest
130
+ include Google::Apis::Core::Hashable
131
+
132
+ # Required. The type of restriction for using gcp products in the Workload
133
+ # environment.
134
+ # Corresponds to the JSON property `restrictionType`
135
+ # @return [String]
136
+ attr_accessor :restriction_type
137
+
138
+ def initialize(**args)
139
+ update!(**args)
140
+ end
141
+
142
+ # Update properties of this object
143
+ def update!(**args)
144
+ @restriction_type = args[:restriction_type] if args.key?(:restriction_type)
145
+ end
146
+ end
147
+
148
+ # Response for restricting the list of allowed resources.
149
+ class GoogleCloudAssuredworkloadsV1beta1RestrictAllowedResourcesResponse
150
+ include Google::Apis::Core::Hashable
151
+
152
+ def initialize(**args)
153
+ update!(**args)
154
+ end
155
+
156
+ # Update properties of this object
157
+ def update!(**args)
158
+ end
159
+ end
160
+
161
+ # Workload monitoring Violation.
162
+ class GoogleCloudAssuredworkloadsV1beta1Violation
163
+ include Google::Apis::Core::Hashable
164
+
165
+ # A boolean that indicates if the violation is acknowledged
166
+ # Corresponds to the JSON property `acknowledged`
167
+ # @return [Boolean]
168
+ attr_accessor :acknowledged
169
+ alias_method :acknowledged?, :acknowledged
170
+
171
+ # Optional. Timestamp when this violation was acknowledged last. This will be
172
+ # absent when acknowledged field is marked as false.
173
+ # Corresponds to the JSON property `acknowledgementTime`
174
+ # @return [String]
175
+ attr_accessor :acknowledgement_time
176
+
177
+ # Output only. Immutable. Audit Log Link for violated resource Format: https://
178
+ # console.cloud.google.com/logs/query;query=`logName``protoPayload.resourceName``
179
+ # timeRange``folder`
180
+ # Corresponds to the JSON property `auditLogLink`
181
+ # @return [String]
182
+ attr_accessor :audit_log_link
183
+
184
+ # Output only. Time of the event which triggered the Violation.
185
+ # Corresponds to the JSON property `beginTime`
186
+ # @return [String]
187
+ attr_accessor :begin_time
188
+
189
+ # Output only. Category under which this violation is mapped. e.g. Location,
190
+ # Service Usage, Access, Encryption, etc.
191
+ # Corresponds to the JSON property `category`
192
+ # @return [String]
193
+ attr_accessor :category
194
+
195
+ # Output only. Description for the Violation. e.g. OrgPolicy gcp.
196
+ # resourceLocations has non compliant value.
197
+ # Corresponds to the JSON property `description`
198
+ # @return [String]
199
+ attr_accessor :description
200
+
201
+ # Output only. Immutable. Audit Log link to find business justification provided
202
+ # for violation exception. Format: https://console.cloud.google.com/logs/query;
203
+ # query=`logName``protoPayload.resourceName``protoPayload.methodName``timeRange``
204
+ # organization`
205
+ # Corresponds to the JSON property `exceptionAuditLogLink`
206
+ # @return [String]
207
+ attr_accessor :exception_audit_log_link
208
+
209
+ # Output only. Immutable. Name of the Violation. Format: organizations/`
210
+ # organization`/locations/`location`/workloads/`workload_id`/violations/`
211
+ # violations_id`
212
+ # Corresponds to the JSON property `name`
213
+ # @return [String]
214
+ attr_accessor :name
215
+
216
+ # Output only. Immutable. Name of the OrgPolicy which was modified with non-
217
+ # compliant change and resulted this violation. Format: projects/`project_number`
218
+ # /policies/`constraint_name` folders/`folder_id`/policies/`constraint_name`
219
+ # organizations/`organization_id`/policies/`constraint_name`
220
+ # Corresponds to the JSON property `nonCompliantOrgPolicy`
221
+ # @return [String]
222
+ attr_accessor :non_compliant_org_policy
223
+
224
+ # Output only. Immutable. The org-policy-constraint that was incorrectly changed,
225
+ # which resulted in this violation.
226
+ # Corresponds to the JSON property `orgPolicyConstraint`
227
+ # @return [String]
228
+ attr_accessor :org_policy_constraint
229
+
230
+ # Represents remediation guidance to resolve compliance violation for
231
+ # AssuredWorkload
232
+ # Corresponds to the JSON property `remediation`
233
+ # @return [Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1ViolationRemediation]
234
+ attr_accessor :remediation
235
+
236
+ # Output only. Time of the event which fixed the Violation. If the violation is
237
+ # ACTIVE this will be empty.
238
+ # Corresponds to the JSON property `resolveTime`
239
+ # @return [String]
240
+ attr_accessor :resolve_time
241
+
242
+ # Output only. State of the violation
243
+ # Corresponds to the JSON property `state`
244
+ # @return [String]
245
+ attr_accessor :state
246
+
247
+ # Output only. The last time when the Violation record was updated.
248
+ # Corresponds to the JSON property `updateTime`
249
+ # @return [String]
250
+ attr_accessor :update_time
251
+
252
+ def initialize(**args)
253
+ update!(**args)
254
+ end
255
+
256
+ # Update properties of this object
257
+ def update!(**args)
258
+ @acknowledged = args[:acknowledged] if args.key?(:acknowledged)
259
+ @acknowledgement_time = args[:acknowledgement_time] if args.key?(:acknowledgement_time)
260
+ @audit_log_link = args[:audit_log_link] if args.key?(:audit_log_link)
261
+ @begin_time = args[:begin_time] if args.key?(:begin_time)
262
+ @category = args[:category] if args.key?(:category)
263
+ @description = args[:description] if args.key?(:description)
264
+ @exception_audit_log_link = args[:exception_audit_log_link] if args.key?(:exception_audit_log_link)
265
+ @name = args[:name] if args.key?(:name)
266
+ @non_compliant_org_policy = args[:non_compliant_org_policy] if args.key?(:non_compliant_org_policy)
267
+ @org_policy_constraint = args[:org_policy_constraint] if args.key?(:org_policy_constraint)
268
+ @remediation = args[:remediation] if args.key?(:remediation)
269
+ @resolve_time = args[:resolve_time] if args.key?(:resolve_time)
270
+ @state = args[:state] if args.key?(:state)
271
+ @update_time = args[:update_time] if args.key?(:update_time)
272
+ end
273
+ end
274
+
275
+ # Represents remediation guidance to resolve compliance violation for
276
+ # AssuredWorkload
277
+ class GoogleCloudAssuredworkloadsV1beta1ViolationRemediation
278
+ include Google::Apis::Core::Hashable
279
+
280
+ # Values that can resolve the violation For example: for list org policy
281
+ # violations, this will either be the list of allowed or denied values
282
+ # Corresponds to the JSON property `compliantValues`
283
+ # @return [Array<String>]
284
+ attr_accessor :compliant_values
285
+
286
+ # Instructions to remediate violation
287
+ # Corresponds to the JSON property `instructions`
288
+ # @return [Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1ViolationRemediationInstructions]
289
+ attr_accessor :instructions
290
+
291
+ # Output only. Reemediation type based on the type of org policy values violated
292
+ # Corresponds to the JSON property `remediationType`
293
+ # @return [String]
294
+ attr_accessor :remediation_type
295
+
296
+ def initialize(**args)
297
+ update!(**args)
298
+ end
299
+
300
+ # Update properties of this object
301
+ def update!(**args)
302
+ @compliant_values = args[:compliant_values] if args.key?(:compliant_values)
303
+ @instructions = args[:instructions] if args.key?(:instructions)
304
+ @remediation_type = args[:remediation_type] if args.key?(:remediation_type)
305
+ end
306
+ end
307
+
308
+ # Instructions to remediate violation
309
+ class GoogleCloudAssuredworkloadsV1beta1ViolationRemediationInstructions
310
+ include Google::Apis::Core::Hashable
311
+
312
+ # Remediation instructions to resolve violation via cloud console
313
+ # Corresponds to the JSON property `consoleInstructions`
314
+ # @return [Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1ViolationRemediationInstructionsConsole]
315
+ attr_accessor :console_instructions
316
+
317
+ # Remediation instructions to resolve violation via gcloud cli
318
+ # Corresponds to the JSON property `gcloudInstructions`
319
+ # @return [Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1ViolationRemediationInstructionsGcloud]
320
+ attr_accessor :gcloud_instructions
321
+
322
+ def initialize(**args)
323
+ update!(**args)
324
+ end
325
+
326
+ # Update properties of this object
327
+ def update!(**args)
328
+ @console_instructions = args[:console_instructions] if args.key?(:console_instructions)
329
+ @gcloud_instructions = args[:gcloud_instructions] if args.key?(:gcloud_instructions)
330
+ end
331
+ end
332
+
333
+ # Remediation instructions to resolve violation via cloud console
334
+ class GoogleCloudAssuredworkloadsV1beta1ViolationRemediationInstructionsConsole
335
+ include Google::Apis::Core::Hashable
336
+
337
+ # Additional urls for more information about steps
338
+ # Corresponds to the JSON property `additionalLinks`
339
+ # @return [Array<String>]
340
+ attr_accessor :additional_links
341
+
342
+ # Link to console page where violations can be resolved
343
+ # Corresponds to the JSON property `consoleUris`
344
+ # @return [Array<String>]
345
+ attr_accessor :console_uris
346
+
347
+ # Steps to resolve violation via cloud console
348
+ # Corresponds to the JSON property `steps`
349
+ # @return [Array<String>]
350
+ attr_accessor :steps
351
+
352
+ def initialize(**args)
353
+ update!(**args)
354
+ end
355
+
356
+ # Update properties of this object
357
+ def update!(**args)
358
+ @additional_links = args[:additional_links] if args.key?(:additional_links)
359
+ @console_uris = args[:console_uris] if args.key?(:console_uris)
360
+ @steps = args[:steps] if args.key?(:steps)
361
+ end
362
+ end
363
+
364
+ # Remediation instructions to resolve violation via gcloud cli
365
+ class GoogleCloudAssuredworkloadsV1beta1ViolationRemediationInstructionsGcloud
366
+ include Google::Apis::Core::Hashable
367
+
368
+ # Additional urls for more information about steps
369
+ # Corresponds to the JSON property `additionalLinks`
370
+ # @return [Array<String>]
371
+ attr_accessor :additional_links
372
+
373
+ # Gcloud command to resolve violation
374
+ # Corresponds to the JSON property `gcloudCommands`
375
+ # @return [Array<String>]
376
+ attr_accessor :gcloud_commands
377
+
378
+ # Steps to resolve violation via gcloud cli
379
+ # Corresponds to the JSON property `steps`
380
+ # @return [Array<String>]
381
+ attr_accessor :steps
382
+
383
+ def initialize(**args)
384
+ update!(**args)
385
+ end
386
+
387
+ # Update properties of this object
388
+ def update!(**args)
389
+ @additional_links = args[:additional_links] if args.key?(:additional_links)
390
+ @gcloud_commands = args[:gcloud_commands] if args.key?(:gcloud_commands)
391
+ @steps = args[:steps] if args.key?(:steps)
392
+ end
393
+ end
394
+
395
+ # An Workload object for managing highly regulated workloads of cloud customers.
396
+ class GoogleCloudAssuredworkloadsV1beta1Workload
397
+ include Google::Apis::Core::Hashable
398
+
399
+ # Optional. The billing account used for the resources which are direct children
400
+ # of workload. This billing account is initially associated with the resources
401
+ # created as part of Workload creation. After the initial creation of these
402
+ # resources, the customer can change the assigned billing account. The resource
403
+ # name has the form `billingAccounts/`billing_account_id``. For example, `
404
+ # billingAccounts/012345-567890-ABCDEF`.
405
+ # Corresponds to the JSON property `billingAccount`
406
+ # @return [String]
407
+ attr_accessor :billing_account
408
+
409
+ # Settings specific to resources needed for CJIS.
410
+ # Corresponds to the JSON property `cjisSettings`
411
+ # @return [Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadCjisSettings]
412
+ attr_accessor :cjis_settings
413
+
414
+ # Required. Immutable. Compliance Regime associated with this workload.
415
+ # Corresponds to the JSON property `complianceRegime`
416
+ # @return [String]
417
+ attr_accessor :compliance_regime
418
+
419
+ # Represents the Compliance Status of this workload
420
+ # Corresponds to the JSON property `complianceStatus`
421
+ # @return [Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadComplianceStatus]
422
+ attr_accessor :compliance_status
423
+
424
+ # Output only. Urls for services which are compliant for this Assured Workload,
425
+ # but which are currently disallowed by the ResourceUsageRestriction org policy.
426
+ # Invoke RestrictAllowedResources endpoint to allow your project developers to
427
+ # use these services in their environment."
428
+ # Corresponds to the JSON property `compliantButDisallowedServices`
429
+ # @return [Array<String>]
430
+ attr_accessor :compliant_but_disallowed_services
431
+
432
+ # Output only. Immutable. The Workload creation timestamp.
433
+ # Corresponds to the JSON property `createTime`
434
+ # @return [String]
435
+ attr_accessor :create_time
436
+
437
+ # Required. The user-assigned display name of the Workload. When present it must
438
+ # be between 4 to 30 characters. Allowed characters are: lowercase and uppercase
439
+ # letters, numbers, hyphen, and spaces. Example: My Workload
440
+ # Corresponds to the JSON property `displayName`
441
+ # @return [String]
442
+ attr_accessor :display_name
443
+
444
+ # Optional. Indicates the sovereignty status of the given workload. Currently
445
+ # meant to be used by Europe/Canada customers.
446
+ # Corresponds to the JSON property `enableSovereignControls`
447
+ # @return [Boolean]
448
+ attr_accessor :enable_sovereign_controls
449
+ alias_method :enable_sovereign_controls?, :enable_sovereign_controls
450
+
451
+ # Optional. ETag of the workload, it is calculated on the basis of the Workload
452
+ # contents. It will be used in Update & Delete operations.
453
+ # Corresponds to the JSON property `etag`
454
+ # @return [String]
455
+ attr_accessor :etag
456
+
457
+ # Settings specific to resources needed for FedRAMP High.
458
+ # Corresponds to the JSON property `fedrampHighSettings`
459
+ # @return [Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadFedrampHighSettings]
460
+ attr_accessor :fedramp_high_settings
461
+
462
+ # Settings specific to resources needed for FedRAMP Moderate.
463
+ # Corresponds to the JSON property `fedrampModerateSettings`
464
+ # @return [Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadFedrampModerateSettings]
465
+ attr_accessor :fedramp_moderate_settings
466
+
467
+ # Settings specific to resources needed for IL4.
468
+ # Corresponds to the JSON property `il4Settings`
469
+ # @return [Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadIl4Settings]
470
+ attr_accessor :il4_settings
471
+
472
+ # Output only. Represents the KAJ enrollment state of the given workload.
473
+ # Corresponds to the JSON property `kajEnrollmentState`
474
+ # @return [String]
475
+ attr_accessor :kaj_enrollment_state
476
+
477
+ # Settings specific to the Key Management Service.
478
+ # Corresponds to the JSON property `kmsSettings`
479
+ # @return [Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadKmsSettings]
480
+ attr_accessor :kms_settings
481
+
482
+ # Optional. Labels applied to the workload.
483
+ # Corresponds to the JSON property `labels`
484
+ # @return [Hash<String,String>]
485
+ attr_accessor :labels
486
+
487
+ # Optional. The resource name of the workload. Format: organizations/`
488
+ # organization`/locations/`location`/workloads/`workload` Read-only.
489
+ # Corresponds to the JSON property `name`
490
+ # @return [String]
491
+ attr_accessor :name
492
+
493
+ # Optional. Compliance Regime associated with this workload.
494
+ # Corresponds to the JSON property `partner`
495
+ # @return [String]
496
+ attr_accessor :partner
497
+
498
+ # Input only. The parent resource for the resources managed by this Assured
499
+ # Workload. May be either empty or a folder resource which is a child of the
500
+ # Workload parent. If not specified all resources are created under the parent
501
+ # organization. Format: folders/`folder_id`
502
+ # Corresponds to the JSON property `provisionedResourcesParent`
503
+ # @return [String]
504
+ attr_accessor :provisioned_resources_parent
505
+
506
+ # Input only. Resource properties that are used to customize workload resources.
507
+ # These properties (such as custom project id) will be used to create workload
508
+ # resources if possible. This field is optional.
509
+ # Corresponds to the JSON property `resourceSettings`
510
+ # @return [Array<Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadResourceSettings>]
511
+ attr_accessor :resource_settings
512
+
513
+ # Output only. The resources associated with this workload. These resources will
514
+ # be created when creating the workload. If any of the projects already exist,
515
+ # the workload creation will fail. Always read only.
516
+ # Corresponds to the JSON property `resources`
517
+ # @return [Array<Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadResourceInfo>]
518
+ attr_accessor :resources
519
+
520
+ # Signed Access Approvals (SAA) enrollment response.
521
+ # Corresponds to the JSON property `saaEnrollmentResponse`
522
+ # @return [Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadSaaEnrollmentResponse]
523
+ attr_accessor :saa_enrollment_response
524
+
525
+ def initialize(**args)
526
+ update!(**args)
527
+ end
528
+
529
+ # Update properties of this object
530
+ def update!(**args)
531
+ @billing_account = args[:billing_account] if args.key?(:billing_account)
532
+ @cjis_settings = args[:cjis_settings] if args.key?(:cjis_settings)
533
+ @compliance_regime = args[:compliance_regime] if args.key?(:compliance_regime)
534
+ @compliance_status = args[:compliance_status] if args.key?(:compliance_status)
535
+ @compliant_but_disallowed_services = args[:compliant_but_disallowed_services] if args.key?(:compliant_but_disallowed_services)
536
+ @create_time = args[:create_time] if args.key?(:create_time)
537
+ @display_name = args[:display_name] if args.key?(:display_name)
538
+ @enable_sovereign_controls = args[:enable_sovereign_controls] if args.key?(:enable_sovereign_controls)
539
+ @etag = args[:etag] if args.key?(:etag)
540
+ @fedramp_high_settings = args[:fedramp_high_settings] if args.key?(:fedramp_high_settings)
541
+ @fedramp_moderate_settings = args[:fedramp_moderate_settings] if args.key?(:fedramp_moderate_settings)
542
+ @il4_settings = args[:il4_settings] if args.key?(:il4_settings)
543
+ @kaj_enrollment_state = args[:kaj_enrollment_state] if args.key?(:kaj_enrollment_state)
544
+ @kms_settings = args[:kms_settings] if args.key?(:kms_settings)
545
+ @labels = args[:labels] if args.key?(:labels)
546
+ @name = args[:name] if args.key?(:name)
547
+ @partner = args[:partner] if args.key?(:partner)
548
+ @provisioned_resources_parent = args[:provisioned_resources_parent] if args.key?(:provisioned_resources_parent)
549
+ @resource_settings = args[:resource_settings] if args.key?(:resource_settings)
550
+ @resources = args[:resources] if args.key?(:resources)
551
+ @saa_enrollment_response = args[:saa_enrollment_response] if args.key?(:saa_enrollment_response)
552
+ end
553
+ end
554
+
555
+ # Settings specific to resources needed for CJIS.
556
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadCjisSettings
557
+ include Google::Apis::Core::Hashable
558
+
559
+ # Settings specific to the Key Management Service.
560
+ # Corresponds to the JSON property `kmsSettings`
561
+ # @return [Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadKmsSettings]
562
+ attr_accessor :kms_settings
563
+
564
+ def initialize(**args)
565
+ update!(**args)
566
+ end
567
+
568
+ # Update properties of this object
569
+ def update!(**args)
570
+ @kms_settings = args[:kms_settings] if args.key?(:kms_settings)
571
+ end
572
+ end
573
+
574
+ # Represents the Compliance Status of this workload
575
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadComplianceStatus
576
+ include Google::Apis::Core::Hashable
577
+
578
+ # Count of active Violations which are acknowledged in the Workload.
579
+ # Corresponds to the JSON property `acknowledgedViolationCount`
580
+ # @return [Fixnum]
581
+ attr_accessor :acknowledged_violation_count
582
+
583
+ # Count of active Violations which haven't been acknowledged.
584
+ # Corresponds to the JSON property `activeViolationCount`
585
+ # @return [Fixnum]
586
+ attr_accessor :active_violation_count
587
+
588
+ def initialize(**args)
589
+ update!(**args)
590
+ end
591
+
592
+ # Update properties of this object
593
+ def update!(**args)
594
+ @acknowledged_violation_count = args[:acknowledged_violation_count] if args.key?(:acknowledged_violation_count)
595
+ @active_violation_count = args[:active_violation_count] if args.key?(:active_violation_count)
596
+ end
597
+ end
598
+
599
+ # Settings specific to resources needed for FedRAMP High.
600
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadFedrampHighSettings
601
+ include Google::Apis::Core::Hashable
602
+
603
+ # Settings specific to the Key Management Service.
604
+ # Corresponds to the JSON property `kmsSettings`
605
+ # @return [Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadKmsSettings]
606
+ attr_accessor :kms_settings
607
+
608
+ def initialize(**args)
609
+ update!(**args)
610
+ end
611
+
612
+ # Update properties of this object
613
+ def update!(**args)
614
+ @kms_settings = args[:kms_settings] if args.key?(:kms_settings)
615
+ end
616
+ end
617
+
618
+ # Settings specific to resources needed for FedRAMP Moderate.
619
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadFedrampModerateSettings
620
+ include Google::Apis::Core::Hashable
621
+
622
+ # Settings specific to the Key Management Service.
623
+ # Corresponds to the JSON property `kmsSettings`
624
+ # @return [Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadKmsSettings]
625
+ attr_accessor :kms_settings
626
+
627
+ def initialize(**args)
628
+ update!(**args)
629
+ end
630
+
631
+ # Update properties of this object
632
+ def update!(**args)
633
+ @kms_settings = args[:kms_settings] if args.key?(:kms_settings)
634
+ end
635
+ end
636
+
637
+ # Settings specific to resources needed for IL4.
638
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadIl4Settings
639
+ include Google::Apis::Core::Hashable
640
+
641
+ # Settings specific to the Key Management Service.
642
+ # Corresponds to the JSON property `kmsSettings`
643
+ # @return [Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadKmsSettings]
644
+ attr_accessor :kms_settings
645
+
646
+ def initialize(**args)
647
+ update!(**args)
648
+ end
649
+
650
+ # Update properties of this object
651
+ def update!(**args)
652
+ @kms_settings = args[:kms_settings] if args.key?(:kms_settings)
653
+ end
654
+ end
655
+
656
+ # Settings specific to the Key Management Service.
657
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadKmsSettings
658
+ include Google::Apis::Core::Hashable
659
+
660
+ # Required. Input only. Immutable. The time at which the Key Management Service
661
+ # will automatically create a new version of the crypto key and mark it as the
662
+ # primary.
663
+ # Corresponds to the JSON property `nextRotationTime`
664
+ # @return [String]
665
+ attr_accessor :next_rotation_time
666
+
667
+ # Required. Input only. Immutable. [next_rotation_time] will be advanced by this
668
+ # period when the Key Management Service automatically rotates a key. Must be at
669
+ # least 24 hours and at most 876,000 hours.
670
+ # Corresponds to the JSON property `rotationPeriod`
671
+ # @return [String]
672
+ attr_accessor :rotation_period
673
+
674
+ def initialize(**args)
675
+ update!(**args)
676
+ end
677
+
678
+ # Update properties of this object
679
+ def update!(**args)
680
+ @next_rotation_time = args[:next_rotation_time] if args.key?(:next_rotation_time)
681
+ @rotation_period = args[:rotation_period] if args.key?(:rotation_period)
682
+ end
683
+ end
684
+
685
+ # Represent the resources that are children of this Workload.
686
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadResourceInfo
687
+ include Google::Apis::Core::Hashable
688
+
689
+ # Resource identifier. For a project this represents project_number.
690
+ # Corresponds to the JSON property `resourceId`
691
+ # @return [Fixnum]
692
+ attr_accessor :resource_id
693
+
694
+ # Indicates the type of resource.
695
+ # Corresponds to the JSON property `resourceType`
696
+ # @return [String]
697
+ attr_accessor :resource_type
698
+
699
+ def initialize(**args)
700
+ update!(**args)
701
+ end
702
+
703
+ # Update properties of this object
704
+ def update!(**args)
705
+ @resource_id = args[:resource_id] if args.key?(:resource_id)
706
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
707
+ end
708
+ end
709
+
710
+ # Represent the custom settings for the resources to be created.
711
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadResourceSettings
712
+ include Google::Apis::Core::Hashable
713
+
714
+ # User-assigned resource display name. If not empty it will be used to create a
715
+ # resource with the specified name.
716
+ # Corresponds to the JSON property `displayName`
717
+ # @return [String]
718
+ attr_accessor :display_name
719
+
720
+ # Resource identifier. For a project this represents project_id. If the project
721
+ # is already taken, the workload creation will fail. For KeyRing, this
722
+ # represents the keyring_id. For a folder, don't set this value as folder_id is
723
+ # assigned by Google.
724
+ # Corresponds to the JSON property `resourceId`
725
+ # @return [String]
726
+ attr_accessor :resource_id
727
+
728
+ # Indicates the type of resource. This field should be specified to correspond
729
+ # the id to the right project type (CONSUMER_PROJECT or ENCRYPTION_KEYS_PROJECT)
730
+ # Corresponds to the JSON property `resourceType`
731
+ # @return [String]
732
+ attr_accessor :resource_type
733
+
734
+ def initialize(**args)
735
+ update!(**args)
736
+ end
737
+
738
+ # Update properties of this object
739
+ def update!(**args)
740
+ @display_name = args[:display_name] if args.key?(:display_name)
741
+ @resource_id = args[:resource_id] if args.key?(:resource_id)
742
+ @resource_type = args[:resource_type] if args.key?(:resource_type)
743
+ end
744
+ end
745
+
746
+ # Signed Access Approvals (SAA) enrollment response.
747
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadSaaEnrollmentResponse
748
+ include Google::Apis::Core::Hashable
749
+
750
+ # Indicates SAA enrollment setup error if any.
751
+ # Corresponds to the JSON property `setupErrors`
752
+ # @return [Array<String>]
753
+ attr_accessor :setup_errors
754
+
755
+ # Indicates SAA enrollment status of a given workload.
756
+ # Corresponds to the JSON property `setupStatus`
757
+ # @return [String]
758
+ attr_accessor :setup_status
759
+
760
+ def initialize(**args)
761
+ update!(**args)
762
+ end
763
+
764
+ # Update properties of this object
765
+ def update!(**args)
766
+ @setup_errors = args[:setup_errors] if args.key?(:setup_errors)
767
+ @setup_status = args[:setup_status] if args.key?(:setup_status)
768
+ end
769
+ end
770
+
771
+ # The response message for Operations.ListOperations.
772
+ class GoogleLongrunningListOperationsResponse
773
+ include Google::Apis::Core::Hashable
774
+
775
+ # The standard List next-page token.
776
+ # Corresponds to the JSON property `nextPageToken`
777
+ # @return [String]
778
+ attr_accessor :next_page_token
779
+
780
+ # A list of operations that matches the specified filter in the request.
781
+ # Corresponds to the JSON property `operations`
782
+ # @return [Array<Google::Apis::AssuredworkloadsV1beta1::GoogleLongrunningOperation>]
783
+ attr_accessor :operations
784
+
785
+ def initialize(**args)
786
+ update!(**args)
787
+ end
788
+
789
+ # Update properties of this object
790
+ def update!(**args)
791
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
792
+ @operations = args[:operations] if args.key?(:operations)
793
+ end
794
+ end
795
+
796
+ # This resource represents a long-running operation that is the result of a
797
+ # network API call.
798
+ class GoogleLongrunningOperation
799
+ include Google::Apis::Core::Hashable
800
+
801
+ # If the value is `false`, it means the operation is still in progress. If `true`
802
+ # , the operation is completed, and either `error` or `response` is available.
803
+ # Corresponds to the JSON property `done`
804
+ # @return [Boolean]
805
+ attr_accessor :done
806
+ alias_method :done?, :done
807
+
808
+ # The `Status` type defines a logical error model that is suitable for different
809
+ # programming environments, including REST APIs and RPC APIs. It is used by [
810
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
811
+ # data: error code, error message, and error details. You can find out more
812
+ # about this error model and how to work with it in the [API Design Guide](https:
813
+ # //cloud.google.com/apis/design/errors).
814
+ # Corresponds to the JSON property `error`
815
+ # @return [Google::Apis::AssuredworkloadsV1beta1::GoogleRpcStatus]
816
+ attr_accessor :error
817
+
818
+ # Service-specific metadata associated with the operation. It typically contains
819
+ # progress information and common metadata such as create time. Some services
820
+ # might not provide such metadata. Any method that returns a long-running
821
+ # operation should document the metadata type, if any.
822
+ # Corresponds to the JSON property `metadata`
823
+ # @return [Hash<String,Object>]
824
+ attr_accessor :metadata
825
+
826
+ # The server-assigned name, which is only unique within the same service that
827
+ # originally returns it. If you use the default HTTP mapping, the `name` should
828
+ # be a resource name ending with `operations/`unique_id``.
829
+ # Corresponds to the JSON property `name`
830
+ # @return [String]
831
+ attr_accessor :name
832
+
833
+ # The normal response of the operation in case of success. If the original
834
+ # method returns no data on success, such as `Delete`, the response is `google.
835
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
836
+ # the response should be the resource. For other methods, the response should
837
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
838
+ # example, if the original method name is `TakeSnapshot()`, the inferred
839
+ # response type is `TakeSnapshotResponse`.
840
+ # Corresponds to the JSON property `response`
841
+ # @return [Hash<String,Object>]
842
+ attr_accessor :response
843
+
844
+ def initialize(**args)
845
+ update!(**args)
846
+ end
847
+
848
+ # Update properties of this object
849
+ def update!(**args)
850
+ @done = args[:done] if args.key?(:done)
851
+ @error = args[:error] if args.key?(:error)
852
+ @metadata = args[:metadata] if args.key?(:metadata)
853
+ @name = args[:name] if args.key?(:name)
854
+ @response = args[:response] if args.key?(:response)
855
+ end
856
+ end
857
+
858
+ # A generic empty message that you can re-use to avoid defining duplicated empty
859
+ # messages in your APIs. A typical example is to use it as the request or the
860
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
861
+ # protobuf.Empty) returns (google.protobuf.Empty); `
862
+ class GoogleProtobufEmpty
863
+ include Google::Apis::Core::Hashable
864
+
865
+ def initialize(**args)
866
+ update!(**args)
867
+ end
868
+
869
+ # Update properties of this object
870
+ def update!(**args)
871
+ end
872
+ end
873
+
874
+ # The `Status` type defines a logical error model that is suitable for different
875
+ # programming environments, including REST APIs and RPC APIs. It is used by [
876
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
877
+ # data: error code, error message, and error details. You can find out more
878
+ # about this error model and how to work with it in the [API Design Guide](https:
879
+ # //cloud.google.com/apis/design/errors).
880
+ class GoogleRpcStatus
881
+ include Google::Apis::Core::Hashable
882
+
883
+ # The status code, which should be an enum value of google.rpc.Code.
884
+ # Corresponds to the JSON property `code`
885
+ # @return [Fixnum]
886
+ attr_accessor :code
887
+
888
+ # A list of messages that carry the error details. There is a common set of
889
+ # message types for APIs to use.
890
+ # Corresponds to the JSON property `details`
891
+ # @return [Array<Hash<String,Object>>]
892
+ attr_accessor :details
893
+
894
+ # A developer-facing error message, which should be in English. Any user-facing
895
+ # error message should be localized and sent in the google.rpc.Status.details
896
+ # field, or localized by the client.
897
+ # Corresponds to the JSON property `message`
898
+ # @return [String]
899
+ attr_accessor :message
900
+
901
+ def initialize(**args)
902
+ update!(**args)
903
+ end
904
+
905
+ # Update properties of this object
906
+ def update!(**args)
907
+ @code = args[:code] if args.key?(:code)
908
+ @details = args[:details] if args.key?(:details)
909
+ @message = args[:message] if args.key?(:message)
910
+ end
911
+ end
912
+ end
913
+ end
914
+ end