google-apis-cloudcontrolspartner_v1beta 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,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 CloudcontrolspartnerV1beta
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::CloudcontrolspartnerV1beta::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::CloudcontrolspartnerV1beta::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::CloudcontrolspartnerV1beta::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::CloudcontrolspartnerV1beta::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::CloudcontrolspartnerV1beta::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::CloudcontrolspartnerV1beta::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::CloudcontrolspartnerV1beta::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::CloudcontrolspartnerV1beta::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::CloudcontrolspartnerV1beta::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::CloudcontrolspartnerV1beta::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::CloudcontrolspartnerV1beta::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::CloudcontrolspartnerV1beta::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::CloudcontrolspartnerV1beta::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::CloudcontrolspartnerV1beta::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::CloudcontrolspartnerV1beta::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::CloudcontrolspartnerV1beta::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::CloudcontrolspartnerV1beta::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