google-apis-assuredworkloads_v1beta1 0.1.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.
@@ -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