google-apis-cloudcontrolspartner_v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,928 @@
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 CloudcontrolspartnerV1
24
+
25
+ # Details about the Access request.
26
+ class AccessApprovalRequest
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Identifier. Format: `organizations/`organization`/locations/`location`/
30
+ # customers/`customer`/workloads/`workload`/accessApprovalRequests/`
31
+ # access_approval_request``
32
+ # Corresponds to the JSON property `name`
33
+ # @return [String]
34
+ attr_accessor :name
35
+
36
+ # The time at which approval was requested.
37
+ # Corresponds to the JSON property `requestTime`
38
+ # @return [String]
39
+ attr_accessor :request_time
40
+
41
+ # The requested expiration for the approval. If the request is approved, access
42
+ # will be granted from the time of approval until the expiration time.
43
+ # Corresponds to the JSON property `requestedExpirationTime`
44
+ # @return [String]
45
+ attr_accessor :requested_expiration_time
46
+
47
+ # Reason for the access.
48
+ # Corresponds to the JSON property `requestedReason`
49
+ # @return [Google::Apis::CloudcontrolspartnerV1::AccessReason]
50
+ attr_accessor :requested_reason
51
+
52
+ def initialize(**args)
53
+ update!(**args)
54
+ end
55
+
56
+ # Update properties of this object
57
+ def update!(**args)
58
+ @name = args[:name] if args.key?(:name)
59
+ @request_time = args[:request_time] if args.key?(:request_time)
60
+ @requested_expiration_time = args[:requested_expiration_time] if args.key?(:requested_expiration_time)
61
+ @requested_reason = args[:requested_reason] if args.key?(:requested_reason)
62
+ end
63
+ end
64
+
65
+ # Reason for the access.
66
+ class AccessReason
67
+ include Google::Apis::Core::Hashable
68
+
69
+ # More detail about certain reason types. See comments for each type above.
70
+ # Corresponds to the JSON property `detail`
71
+ # @return [String]
72
+ attr_accessor :detail
73
+
74
+ # Type of access justification.
75
+ # Corresponds to the JSON property `type`
76
+ # @return [String]
77
+ attr_accessor :type
78
+
79
+ def initialize(**args)
80
+ update!(**args)
81
+ end
82
+
83
+ # Update properties of this object
84
+ def update!(**args)
85
+ @detail = args[:detail] if args.key?(:detail)
86
+ @type = args[:type] if args.key?(:type)
87
+ end
88
+ end
89
+
90
+ # Information around the error that occurred if the connection state is anything
91
+ # other than available or unspecified
92
+ class ConnectionError
93
+ include Google::Apis::Core::Hashable
94
+
95
+ # The error domain for the error
96
+ # Corresponds to the JSON property `errorDomain`
97
+ # @return [String]
98
+ attr_accessor :error_domain
99
+
100
+ # The error message for the error
101
+ # Corresponds to the JSON property `errorMessage`
102
+ # @return [String]
103
+ attr_accessor :error_message
104
+
105
+ def initialize(**args)
106
+ update!(**args)
107
+ end
108
+
109
+ # Update properties of this object
110
+ def update!(**args)
111
+ @error_domain = args[:error_domain] if args.key?(:error_domain)
112
+ @error_message = args[:error_message] if args.key?(:error_message)
113
+ end
114
+ end
115
+
116
+ # Remediation instructions to resolve violation via cloud console
117
+ class Console
118
+ include Google::Apis::Core::Hashable
119
+
120
+ # Additional urls for more information about steps
121
+ # Corresponds to the JSON property `additionalLinks`
122
+ # @return [Array<String>]
123
+ attr_accessor :additional_links
124
+
125
+ # Link to console page where violations can be resolved
126
+ # Corresponds to the JSON property `consoleUris`
127
+ # @return [Array<String>]
128
+ attr_accessor :console_uris
129
+
130
+ # Steps to resolve violation via cloud console
131
+ # Corresponds to the JSON property `steps`
132
+ # @return [Array<String>]
133
+ attr_accessor :steps
134
+
135
+ def initialize(**args)
136
+ update!(**args)
137
+ end
138
+
139
+ # Update properties of this object
140
+ def update!(**args)
141
+ @additional_links = args[:additional_links] if args.key?(:additional_links)
142
+ @console_uris = args[:console_uris] if args.key?(:console_uris)
143
+ @steps = args[:steps] if args.key?(:steps)
144
+ end
145
+ end
146
+
147
+ # Contains metadata around a Cloud Controls Partner Customer
148
+ class Customer
149
+ include Google::Apis::Core::Hashable
150
+
151
+ # Container for customer onboarding steps
152
+ # Corresponds to the JSON property `customerOnboardingState`
153
+ # @return [Google::Apis::CloudcontrolspartnerV1::CustomerOnboardingState]
154
+ attr_accessor :customer_onboarding_state
155
+
156
+ # The customer organization's display name. E.g. "google.com".
157
+ # Corresponds to the JSON property `displayName`
158
+ # @return [String]
159
+ attr_accessor :display_name
160
+
161
+ # Indicates whether a customer is fully onboarded
162
+ # Corresponds to the JSON property `isOnboarded`
163
+ # @return [Boolean]
164
+ attr_accessor :is_onboarded
165
+ alias_method :is_onboarded?, :is_onboarded
166
+
167
+ # Identifier. Format: `organizations/`organization`/locations/`location`/
168
+ # customers/`customer``
169
+ # Corresponds to the JSON property `name`
170
+ # @return [String]
171
+ attr_accessor :name
172
+
173
+ def initialize(**args)
174
+ update!(**args)
175
+ end
176
+
177
+ # Update properties of this object
178
+ def update!(**args)
179
+ @customer_onboarding_state = args[:customer_onboarding_state] if args.key?(:customer_onboarding_state)
180
+ @display_name = args[:display_name] if args.key?(:display_name)
181
+ @is_onboarded = args[:is_onboarded] if args.key?(:is_onboarded)
182
+ @name = args[:name] if args.key?(:name)
183
+ end
184
+ end
185
+
186
+ # Container for customer onboarding steps
187
+ class CustomerOnboardingState
188
+ include Google::Apis::Core::Hashable
189
+
190
+ # List of customer onboarding steps
191
+ # Corresponds to the JSON property `onboardingSteps`
192
+ # @return [Array<Google::Apis::CloudcontrolspartnerV1::CustomerOnboardingStep>]
193
+ attr_accessor :onboarding_steps
194
+
195
+ def initialize(**args)
196
+ update!(**args)
197
+ end
198
+
199
+ # Update properties of this object
200
+ def update!(**args)
201
+ @onboarding_steps = args[:onboarding_steps] if args.key?(:onboarding_steps)
202
+ end
203
+ end
204
+
205
+ # Container for customer onboarding information
206
+ class CustomerOnboardingStep
207
+ include Google::Apis::Core::Hashable
208
+
209
+ # Output only. Current state of the step
210
+ # Corresponds to the JSON property `completionState`
211
+ # @return [String]
212
+ attr_accessor :completion_state
213
+
214
+ # The completion time of the onboarding step
215
+ # Corresponds to the JSON property `completionTime`
216
+ # @return [String]
217
+ attr_accessor :completion_time
218
+
219
+ # The starting time of the onboarding step
220
+ # Corresponds to the JSON property `startTime`
221
+ # @return [String]
222
+ attr_accessor :start_time
223
+
224
+ # The onboarding step
225
+ # Corresponds to the JSON property `step`
226
+ # @return [String]
227
+ attr_accessor :step
228
+
229
+ def initialize(**args)
230
+ update!(**args)
231
+ end
232
+
233
+ # Update properties of this object
234
+ def update!(**args)
235
+ @completion_state = args[:completion_state] if args.key?(:completion_state)
236
+ @completion_time = args[:completion_time] if args.key?(:completion_time)
237
+ @start_time = args[:start_time] if args.key?(:start_time)
238
+ @step = args[:step] if args.key?(:step)
239
+ end
240
+ end
241
+
242
+ # Details about the EKM connection
243
+ class EkmConnection
244
+ include Google::Apis::Core::Hashable
245
+
246
+ # Information around the error that occurred if the connection state is anything
247
+ # other than available or unspecified
248
+ # Corresponds to the JSON property `connectionError`
249
+ # @return [Google::Apis::CloudcontrolspartnerV1::ConnectionError]
250
+ attr_accessor :connection_error
251
+
252
+ # Resource name of the EKM connection in the format: projects/`project`/
253
+ # locations/`location`/ekmConnections/`ekm_connection`
254
+ # Corresponds to the JSON property `connectionName`
255
+ # @return [String]
256
+ attr_accessor :connection_name
257
+
258
+ # Output only. The connection state
259
+ # Corresponds to the JSON property `connectionState`
260
+ # @return [String]
261
+ attr_accessor :connection_state
262
+
263
+ def initialize(**args)
264
+ update!(**args)
265
+ end
266
+
267
+ # Update properties of this object
268
+ def update!(**args)
269
+ @connection_error = args[:connection_error] if args.key?(:connection_error)
270
+ @connection_name = args[:connection_name] if args.key?(:connection_name)
271
+ @connection_state = args[:connection_state] if args.key?(:connection_state)
272
+ end
273
+ end
274
+
275
+ # The EKM connections associated with a workload
276
+ class EkmConnections
277
+ include Google::Apis::Core::Hashable
278
+
279
+ # The EKM connections associated with the workload
280
+ # Corresponds to the JSON property `ekmConnections`
281
+ # @return [Array<Google::Apis::CloudcontrolspartnerV1::EkmConnection>]
282
+ attr_accessor :ekm_connections
283
+
284
+ # Identifier. Format: `organizations/`organization`/locations/`location`/
285
+ # customers/`customer`/workloads/`workload`/ekmConnections`
286
+ # Corresponds to the JSON property `name`
287
+ # @return [String]
288
+ attr_accessor :name
289
+
290
+ def initialize(**args)
291
+ update!(**args)
292
+ end
293
+
294
+ # Update properties of this object
295
+ def update!(**args)
296
+ @ekm_connections = args[:ekm_connections] if args.key?(:ekm_connections)
297
+ @name = args[:name] if args.key?(:name)
298
+ end
299
+ end
300
+
301
+ # Holds information needed by Mudbray to use partner EKMs for workloads.
302
+ class EkmMetadata
303
+ include Google::Apis::Core::Hashable
304
+
305
+ # Endpoint for sending requests to the EKM for key provisioning during Assured
306
+ # Workload creation.
307
+ # Corresponds to the JSON property `ekmEndpointUri`
308
+ # @return [String]
309
+ attr_accessor :ekm_endpoint_uri
310
+
311
+ # The Cloud EKM partner.
312
+ # Corresponds to the JSON property `ekmSolution`
313
+ # @return [String]
314
+ attr_accessor :ekm_solution
315
+
316
+ def initialize(**args)
317
+ update!(**args)
318
+ end
319
+
320
+ # Update properties of this object
321
+ def update!(**args)
322
+ @ekm_endpoint_uri = args[:ekm_endpoint_uri] if args.key?(:ekm_endpoint_uri)
323
+ @ekm_solution = args[:ekm_solution] if args.key?(:ekm_solution)
324
+ end
325
+ end
326
+
327
+ # Remediation instructions to resolve violation via gcloud cli
328
+ class Gcloud
329
+ include Google::Apis::Core::Hashable
330
+
331
+ # Additional urls for more information about steps
332
+ # Corresponds to the JSON property `additionalLinks`
333
+ # @return [Array<String>]
334
+ attr_accessor :additional_links
335
+
336
+ # Gcloud command to resolve violation
337
+ # Corresponds to the JSON property `gcloudCommands`
338
+ # @return [Array<String>]
339
+ attr_accessor :gcloud_commands
340
+
341
+ # Steps to resolve violation via gcloud cli
342
+ # Corresponds to the JSON property `steps`
343
+ # @return [Array<String>]
344
+ attr_accessor :steps
345
+
346
+ def initialize(**args)
347
+ update!(**args)
348
+ end
349
+
350
+ # Update properties of this object
351
+ def update!(**args)
352
+ @additional_links = args[:additional_links] if args.key?(:additional_links)
353
+ @gcloud_commands = args[:gcloud_commands] if args.key?(:gcloud_commands)
354
+ @steps = args[:steps] if args.key?(:steps)
355
+ end
356
+ end
357
+
358
+ # Instructions to remediate violation
359
+ class Instructions
360
+ include Google::Apis::Core::Hashable
361
+
362
+ # Remediation instructions to resolve violation via cloud console
363
+ # Corresponds to the JSON property `consoleInstructions`
364
+ # @return [Google::Apis::CloudcontrolspartnerV1::Console]
365
+ attr_accessor :console_instructions
366
+
367
+ # Remediation instructions to resolve violation via gcloud cli
368
+ # Corresponds to the JSON property `gcloudInstructions`
369
+ # @return [Google::Apis::CloudcontrolspartnerV1::Gcloud]
370
+ attr_accessor :gcloud_instructions
371
+
372
+ def initialize(**args)
373
+ update!(**args)
374
+ end
375
+
376
+ # Update properties of this object
377
+ def update!(**args)
378
+ @console_instructions = args[:console_instructions] if args.key?(:console_instructions)
379
+ @gcloud_instructions = args[:gcloud_instructions] if args.key?(:gcloud_instructions)
380
+ end
381
+ end
382
+
383
+ # Response message for list access requests.
384
+ class ListAccessApprovalRequestsResponse
385
+ include Google::Apis::Core::Hashable
386
+
387
+ # List of access approval requests
388
+ # Corresponds to the JSON property `accessApprovalRequests`
389
+ # @return [Array<Google::Apis::CloudcontrolspartnerV1::AccessApprovalRequest>]
390
+ attr_accessor :access_approval_requests
391
+
392
+ # A token that can be sent as `page_token` to retrieve the next page. If this
393
+ # field is omitted, there are no subsequent pages.
394
+ # Corresponds to the JSON property `nextPageToken`
395
+ # @return [String]
396
+ attr_accessor :next_page_token
397
+
398
+ # Locations that could not be reached.
399
+ # Corresponds to the JSON property `unreachable`
400
+ # @return [Array<String>]
401
+ attr_accessor :unreachable
402
+
403
+ def initialize(**args)
404
+ update!(**args)
405
+ end
406
+
407
+ # Update properties of this object
408
+ def update!(**args)
409
+ @access_approval_requests = args[:access_approval_requests] if args.key?(:access_approval_requests)
410
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
411
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
412
+ end
413
+ end
414
+
415
+ # Response message for list customer Customers requests
416
+ class ListCustomersResponse
417
+ include Google::Apis::Core::Hashable
418
+
419
+ # List of customers
420
+ # Corresponds to the JSON property `customers`
421
+ # @return [Array<Google::Apis::CloudcontrolspartnerV1::Customer>]
422
+ attr_accessor :customers
423
+
424
+ # A token that can be sent as `page_token` to retrieve the next page. If this
425
+ # field is omitted, there are no subsequent pages.
426
+ # Corresponds to the JSON property `nextPageToken`
427
+ # @return [String]
428
+ attr_accessor :next_page_token
429
+
430
+ # Locations that could not be reached.
431
+ # Corresponds to the JSON property `unreachable`
432
+ # @return [Array<String>]
433
+ attr_accessor :unreachable
434
+
435
+ def initialize(**args)
436
+ update!(**args)
437
+ end
438
+
439
+ # Update properties of this object
440
+ def update!(**args)
441
+ @customers = args[:customers] if args.key?(:customers)
442
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
443
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
444
+ end
445
+ end
446
+
447
+ # Response message for list customer violation requests
448
+ class ListViolationsResponse
449
+ include Google::Apis::Core::Hashable
450
+
451
+ # A token that can be sent as `page_token` to retrieve the next page. If this
452
+ # field is omitted, there are no subsequent pages.
453
+ # Corresponds to the JSON property `nextPageToken`
454
+ # @return [String]
455
+ attr_accessor :next_page_token
456
+
457
+ # Workloads that could not be reached due to permission errors or any other
458
+ # error. Ref: https://google.aip.dev/217
459
+ # Corresponds to the JSON property `unreachable`
460
+ # @return [Array<String>]
461
+ attr_accessor :unreachable
462
+
463
+ # List of violation
464
+ # Corresponds to the JSON property `violations`
465
+ # @return [Array<Google::Apis::CloudcontrolspartnerV1::Violation>]
466
+ attr_accessor :violations
467
+
468
+ def initialize(**args)
469
+ update!(**args)
470
+ end
471
+
472
+ # Update properties of this object
473
+ def update!(**args)
474
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
475
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
476
+ @violations = args[:violations] if args.key?(:violations)
477
+ end
478
+ end
479
+
480
+ # Response message for list customer workloads requests.
481
+ class ListWorkloadsResponse
482
+ include Google::Apis::Core::Hashable
483
+
484
+ # A token that can be sent as `page_token` to retrieve the next page. If this
485
+ # field is omitted, there are no subsequent pages.
486
+ # Corresponds to the JSON property `nextPageToken`
487
+ # @return [String]
488
+ attr_accessor :next_page_token
489
+
490
+ # Locations that could not be reached.
491
+ # Corresponds to the JSON property `unreachable`
492
+ # @return [Array<String>]
493
+ attr_accessor :unreachable
494
+
495
+ # List of customer workloads
496
+ # Corresponds to the JSON property `workloads`
497
+ # @return [Array<Google::Apis::CloudcontrolspartnerV1::Workload>]
498
+ attr_accessor :workloads
499
+
500
+ def initialize(**args)
501
+ update!(**args)
502
+ end
503
+
504
+ # Update properties of this object
505
+ def update!(**args)
506
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
507
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
508
+ @workloads = args[:workloads] if args.key?(:workloads)
509
+ end
510
+ end
511
+
512
+ # Represents the metadata of the long-running operation.
513
+ class OperationMetadata
514
+ include Google::Apis::Core::Hashable
515
+
516
+ # Output only. API version used to start the operation.
517
+ # Corresponds to the JSON property `apiVersion`
518
+ # @return [String]
519
+ attr_accessor :api_version
520
+
521
+ # Output only. The time the operation was created.
522
+ # Corresponds to the JSON property `createTime`
523
+ # @return [String]
524
+ attr_accessor :create_time
525
+
526
+ # Output only. The time the operation finished running.
527
+ # Corresponds to the JSON property `endTime`
528
+ # @return [String]
529
+ attr_accessor :end_time
530
+
531
+ # Output only. Identifies whether the user has requested cancellation of the
532
+ # operation. Operations that have been cancelled successfully have Operation.
533
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
534
+ # CANCELLED`.
535
+ # Corresponds to the JSON property `requestedCancellation`
536
+ # @return [Boolean]
537
+ attr_accessor :requested_cancellation
538
+ alias_method :requested_cancellation?, :requested_cancellation
539
+
540
+ # Output only. Human-readable status of the operation, if any.
541
+ # Corresponds to the JSON property `statusMessage`
542
+ # @return [String]
543
+ attr_accessor :status_message
544
+
545
+ # Output only. Server-defined resource path for the target of the operation.
546
+ # Corresponds to the JSON property `target`
547
+ # @return [String]
548
+ attr_accessor :target
549
+
550
+ # Output only. Name of the verb executed by the operation.
551
+ # Corresponds to the JSON property `verb`
552
+ # @return [String]
553
+ attr_accessor :verb
554
+
555
+ def initialize(**args)
556
+ update!(**args)
557
+ end
558
+
559
+ # Update properties of this object
560
+ def update!(**args)
561
+ @api_version = args[:api_version] if args.key?(:api_version)
562
+ @create_time = args[:create_time] if args.key?(:create_time)
563
+ @end_time = args[:end_time] if args.key?(:end_time)
564
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
565
+ @status_message = args[:status_message] if args.key?(:status_message)
566
+ @target = args[:target] if args.key?(:target)
567
+ @verb = args[:verb] if args.key?(:verb)
568
+ end
569
+ end
570
+
571
+ # Message describing Partner resource
572
+ class Partner
573
+ include Google::Apis::Core::Hashable
574
+
575
+ # Output only. Time the resource was created
576
+ # Corresponds to the JSON property `createTime`
577
+ # @return [String]
578
+ attr_accessor :create_time
579
+
580
+ # List of Google Cloud supported EKM partners supported by the partner
581
+ # Corresponds to the JSON property `ekmSolutions`
582
+ # @return [Array<Google::Apis::CloudcontrolspartnerV1::EkmMetadata>]
583
+ attr_accessor :ekm_solutions
584
+
585
+ # Identifier. The resource name of the partner. Format: `organizations/`
586
+ # organization`/locations/`location`/partner` Example: "organizations/123456/
587
+ # locations/us-central1/partner"
588
+ # Corresponds to the JSON property `name`
589
+ # @return [String]
590
+ attr_accessor :name
591
+
592
+ # List of Google Cloud regions that the partner sells services to customers.
593
+ # Valid Google Cloud regions found here: https://cloud.google.com/compute/docs/
594
+ # regions-zones
595
+ # Corresponds to the JSON property `operatedCloudRegions`
596
+ # @return [Array<String>]
597
+ attr_accessor :operated_cloud_regions
598
+
599
+ # Google Cloud project ID in the partner's Google Cloud organization for
600
+ # receiving enhanced Logs for Partners.
601
+ # Corresponds to the JSON property `partnerProjectId`
602
+ # @return [String]
603
+ attr_accessor :partner_project_id
604
+
605
+ # List of SKUs the partner is offering
606
+ # Corresponds to the JSON property `skus`
607
+ # @return [Array<Google::Apis::CloudcontrolspartnerV1::Sku>]
608
+ attr_accessor :skus
609
+
610
+ # Output only. The last time the resource was updated
611
+ # Corresponds to the JSON property `updateTime`
612
+ # @return [String]
613
+ attr_accessor :update_time
614
+
615
+ def initialize(**args)
616
+ update!(**args)
617
+ end
618
+
619
+ # Update properties of this object
620
+ def update!(**args)
621
+ @create_time = args[:create_time] if args.key?(:create_time)
622
+ @ekm_solutions = args[:ekm_solutions] if args.key?(:ekm_solutions)
623
+ @name = args[:name] if args.key?(:name)
624
+ @operated_cloud_regions = args[:operated_cloud_regions] if args.key?(:operated_cloud_regions)
625
+ @partner_project_id = args[:partner_project_id] if args.key?(:partner_project_id)
626
+ @skus = args[:skus] if args.key?(:skus)
627
+ @update_time = args[:update_time] if args.key?(:update_time)
628
+ end
629
+ end
630
+
631
+ # The permissions granted to the partner for a workload
632
+ class PartnerPermissions
633
+ include Google::Apis::Core::Hashable
634
+
635
+ # Identifier. Format: `organizations/`organization`/locations/`location`/
636
+ # customers/`customer`/workloads/`workload`/partnerPermissions`
637
+ # Corresponds to the JSON property `name`
638
+ # @return [String]
639
+ attr_accessor :name
640
+
641
+ # The partner permissions granted for the workload
642
+ # Corresponds to the JSON property `partnerPermissions`
643
+ # @return [Array<String>]
644
+ attr_accessor :partner_permissions
645
+
646
+ def initialize(**args)
647
+ update!(**args)
648
+ end
649
+
650
+ # Update properties of this object
651
+ def update!(**args)
652
+ @name = args[:name] if args.key?(:name)
653
+ @partner_permissions = args[:partner_permissions] if args.key?(:partner_permissions)
654
+ end
655
+ end
656
+
657
+ # Represents remediation guidance to resolve compliance violation for
658
+ # AssuredWorkload
659
+ class Remediation
660
+ include Google::Apis::Core::Hashable
661
+
662
+ # Values that can resolve the violation For example: for list org policy
663
+ # violations, this will either be the list of allowed or denied values
664
+ # Corresponds to the JSON property `compliantValues`
665
+ # @return [Array<String>]
666
+ attr_accessor :compliant_values
667
+
668
+ # Instructions to remediate violation
669
+ # Corresponds to the JSON property `instructions`
670
+ # @return [Google::Apis::CloudcontrolspartnerV1::Instructions]
671
+ attr_accessor :instructions
672
+
673
+ # Output only. Remediation type based on the type of org policy values violated
674
+ # Corresponds to the JSON property `remediationType`
675
+ # @return [String]
676
+ attr_accessor :remediation_type
677
+
678
+ def initialize(**args)
679
+ update!(**args)
680
+ end
681
+
682
+ # Update properties of this object
683
+ def update!(**args)
684
+ @compliant_values = args[:compliant_values] if args.key?(:compliant_values)
685
+ @instructions = args[:instructions] if args.key?(:instructions)
686
+ @remediation_type = args[:remediation_type] if args.key?(:remediation_type)
687
+ end
688
+ end
689
+
690
+ # Represents the SKU a partner owns inside Google Cloud to sell to customers.
691
+ class Sku
692
+ include Google::Apis::Core::Hashable
693
+
694
+ # Display name of the product identified by the SKU. A partner may want to show
695
+ # partner branded names for their offerings such as local sovereign cloud
696
+ # solutions.
697
+ # Corresponds to the JSON property `displayName`
698
+ # @return [String]
699
+ attr_accessor :display_name
700
+
701
+ # Argentum product SKU, that is associated with the partner offerings to
702
+ # customers used by Syntro for billing purposes. SKUs can represent resold
703
+ # Google products or support services.
704
+ # Corresponds to the JSON property `id`
705
+ # @return [String]
706
+ attr_accessor :id
707
+
708
+ def initialize(**args)
709
+ update!(**args)
710
+ end
711
+
712
+ # Update properties of this object
713
+ def update!(**args)
714
+ @display_name = args[:display_name] if args.key?(:display_name)
715
+ @id = args[:id] if args.key?(:id)
716
+ end
717
+ end
718
+
719
+ # Details of resource Violation
720
+ class Violation
721
+ include Google::Apis::Core::Hashable
722
+
723
+ # Output only. Time of the event which triggered the Violation.
724
+ # Corresponds to the JSON property `beginTime`
725
+ # @return [String]
726
+ attr_accessor :begin_time
727
+
728
+ # Output only. Category under which this violation is mapped. e.g. Location,
729
+ # Service Usage, Access, Encryption, etc.
730
+ # Corresponds to the JSON property `category`
731
+ # @return [String]
732
+ attr_accessor :category
733
+
734
+ # Output only. Description for the Violation. e.g. OrgPolicy gcp.
735
+ # resourceLocations has non compliant value.
736
+ # Corresponds to the JSON property `description`
737
+ # @return [String]
738
+ attr_accessor :description
739
+
740
+ # The folder_id of the violation
741
+ # Corresponds to the JSON property `folderId`
742
+ # @return [Fixnum]
743
+ attr_accessor :folder_id
744
+
745
+ # Identifier. Format: `organizations/`organization`/locations/`location`/
746
+ # customers/`customer`/workloads/`workload`/violations/`violation``
747
+ # Corresponds to the JSON property `name`
748
+ # @return [String]
749
+ attr_accessor :name
750
+
751
+ # Output only. Immutable. Name of the OrgPolicy which was modified with non-
752
+ # compliant change and resulted this violation. Format: `projects/`
753
+ # project_number`/policies/`constraint_name`` `folders/`folder_id`/policies/`
754
+ # constraint_name`` `organizations/`organization_id`/policies/`constraint_name``
755
+ # Corresponds to the JSON property `nonCompliantOrgPolicy`
756
+ # @return [String]
757
+ attr_accessor :non_compliant_org_policy
758
+
759
+ # Represents remediation guidance to resolve compliance violation for
760
+ # AssuredWorkload
761
+ # Corresponds to the JSON property `remediation`
762
+ # @return [Google::Apis::CloudcontrolspartnerV1::Remediation]
763
+ attr_accessor :remediation
764
+
765
+ # Output only. Time of the event which fixed the Violation. If the violation is
766
+ # ACTIVE this will be empty.
767
+ # Corresponds to the JSON property `resolveTime`
768
+ # @return [String]
769
+ attr_accessor :resolve_time
770
+
771
+ # Output only. State of the violation
772
+ # Corresponds to the JSON property `state`
773
+ # @return [String]
774
+ attr_accessor :state
775
+
776
+ # Output only. The last time when the Violation record was updated.
777
+ # Corresponds to the JSON property `updateTime`
778
+ # @return [String]
779
+ attr_accessor :update_time
780
+
781
+ def initialize(**args)
782
+ update!(**args)
783
+ end
784
+
785
+ # Update properties of this object
786
+ def update!(**args)
787
+ @begin_time = args[:begin_time] if args.key?(:begin_time)
788
+ @category = args[:category] if args.key?(:category)
789
+ @description = args[:description] if args.key?(:description)
790
+ @folder_id = args[:folder_id] if args.key?(:folder_id)
791
+ @name = args[:name] if args.key?(:name)
792
+ @non_compliant_org_policy = args[:non_compliant_org_policy] if args.key?(:non_compliant_org_policy)
793
+ @remediation = args[:remediation] if args.key?(:remediation)
794
+ @resolve_time = args[:resolve_time] if args.key?(:resolve_time)
795
+ @state = args[:state] if args.key?(:state)
796
+ @update_time = args[:update_time] if args.key?(:update_time)
797
+ end
798
+ end
799
+
800
+ # Contains metadata around the [Workload resource](https://cloud.google.com/
801
+ # assured-workloads/docs/reference/rest/Shared.Types/Workload) in the Assured
802
+ # Workloads API.
803
+ class Workload
804
+ include Google::Apis::Core::Hashable
805
+
806
+ # Output only. Time the resource was created.
807
+ # Corresponds to the JSON property `createTime`
808
+ # @return [String]
809
+ attr_accessor :create_time
810
+
811
+ # Output only. The name of container folder of the assured workload
812
+ # Corresponds to the JSON property `folder`
813
+ # @return [String]
814
+ attr_accessor :folder
815
+
816
+ # Output only. Folder id this workload is associated with
817
+ # Corresponds to the JSON property `folderId`
818
+ # @return [Fixnum]
819
+ attr_accessor :folder_id
820
+
821
+ # Indicates whether a workload is fully onboarded.
822
+ # Corresponds to the JSON property `isOnboarded`
823
+ # @return [Boolean]
824
+ attr_accessor :is_onboarded
825
+ alias_method :is_onboarded?, :is_onboarded
826
+
827
+ # The project id of the key management project for the workload
828
+ # Corresponds to the JSON property `keyManagementProjectId`
829
+ # @return [String]
830
+ attr_accessor :key_management_project_id
831
+
832
+ # The Google Cloud location of the workload
833
+ # Corresponds to the JSON property `location`
834
+ # @return [String]
835
+ attr_accessor :location
836
+
837
+ # Identifier. Format: `organizations/`organization`/locations/`location`/
838
+ # customers/`customer`/workloads/`workload``
839
+ # Corresponds to the JSON property `name`
840
+ # @return [String]
841
+ attr_accessor :name
842
+
843
+ # Partner associated with this workload.
844
+ # Corresponds to the JSON property `partner`
845
+ # @return [String]
846
+ attr_accessor :partner
847
+
848
+ # Container for workload onboarding steps.
849
+ # Corresponds to the JSON property `workloadOnboardingState`
850
+ # @return [Google::Apis::CloudcontrolspartnerV1::WorkloadOnboardingState]
851
+ attr_accessor :workload_onboarding_state
852
+
853
+ def initialize(**args)
854
+ update!(**args)
855
+ end
856
+
857
+ # Update properties of this object
858
+ def update!(**args)
859
+ @create_time = args[:create_time] if args.key?(:create_time)
860
+ @folder = args[:folder] if args.key?(:folder)
861
+ @folder_id = args[:folder_id] if args.key?(:folder_id)
862
+ @is_onboarded = args[:is_onboarded] if args.key?(:is_onboarded)
863
+ @key_management_project_id = args[:key_management_project_id] if args.key?(:key_management_project_id)
864
+ @location = args[:location] if args.key?(:location)
865
+ @name = args[:name] if args.key?(:name)
866
+ @partner = args[:partner] if args.key?(:partner)
867
+ @workload_onboarding_state = args[:workload_onboarding_state] if args.key?(:workload_onboarding_state)
868
+ end
869
+ end
870
+
871
+ # Container for workload onboarding steps.
872
+ class WorkloadOnboardingState
873
+ include Google::Apis::Core::Hashable
874
+
875
+ # List of workload onboarding steps.
876
+ # Corresponds to the JSON property `onboardingSteps`
877
+ # @return [Array<Google::Apis::CloudcontrolspartnerV1::WorkloadOnboardingStep>]
878
+ attr_accessor :onboarding_steps
879
+
880
+ def initialize(**args)
881
+ update!(**args)
882
+ end
883
+
884
+ # Update properties of this object
885
+ def update!(**args)
886
+ @onboarding_steps = args[:onboarding_steps] if args.key?(:onboarding_steps)
887
+ end
888
+ end
889
+
890
+ # Container for workload onboarding information.
891
+ class WorkloadOnboardingStep
892
+ include Google::Apis::Core::Hashable
893
+
894
+ # Output only. The completion state of the onboarding step.
895
+ # Corresponds to the JSON property `completionState`
896
+ # @return [String]
897
+ attr_accessor :completion_state
898
+
899
+ # The completion time of the onboarding step.
900
+ # Corresponds to the JSON property `completionTime`
901
+ # @return [String]
902
+ attr_accessor :completion_time
903
+
904
+ # The starting time of the onboarding step.
905
+ # Corresponds to the JSON property `startTime`
906
+ # @return [String]
907
+ attr_accessor :start_time
908
+
909
+ # The onboarding step.
910
+ # Corresponds to the JSON property `step`
911
+ # @return [String]
912
+ attr_accessor :step
913
+
914
+ def initialize(**args)
915
+ update!(**args)
916
+ end
917
+
918
+ # Update properties of this object
919
+ def update!(**args)
920
+ @completion_state = args[:completion_state] if args.key?(:completion_state)
921
+ @completion_time = args[:completion_time] if args.key?(:completion_time)
922
+ @start_time = args[:start_time] if args.key?(:start_time)
923
+ @step = args[:step] if args.key?(:step)
924
+ end
925
+ end
926
+ end
927
+ end
928
+ end