google-apis-assuredworkloads_v1beta1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,28 @@
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
+ module Google
16
+ module Apis
17
+ module AssuredworkloadsV1beta1
18
+ # Version of the google-apis-assuredworkloads_v1beta1 gem
19
+ GEM_VERSION = "0.1.0"
20
+
21
+ # Version of the code generator used to generate this client
22
+ GENERATOR_VERSION = "0.10.0"
23
+
24
+ # Revision of the discovery document this client was generated from
25
+ REVISION = "20220930"
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,437 @@
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
+ class GoogleCloudAssuredworkloadsV1beta1AcknowledgeViolationRequest
26
+ class Representation < Google::Apis::Core::JsonRepresentation; end
27
+
28
+ include Google::Apis::Core::JsonObjectSupport
29
+ end
30
+
31
+ class GoogleCloudAssuredworkloadsV1beta1AcknowledgeViolationResponse
32
+ class Representation < Google::Apis::Core::JsonRepresentation; end
33
+
34
+ include Google::Apis::Core::JsonObjectSupport
35
+ end
36
+
37
+ class GoogleCloudAssuredworkloadsV1beta1AnalyzeWorkloadMoveResponse
38
+ class Representation < Google::Apis::Core::JsonRepresentation; end
39
+
40
+ include Google::Apis::Core::JsonObjectSupport
41
+ end
42
+
43
+ class GoogleCloudAssuredworkloadsV1beta1ListViolationsResponse
44
+ class Representation < Google::Apis::Core::JsonRepresentation; end
45
+
46
+ include Google::Apis::Core::JsonObjectSupport
47
+ end
48
+
49
+ class GoogleCloudAssuredworkloadsV1beta1ListWorkloadsResponse
50
+ class Representation < Google::Apis::Core::JsonRepresentation; end
51
+
52
+ include Google::Apis::Core::JsonObjectSupport
53
+ end
54
+
55
+ class GoogleCloudAssuredworkloadsV1beta1RestrictAllowedResourcesRequest
56
+ class Representation < Google::Apis::Core::JsonRepresentation; end
57
+
58
+ include Google::Apis::Core::JsonObjectSupport
59
+ end
60
+
61
+ class GoogleCloudAssuredworkloadsV1beta1RestrictAllowedResourcesResponse
62
+ class Representation < Google::Apis::Core::JsonRepresentation; end
63
+
64
+ include Google::Apis::Core::JsonObjectSupport
65
+ end
66
+
67
+ class GoogleCloudAssuredworkloadsV1beta1Violation
68
+ class Representation < Google::Apis::Core::JsonRepresentation; end
69
+
70
+ include Google::Apis::Core::JsonObjectSupport
71
+ end
72
+
73
+ class GoogleCloudAssuredworkloadsV1beta1ViolationRemediation
74
+ class Representation < Google::Apis::Core::JsonRepresentation; end
75
+
76
+ include Google::Apis::Core::JsonObjectSupport
77
+ end
78
+
79
+ class GoogleCloudAssuredworkloadsV1beta1ViolationRemediationInstructions
80
+ class Representation < Google::Apis::Core::JsonRepresentation; end
81
+
82
+ include Google::Apis::Core::JsonObjectSupport
83
+ end
84
+
85
+ class GoogleCloudAssuredworkloadsV1beta1ViolationRemediationInstructionsConsole
86
+ class Representation < Google::Apis::Core::JsonRepresentation; end
87
+
88
+ include Google::Apis::Core::JsonObjectSupport
89
+ end
90
+
91
+ class GoogleCloudAssuredworkloadsV1beta1ViolationRemediationInstructionsGcloud
92
+ class Representation < Google::Apis::Core::JsonRepresentation; end
93
+
94
+ include Google::Apis::Core::JsonObjectSupport
95
+ end
96
+
97
+ class GoogleCloudAssuredworkloadsV1beta1Workload
98
+ class Representation < Google::Apis::Core::JsonRepresentation; end
99
+
100
+ include Google::Apis::Core::JsonObjectSupport
101
+ end
102
+
103
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadCjisSettings
104
+ class Representation < Google::Apis::Core::JsonRepresentation; end
105
+
106
+ include Google::Apis::Core::JsonObjectSupport
107
+ end
108
+
109
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadComplianceStatus
110
+ class Representation < Google::Apis::Core::JsonRepresentation; end
111
+
112
+ include Google::Apis::Core::JsonObjectSupport
113
+ end
114
+
115
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadFedrampHighSettings
116
+ class Representation < Google::Apis::Core::JsonRepresentation; end
117
+
118
+ include Google::Apis::Core::JsonObjectSupport
119
+ end
120
+
121
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadFedrampModerateSettings
122
+ class Representation < Google::Apis::Core::JsonRepresentation; end
123
+
124
+ include Google::Apis::Core::JsonObjectSupport
125
+ end
126
+
127
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadIl4Settings
128
+ class Representation < Google::Apis::Core::JsonRepresentation; end
129
+
130
+ include Google::Apis::Core::JsonObjectSupport
131
+ end
132
+
133
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadKmsSettings
134
+ class Representation < Google::Apis::Core::JsonRepresentation; end
135
+
136
+ include Google::Apis::Core::JsonObjectSupport
137
+ end
138
+
139
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadResourceInfo
140
+ class Representation < Google::Apis::Core::JsonRepresentation; end
141
+
142
+ include Google::Apis::Core::JsonObjectSupport
143
+ end
144
+
145
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadResourceSettings
146
+ class Representation < Google::Apis::Core::JsonRepresentation; end
147
+
148
+ include Google::Apis::Core::JsonObjectSupport
149
+ end
150
+
151
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadSaaEnrollmentResponse
152
+ class Representation < Google::Apis::Core::JsonRepresentation; end
153
+
154
+ include Google::Apis::Core::JsonObjectSupport
155
+ end
156
+
157
+ class GoogleLongrunningListOperationsResponse
158
+ class Representation < Google::Apis::Core::JsonRepresentation; end
159
+
160
+ include Google::Apis::Core::JsonObjectSupport
161
+ end
162
+
163
+ class GoogleLongrunningOperation
164
+ class Representation < Google::Apis::Core::JsonRepresentation; end
165
+
166
+ include Google::Apis::Core::JsonObjectSupport
167
+ end
168
+
169
+ class GoogleProtobufEmpty
170
+ class Representation < Google::Apis::Core::JsonRepresentation; end
171
+
172
+ include Google::Apis::Core::JsonObjectSupport
173
+ end
174
+
175
+ class GoogleRpcStatus
176
+ class Representation < Google::Apis::Core::JsonRepresentation; end
177
+
178
+ include Google::Apis::Core::JsonObjectSupport
179
+ end
180
+
181
+ class GoogleCloudAssuredworkloadsV1beta1AcknowledgeViolationRequest
182
+ # @private
183
+ class Representation < Google::Apis::Core::JsonRepresentation
184
+ property :comment, as: 'comment'
185
+ end
186
+ end
187
+
188
+ class GoogleCloudAssuredworkloadsV1beta1AcknowledgeViolationResponse
189
+ # @private
190
+ class Representation < Google::Apis::Core::JsonRepresentation
191
+ end
192
+ end
193
+
194
+ class GoogleCloudAssuredworkloadsV1beta1AnalyzeWorkloadMoveResponse
195
+ # @private
196
+ class Representation < Google::Apis::Core::JsonRepresentation
197
+ collection :blockers, as: 'blockers'
198
+ end
199
+ end
200
+
201
+ class GoogleCloudAssuredworkloadsV1beta1ListViolationsResponse
202
+ # @private
203
+ class Representation < Google::Apis::Core::JsonRepresentation
204
+ property :next_page_token, as: 'nextPageToken'
205
+ collection :violations, as: 'violations', class: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1Violation, decorator: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1Violation::Representation
206
+
207
+ end
208
+ end
209
+
210
+ class GoogleCloudAssuredworkloadsV1beta1ListWorkloadsResponse
211
+ # @private
212
+ class Representation < Google::Apis::Core::JsonRepresentation
213
+ property :next_page_token, as: 'nextPageToken'
214
+ collection :workloads, as: 'workloads', class: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1Workload, decorator: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1Workload::Representation
215
+
216
+ end
217
+ end
218
+
219
+ class GoogleCloudAssuredworkloadsV1beta1RestrictAllowedResourcesRequest
220
+ # @private
221
+ class Representation < Google::Apis::Core::JsonRepresentation
222
+ property :restriction_type, as: 'restrictionType'
223
+ end
224
+ end
225
+
226
+ class GoogleCloudAssuredworkloadsV1beta1RestrictAllowedResourcesResponse
227
+ # @private
228
+ class Representation < Google::Apis::Core::JsonRepresentation
229
+ end
230
+ end
231
+
232
+ class GoogleCloudAssuredworkloadsV1beta1Violation
233
+ # @private
234
+ class Representation < Google::Apis::Core::JsonRepresentation
235
+ property :acknowledged, as: 'acknowledged'
236
+ property :acknowledgement_time, as: 'acknowledgementTime'
237
+ property :audit_log_link, as: 'auditLogLink'
238
+ property :begin_time, as: 'beginTime'
239
+ property :category, as: 'category'
240
+ property :description, as: 'description'
241
+ property :exception_audit_log_link, as: 'exceptionAuditLogLink'
242
+ property :name, as: 'name'
243
+ property :non_compliant_org_policy, as: 'nonCompliantOrgPolicy'
244
+ property :org_policy_constraint, as: 'orgPolicyConstraint'
245
+ property :remediation, as: 'remediation', class: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1ViolationRemediation, decorator: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1ViolationRemediation::Representation
246
+
247
+ property :resolve_time, as: 'resolveTime'
248
+ property :state, as: 'state'
249
+ property :update_time, as: 'updateTime'
250
+ end
251
+ end
252
+
253
+ class GoogleCloudAssuredworkloadsV1beta1ViolationRemediation
254
+ # @private
255
+ class Representation < Google::Apis::Core::JsonRepresentation
256
+ collection :compliant_values, as: 'compliantValues'
257
+ property :instructions, as: 'instructions', class: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1ViolationRemediationInstructions, decorator: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1ViolationRemediationInstructions::Representation
258
+
259
+ property :remediation_type, as: 'remediationType'
260
+ end
261
+ end
262
+
263
+ class GoogleCloudAssuredworkloadsV1beta1ViolationRemediationInstructions
264
+ # @private
265
+ class Representation < Google::Apis::Core::JsonRepresentation
266
+ property :console_instructions, as: 'consoleInstructions', class: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1ViolationRemediationInstructionsConsole, decorator: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1ViolationRemediationInstructionsConsole::Representation
267
+
268
+ property :gcloud_instructions, as: 'gcloudInstructions', class: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1ViolationRemediationInstructionsGcloud, decorator: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1ViolationRemediationInstructionsGcloud::Representation
269
+
270
+ end
271
+ end
272
+
273
+ class GoogleCloudAssuredworkloadsV1beta1ViolationRemediationInstructionsConsole
274
+ # @private
275
+ class Representation < Google::Apis::Core::JsonRepresentation
276
+ collection :additional_links, as: 'additionalLinks'
277
+ collection :console_uris, as: 'consoleUris'
278
+ collection :steps, as: 'steps'
279
+ end
280
+ end
281
+
282
+ class GoogleCloudAssuredworkloadsV1beta1ViolationRemediationInstructionsGcloud
283
+ # @private
284
+ class Representation < Google::Apis::Core::JsonRepresentation
285
+ collection :additional_links, as: 'additionalLinks'
286
+ collection :gcloud_commands, as: 'gcloudCommands'
287
+ collection :steps, as: 'steps'
288
+ end
289
+ end
290
+
291
+ class GoogleCloudAssuredworkloadsV1beta1Workload
292
+ # @private
293
+ class Representation < Google::Apis::Core::JsonRepresentation
294
+ property :billing_account, as: 'billingAccount'
295
+ property :cjis_settings, as: 'cjisSettings', class: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadCjisSettings, decorator: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadCjisSettings::Representation
296
+
297
+ property :compliance_regime, as: 'complianceRegime'
298
+ property :compliance_status, as: 'complianceStatus', class: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadComplianceStatus, decorator: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadComplianceStatus::Representation
299
+
300
+ collection :compliant_but_disallowed_services, as: 'compliantButDisallowedServices'
301
+ property :create_time, as: 'createTime'
302
+ property :display_name, as: 'displayName'
303
+ property :enable_sovereign_controls, as: 'enableSovereignControls'
304
+ property :etag, as: 'etag'
305
+ property :fedramp_high_settings, as: 'fedrampHighSettings', class: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadFedrampHighSettings, decorator: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadFedrampHighSettings::Representation
306
+
307
+ property :fedramp_moderate_settings, as: 'fedrampModerateSettings', class: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadFedrampModerateSettings, decorator: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadFedrampModerateSettings::Representation
308
+
309
+ property :il4_settings, as: 'il4Settings', class: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadIl4Settings, decorator: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadIl4Settings::Representation
310
+
311
+ property :kaj_enrollment_state, as: 'kajEnrollmentState'
312
+ property :kms_settings, as: 'kmsSettings', class: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadKmsSettings, decorator: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadKmsSettings::Representation
313
+
314
+ hash :labels, as: 'labels'
315
+ property :name, as: 'name'
316
+ property :partner, as: 'partner'
317
+ property :provisioned_resources_parent, as: 'provisionedResourcesParent'
318
+ collection :resource_settings, as: 'resourceSettings', class: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadResourceSettings, decorator: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadResourceSettings::Representation
319
+
320
+ collection :resources, as: 'resources', class: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadResourceInfo, decorator: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadResourceInfo::Representation
321
+
322
+ property :saa_enrollment_response, as: 'saaEnrollmentResponse', class: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadSaaEnrollmentResponse, decorator: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadSaaEnrollmentResponse::Representation
323
+
324
+ end
325
+ end
326
+
327
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadCjisSettings
328
+ # @private
329
+ class Representation < Google::Apis::Core::JsonRepresentation
330
+ property :kms_settings, as: 'kmsSettings', class: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadKmsSettings, decorator: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadKmsSettings::Representation
331
+
332
+ end
333
+ end
334
+
335
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadComplianceStatus
336
+ # @private
337
+ class Representation < Google::Apis::Core::JsonRepresentation
338
+ property :acknowledged_violation_count, as: 'acknowledgedViolationCount'
339
+ property :active_violation_count, as: 'activeViolationCount'
340
+ end
341
+ end
342
+
343
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadFedrampHighSettings
344
+ # @private
345
+ class Representation < Google::Apis::Core::JsonRepresentation
346
+ property :kms_settings, as: 'kmsSettings', class: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadKmsSettings, decorator: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadKmsSettings::Representation
347
+
348
+ end
349
+ end
350
+
351
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadFedrampModerateSettings
352
+ # @private
353
+ class Representation < Google::Apis::Core::JsonRepresentation
354
+ property :kms_settings, as: 'kmsSettings', class: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadKmsSettings, decorator: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadKmsSettings::Representation
355
+
356
+ end
357
+ end
358
+
359
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadIl4Settings
360
+ # @private
361
+ class Representation < Google::Apis::Core::JsonRepresentation
362
+ property :kms_settings, as: 'kmsSettings', class: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadKmsSettings, decorator: Google::Apis::AssuredworkloadsV1beta1::GoogleCloudAssuredworkloadsV1beta1WorkloadKmsSettings::Representation
363
+
364
+ end
365
+ end
366
+
367
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadKmsSettings
368
+ # @private
369
+ class Representation < Google::Apis::Core::JsonRepresentation
370
+ property :next_rotation_time, as: 'nextRotationTime'
371
+ property :rotation_period, as: 'rotationPeriod'
372
+ end
373
+ end
374
+
375
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadResourceInfo
376
+ # @private
377
+ class Representation < Google::Apis::Core::JsonRepresentation
378
+ property :resource_id, :numeric_string => true, as: 'resourceId'
379
+ property :resource_type, as: 'resourceType'
380
+ end
381
+ end
382
+
383
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadResourceSettings
384
+ # @private
385
+ class Representation < Google::Apis::Core::JsonRepresentation
386
+ property :display_name, as: 'displayName'
387
+ property :resource_id, as: 'resourceId'
388
+ property :resource_type, as: 'resourceType'
389
+ end
390
+ end
391
+
392
+ class GoogleCloudAssuredworkloadsV1beta1WorkloadSaaEnrollmentResponse
393
+ # @private
394
+ class Representation < Google::Apis::Core::JsonRepresentation
395
+ collection :setup_errors, as: 'setupErrors'
396
+ property :setup_status, as: 'setupStatus'
397
+ end
398
+ end
399
+
400
+ class GoogleLongrunningListOperationsResponse
401
+ # @private
402
+ class Representation < Google::Apis::Core::JsonRepresentation
403
+ property :next_page_token, as: 'nextPageToken'
404
+ collection :operations, as: 'operations', class: Google::Apis::AssuredworkloadsV1beta1::GoogleLongrunningOperation, decorator: Google::Apis::AssuredworkloadsV1beta1::GoogleLongrunningOperation::Representation
405
+
406
+ end
407
+ end
408
+
409
+ class GoogleLongrunningOperation
410
+ # @private
411
+ class Representation < Google::Apis::Core::JsonRepresentation
412
+ property :done, as: 'done'
413
+ property :error, as: 'error', class: Google::Apis::AssuredworkloadsV1beta1::GoogleRpcStatus, decorator: Google::Apis::AssuredworkloadsV1beta1::GoogleRpcStatus::Representation
414
+
415
+ hash :metadata, as: 'metadata'
416
+ property :name, as: 'name'
417
+ hash :response, as: 'response'
418
+ end
419
+ end
420
+
421
+ class GoogleProtobufEmpty
422
+ # @private
423
+ class Representation < Google::Apis::Core::JsonRepresentation
424
+ end
425
+ end
426
+
427
+ class GoogleRpcStatus
428
+ # @private
429
+ class Representation < Google::Apis::Core::JsonRepresentation
430
+ property :code, as: 'code'
431
+ collection :details, as: 'details'
432
+ property :message, as: 'message'
433
+ end
434
+ end
435
+ end
436
+ end
437
+ end