File: helper.rb

package info (click to toggle)
ruby-fog-aws 3.33.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 8,180 kB
  • sloc: ruby: 75,405; javascript: 14; makefile: 9; sh: 4
file content (229 lines) | stat: -rw-r--r-- 6,670 bytes parent folder | download | duplicates (5)
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
class AWS
  module AutoScaling
    module Formats
      BASIC = {
        'ResponseMetadata' => {'RequestId' => String}
      }

      PAGINATED = {
        'NextToken' => Fog::Nullable::String
      }

      ACTIVITY = {
        'ActivityId' => String,
        'AutoScalingGroupName' => String,
        'Cause' => Fog::Nullable::String,
        'Description' => String,
        'EndTime' => Time,
        'Progress' => Integer,
        'StartTime' => Time,
        'StatusCode' => String,
        'StatusMessage' => Fog::Nullable::String
      }

      ALARM = {
        'AlarmARN' => String,
        'AlarmName' => String
      }

      BLOCK_DEVICE_MAPPING = {
        'DeviceName' => String,
        'Ebs' => {'SnapshotId' => String, 'VolumeSize' => Integer},
        'VirtualName' => String
      }

      ENABLED_METRIC = {
        'Granularity' => Array,
        'Metric' => Array
      }

      INSTANCE = {
        'AvailabilityZone' => String,
        'HealthStatus' => String,
        'InstanceId' => String,
        'LaunchConfigurationName' => String,
        'LifecycleState' => String
      }

      NOTIFICATION_CONFIGURATION = {
        'AutoScalingGroupName' => String,
        'NotificationType' => String,
        'TopicARN' => String
      }

      SCHEDULED_UPDATE_GROUP_ACTION = {
        'AutoScalingGroupName' => String,
        'DesiredCapacity' => Integer,
        'EndTime' => Time,
        'MaxSize' => Integer,
        'MinSize' => Integer,
        'Recurrence' => String,
        'ScheduledActionARN' => String,
        'ScheduledActionName' => String,
        'StartTime' => Time,
      }

      PROCESS_TYPE = {
        'ProcessName' => String
      }

      SUSPENDED_PROCESS = PROCESS_TYPE.merge({
        'SuspensionReason' => String
      })

      TAG_DESCRIPTION = {
        'Key' => String,
        'PropagateAtLaunch' => Fog::Boolean,
        'ResourceId' => String,
        'ResourceType' => String,
        'Value' => Fog::Nullable::String
      }

      AUTO_SCALING_GROUP = {
        'AutoScalingGroupARN' => String,
        'AutoScalingGroupName' => String,
        'AvailabilityZones' => Array,
        'CreatedTime' => Time,
        'DefaultCooldown' => Integer,
        'DesiredCapacity' => Integer,
        'EnabledMetrics' => [ENABLED_METRIC],
        'HealthCheckGracePeriod' => Integer,
        'HealthCheckType' => String,
        'Instances' => [INSTANCE],
        'LaunchConfigurationName' => String,
        'LoadBalancerNames' => Array,
        'MaxSize' => Integer,
        'MinSize' => Integer,
        'PlacementGroup' => Fog::Nullable::String,
        'Status' => Fog::Nullable::String,
        'SuspendedProcesses' => [SUSPENDED_PROCESS],
        'Tags' => [TAG_DESCRIPTION],
        'TargetGroupARNs' => Array,
        'TerminationPolicies' => [String],
        'VPCZoneIdentifier' => Fog::Nullable::String
      }

      AUTO_SCALING_INSTANCE_DETAILS = INSTANCE.merge({
        'AutoScalingGroupName' => String
      })

      LAUNCH_CONFIGURATION = {
        'BlockDeviceMappings' => [BLOCK_DEVICE_MAPPING],
        'CreatedTime' => Time,
        'ImageId' => String,
        'InstanceMonitoring' => {'Enabled' => Fog::Boolean},
        'InstanceType' => String,
        'KernelId' => Fog::Nullable::String,
        'KeyName' => Fog::Nullable::String,
        'LaunchConfigurationARN' => String,
        'LaunchConfigurationName' => String,
        'RamdiskId' => Fog::Nullable::String,
        'SpotPrice' => Fog::Nullable::String,
        'SecurityGroups' => Array,
        'UserData' => Fog::Nullable::String
      }

      SCALING_POLICY = {
        'AdjustmentType' => String,
        'Alarms' => [ALARM],
        'AutoScalingGroupName' => String,
        'Cooldown' => Integer,
        'MinAdjustmentStep' => Integer,
        'PolicyARN' => String,
        'PolicyName' => String,
        'ScalingAdjustment' => Integer
      }

      DESCRIBE_ADJUSTMENT_TYPES = BASIC.merge({
        'DescribeAdjustmentTypesResult' => {
          'AdjustmentTypes' => [{'AdjustmentType' => String}]
        }
      })

      DESCRIBE_AUTO_SCALING_GROUPS = BASIC.merge({
        'DescribeAutoScalingGroupsResult' => PAGINATED.merge({
          'AutoScalingGroups' => [AUTO_SCALING_GROUP],
        })
      })

      DESCRIBE_AUTO_SCALING_INSTANCES = BASIC.merge({
        'DescribeAutoScalingInstancesResult' => PAGINATED.merge({
          'AutoScalingInstances' => [AUTO_SCALING_INSTANCE_DETAILS],
        })
      })

      DESCRIBE_AUTO_SCALING_NOTIFICATION_TYPES = BASIC.merge({
        'DescribeAutoScalingNotificationTypesResult' => {
          'AutoScalingNotificationTypes' => [String]
        }
      })

      DESCRIBE_LAUNCH_CONFIGURATIONS = BASIC.merge({
        'DescribeLaunchConfigurationsResult' => PAGINATED.merge({
          'LaunchConfigurations' => [LAUNCH_CONFIGURATION],
        })
      })

      DESCRIBE_METRIC_COLLECTION_TYPES = BASIC.merge({
        'DescribeMetricCollectionTypesResult' => {
          'Granularities' => [{'Granularity' => String}],
          'Metrics' => [{'Metric' => String}]
        }
      })

      DESCRIBE_NOTIFICATION_CONFIGURATIONS = BASIC.merge({
        'DescribeNotificationConfigurationsResult' => PAGINATED.merge({
          'NotificationConfigurations' => [NOTIFICATION_CONFIGURATION]
        })
      })

      DESCRIBE_POLICIES = BASIC.merge({
        'DescribePoliciesResult' => PAGINATED.merge({
          'ScalingPolicies' => [SCALING_POLICY]
        })
      })

      DESCRIBE_SCALING_ACTIVITIES = BASIC.merge({
        'DescribeScalingActivitiesResult' => PAGINATED.merge({
          'Activities' => [ACTIVITY],
        })
      })

      DESCRIBE_SCALING_PROCESS_TYPES = BASIC.merge({
        'DescribeScalingProcessTypesResult' => {
          'Processes' => [PROCESS_TYPE]
        }
      })

      DESCRIBE_SCHEDULED_ACTIONS = BASIC.merge({
        'DescribeScheduledActionsResult' => PAGINATED.merge({
          'ScheduledUpdateGroupActions' => [SCHEDULED_UPDATE_GROUP_ACTION]
        })
      })

      DESCRIBE_TAGS = BASIC.merge({
        'DescribeTagsResult' => PAGINATED.merge({
          'Tags' => [TAG_DESCRIPTION]
        })
      })

      DESCRIBE_TERMINATION_POLICY_TYPES = BASIC.merge({
        'DescribeTerminationPolicyTypesResult' => {
          'TerminationPolicyTypes' => [String]
        }
      })

      PUT_SCALING_POLICY = BASIC.merge({
        'PutScalingPolicyResult' => {
          'PolicyARN' => String
        }
      })

      TERMINATE_INSTANCE_IN_AUTO_SCALING_GROUP = BASIC.merge({
        'TerminateInstanceInAutoScalingGroupResult' => {
          'Activity' => [ACTIVITY]
        }
      })
    end
  end
end