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.
- checksums.yaml +7 -0
- data/.yardopts +13 -0
- data/CHANGELOG.md +7 -0
- data/LICENSE.md +202 -0
- data/OVERVIEW.md +96 -0
- data/lib/google/apis/assuredworkloads_v1beta1/classes.rb +914 -0
- data/lib/google/apis/assuredworkloads_v1beta1/gem_version.rb +28 -0
- data/lib/google/apis/assuredworkloads_v1beta1/representations.rb +437 -0
- data/lib/google/apis/assuredworkloads_v1beta1/service.rb +588 -0
- data/lib/google/apis/assuredworkloads_v1beta1.rb +36 -0
- data/lib/google-apis-assuredworkloads_v1beta1.rb +15 -0
- metadata +82 -0
@@ -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
|