-
Notifications
You must be signed in to change notification settings - Fork 20
Expand file tree
/
Copy pathcalendar_interval.rb
More file actions
128 lines (106 loc) · 3.83 KB
/
calendar_interval.rb
File metadata and controls
128 lines (106 loc) · 3.83 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
=begin
#Datadog API V1 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::V1
# Calendar interval definition.
class CalendarInterval
include BaseGenericModel
# Alignment of the interval. Valid values depend on the interval type. For `day`, use hours (for example, `1am`, `2pm`, or `14`). For `week`, use day names (for example, `monday`). For `month`, use day-of-month ordinals (for example, `1st`, `15th`). For `year` or `quarter`, use month names (for example, `january`).
attr_accessor :alignment
# Quantity of the interval.
attr_accessor :quantity
# Timezone for the interval.
attr_accessor :timezone
# Type of calendar interval.
attr_reader :type
# Attribute mapping from ruby-style variable name to JSON key.
# @!visibility private
def self.attribute_map
{
:'alignment' => :'alignment',
:'quantity' => :'quantity',
:'timezone' => :'timezone',
:'type' => :'type'
}
end
# Attribute type mapping.
# @!visibility private
def self.openapi_types
{
:'alignment' => :'String',
:'quantity' => :'Integer',
:'timezone' => :'String',
:'type' => :'CalendarIntervalType'
}
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::V1::CalendarInterval` initialize method"
end
# 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))
fail ArgumentError, "`#{k}` is not a valid attribute in `DatadogAPIClient::V1::CalendarInterval`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
end
h[k.to_sym] = v
}
if attributes.key?(:'alignment')
self.alignment = attributes[:'alignment']
end
if attributes.key?(:'quantity')
self.quantity = attributes[:'quantity']
end
if attributes.key?(:'timezone')
self.timezone = attributes[:'timezone']
end
if attributes.key?(:'type')
self.type = attributes[:'type']
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 @type.nil?
true
end
# Custom attribute writer method with validation
# @param type [Object] Object to be assigned
# @!visibility private
def type=(type)
if type.nil?
fail ArgumentError, 'invalid value for "type", type cannot be nil.'
end
@type = type
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 &&
alignment == o.alignment &&
quantity == o.quantity &&
timezone == o.timezone &&
type == o.type
end
# Calculates hash code according to all attributes.
# @return [Integer] Hash code
# @!visibility private
def hash
[alignment, quantity, timezone, type].hash
end
end
end