-
Notifications
You must be signed in to change notification settings - Fork 20
Expand file tree
/
Copy pathaws_cur_config_attributes.rb
More file actions
340 lines (290 loc) · 11.1 KB
/
aws_cur_config_attributes.rb
File metadata and controls
340 lines (290 loc) · 11.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
=begin
#Datadog API V2 Collection
#Collection of all Datadog Public endpoints.
The version of the OpenAPI document: 1.0
Contact: support@datadoghq.com
Generated by: https://github.com/DataDog/datadog-api-client-ruby/tree/master/.generator
Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
This product includes software developed at Datadog (https://www.datadoghq.com/).
Copyright 2020-Present Datadog, Inc.
=end
require 'date'
require 'time'
module DatadogAPIClient::V2
# Attributes for An AWS CUR config.
class AwsCURConfigAttributes
include BaseGenericModel
# The account filtering configuration object.
attr_accessor :account_filters
# The AWS account ID.
attr_reader :account_id
# The AWS bucket name used to store the Cost and Usage Report.
attr_reader :bucket_name
# The region the bucket is located in.
attr_reader :bucket_region
# The timestamp when the AWS CUR config was created.
attr_reader :created_at
# The error messages for the AWS CUR config.
attr_accessor :error_messages
# The number of months the report has been backfilled.
attr_reader :months
# The name of the Cost and Usage Report.
attr_reader :report_name
# The report prefix used for the Cost and Usage Report.
attr_reader :report_prefix
# The status of the AWS CUR.
attr_reader :status
# The timestamp when the AWS CUR config status was updated.
attr_reader :status_updated_at
# The timestamp when the AWS CUR config status was updated.
attr_reader :updated_at
attr_accessor :additional_properties
# Attribute mapping from ruby-style variable name to JSON key.
# @!visibility private
def self.attribute_map
{
:'account_filters' => :'account_filters',
:'account_id' => :'account_id',
:'bucket_name' => :'bucket_name',
:'bucket_region' => :'bucket_region',
:'created_at' => :'created_at',
:'error_messages' => :'error_messages',
:'months' => :'months',
:'report_name' => :'report_name',
:'report_prefix' => :'report_prefix',
:'status' => :'status',
:'status_updated_at' => :'status_updated_at',
:'updated_at' => :'updated_at'
}
end
# Attribute type mapping.
# @!visibility private
def self.openapi_types
{
:'account_filters' => :'AccountFilteringConfig',
:'account_id' => :'String',
:'bucket_name' => :'String',
:'bucket_region' => :'String',
:'created_at' => :'String',
:'error_messages' => :'Array<String>',
:'months' => :'Integer',
:'report_name' => :'String',
:'report_prefix' => :'String',
:'status' => :'String',
:'status_updated_at' => :'String',
:'updated_at' => :'String'
}
end
# Initializes the object
# @param attributes [Hash] Model attributes in the form of hash
# @!visibility private
def initialize(attributes = {})
if (!attributes.is_a?(Hash))
fail ArgumentError, "The input argument (attributes) must be a hash in `DatadogAPIClient::V2::AwsCURConfigAttributes` initialize method"
end
self.additional_properties = {}
# check to see if the attribute exists and convert string to symbol for hash key
attributes = attributes.each_with_object({}) { |(k, v), h|
if (!self.class.attribute_map.key?(k.to_sym))
self.additional_properties[k.to_sym] = v
else
h[k.to_sym] = v
end
}
if attributes.key?(:'account_filters')
self.account_filters = attributes[:'account_filters']
end
if attributes.key?(:'account_id')
self.account_id = attributes[:'account_id']
end
if attributes.key?(:'bucket_name')
self.bucket_name = attributes[:'bucket_name']
end
if attributes.key?(:'bucket_region')
self.bucket_region = attributes[:'bucket_region']
end
if attributes.key?(:'created_at')
self.created_at = attributes[:'created_at']
end
if attributes.key?(:'error_messages')
if (value = attributes[:'error_messages']).is_a?(Array)
self.error_messages = value
end
end
if attributes.key?(:'months')
self.months = attributes[:'months']
end
if attributes.key?(:'report_name')
self.report_name = attributes[:'report_name']
end
if attributes.key?(:'report_prefix')
self.report_prefix = attributes[:'report_prefix']
end
if attributes.key?(:'status')
self.status = attributes[:'status']
end
if attributes.key?(:'status_updated_at')
self.status_updated_at = attributes[:'status_updated_at']
end
if attributes.key?(:'updated_at')
self.updated_at = attributes[:'updated_at']
end
end
# Check to see if the all the properties in the model are valid
# @return true if the model is valid
# @!visibility private
def valid?
return false if @account_id.nil?
return false if @bucket_name.nil?
return false if @bucket_region.nil?
pattern = Regexp.new(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{6}$/)
return false if !@created_at.nil? && @created_at !~ pattern
return false if !@months.nil? && @months > 36
return false if @report_name.nil?
return false if @report_prefix.nil?
return false if @status.nil?
pattern = Regexp.new(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{6}$/)
return false if !@status_updated_at.nil? && @status_updated_at !~ pattern
pattern = Regexp.new(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{6}$/)
return false if !@updated_at.nil? && @updated_at !~ pattern
true
end
# Custom attribute writer method with validation
# @param account_id [Object] Object to be assigned
# @!visibility private
def account_id=(account_id)
if account_id.nil?
fail ArgumentError, 'invalid value for "account_id", account_id cannot be nil.'
end
@account_id = account_id
end
# Custom attribute writer method with validation
# @param bucket_name [Object] Object to be assigned
# @!visibility private
def bucket_name=(bucket_name)
if bucket_name.nil?
fail ArgumentError, 'invalid value for "bucket_name", bucket_name cannot be nil.'
end
@bucket_name = bucket_name
end
# Custom attribute writer method with validation
# @param bucket_region [Object] Object to be assigned
# @!visibility private
def bucket_region=(bucket_region)
if bucket_region.nil?
fail ArgumentError, 'invalid value for "bucket_region", bucket_region cannot be nil.'
end
@bucket_region = bucket_region
end
# Custom attribute writer method with validation
# @param created_at [Object] Object to be assigned
# @!visibility private
def created_at=(created_at)
pattern = Regexp.new(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{6}$/)
if !created_at.nil? && created_at !~ pattern
fail ArgumentError, "invalid value for \"created_at\", must conform to the pattern #{pattern}."
end
@created_at = created_at
end
# Custom attribute writer method with validation
# @param months [Object] Object to be assigned
# @!visibility private
def months=(months)
if !months.nil? && months > 36
fail ArgumentError, 'invalid value for "months", must be smaller than or equal to 36.'
end
@months = months
end
# Custom attribute writer method with validation
# @param report_name [Object] Object to be assigned
# @!visibility private
def report_name=(report_name)
if report_name.nil?
fail ArgumentError, 'invalid value for "report_name", report_name cannot be nil.'
end
@report_name = report_name
end
# Custom attribute writer method with validation
# @param report_prefix [Object] Object to be assigned
# @!visibility private
def report_prefix=(report_prefix)
if report_prefix.nil?
fail ArgumentError, 'invalid value for "report_prefix", report_prefix cannot be nil.'
end
@report_prefix = report_prefix
end
# Custom attribute writer method with validation
# @param status [Object] Object to be assigned
# @!visibility private
def status=(status)
if status.nil?
fail ArgumentError, 'invalid value for "status", status cannot be nil.'
end
@status = status
end
# Custom attribute writer method with validation
# @param status_updated_at [Object] Object to be assigned
# @!visibility private
def status_updated_at=(status_updated_at)
pattern = Regexp.new(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{6}$/)
if !status_updated_at.nil? && status_updated_at !~ pattern
fail ArgumentError, "invalid value for \"status_updated_at\", must conform to the pattern #{pattern}."
end
@status_updated_at = status_updated_at
end
# Custom attribute writer method with validation
# @param updated_at [Object] Object to be assigned
# @!visibility private
def updated_at=(updated_at)
pattern = Regexp.new(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{6}$/)
if !updated_at.nil? && updated_at !~ pattern
fail ArgumentError, "invalid value for \"updated_at\", must conform to the pattern #{pattern}."
end
@updated_at = updated_at
end
# Returns the object in the form of hash, with additionalProperties support.
# @return [Hash] Returns the object in the form of hash
# @!visibility private
def to_hash
hash = {}
self.class.attribute_map.each_pair do |attr, param|
value = self.send(attr)
if value.nil?
is_nullable = self.class.openapi_nullable.include?(attr)
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
end
hash[param] = _to_hash(value)
end
self.additional_properties.each_pair do |attr, value|
hash[attr] = value
end
hash
end
# Checks equality by comparing each attribute.
# @param o [Object] Object to be compared
# @!visibility private
def ==(o)
return true if self.equal?(o)
self.class == o.class &&
account_filters == o.account_filters &&
account_id == o.account_id &&
bucket_name == o.bucket_name &&
bucket_region == o.bucket_region &&
created_at == o.created_at &&
error_messages == o.error_messages &&
months == o.months &&
report_name == o.report_name &&
report_prefix == o.report_prefix &&
status == o.status &&
status_updated_at == o.status_updated_at &&
updated_at == o.updated_at &&
additional_properties == o.additional_properties
end
# Calculates hash code according to all attributes.
# @return [Integer] Hash code
# @!visibility private
def hash
[account_filters, account_id, bucket_name, bucket_region, created_at, error_messages, months, report_name, report_prefix, status, status_updated_at, updated_at, additional_properties].hash
end
end
end