comparison env/lib/python3.9/site-packages/boto/ec2/autoscale/tag.py @ 0:4f3585e2f14b draft default tip

"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author shellac
date Mon, 22 Mar 2021 18:12:50 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:4f3585e2f14b
1 # Copyright (c) 2012 Mitch Garnaat http://garnaat.org/
2 # Copyright (c) 2012 Amazon.com, Inc. or its affiliates. All Rights Reserved
3 #
4 # Permission is hereby granted, free of charge, to any person obtaining a
5 # copy of this software and associated documentation files (the
6 # "Software"), to deal in the Software without restriction, including
7 # without limitation the rights to use, copy, modify, merge, publish, dis-
8 # tribute, sublicense, and/or sell copies of the Software, and to permit
9 # persons to whom the Software is furnished to do so, subject to the fol-
10 # lowing conditions:
11 #
12 # The above copyright notice and this permission notice shall be included
13 # in all copies or substantial portions of the Software.
14 #
15 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
16 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
17 # ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
18 # SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
19 # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21 # IN THE SOFTWARE.
22
23
24 class Tag(object):
25 """
26 A name/value tag on an AutoScalingGroup resource.
27
28 :ivar key: The key of the tag.
29 :ivar value: The value of the tag.
30 :ivar propagate_at_launch: Boolean value which specifies whether the
31 new tag will be applied to instances launched after the tag is created.
32 :ivar resource_id: The name of the autoscaling group.
33 :ivar resource_type: The only supported resource type at this time
34 is "auto-scaling-group".
35 """
36
37 def __init__(self, connection=None, key=None, value=None,
38 propagate_at_launch=False, resource_id=None,
39 resource_type='auto-scaling-group'):
40 self.connection = connection
41 self.key = key
42 self.value = value
43 self.propagate_at_launch = propagate_at_launch
44 self.resource_id = resource_id
45 self.resource_type = resource_type
46
47 def __repr__(self):
48 return 'Tag(%s=%s)' % (self.key, self.value)
49
50 def startElement(self, name, attrs, connection):
51 pass
52
53 def endElement(self, name, value, connection):
54 if name == 'Key':
55 self.key = value
56 elif name == 'Value':
57 self.value = value
58 elif name == 'PropagateAtLaunch':
59 if value.lower() == 'true':
60 self.propagate_at_launch = True
61 else:
62 self.propagate_at_launch = False
63 elif name == 'ResourceId':
64 self.resource_id = value
65 elif name == 'ResourceType':
66 self.resource_type = value
67
68 def build_params(self, params, i):
69 """
70 Populates a dictionary with the name/value pairs necessary
71 to identify this Tag in a request.
72 """
73 prefix = 'Tags.member.%d.' % i
74 params[prefix + 'ResourceId'] = self.resource_id
75 params[prefix + 'ResourceType'] = self.resource_type
76 params[prefix + 'Key'] = self.key
77 params[prefix + 'Value'] = self.value
78 if self.propagate_at_launch:
79 params[prefix + 'PropagateAtLaunch'] = 'true'
80 else:
81 params[prefix + 'PropagateAtLaunch'] = 'false'
82
83 def delete(self):
84 return self.connection.delete_tags([self])