Created
January 20, 2014 13:42
-
-
Save mrdavidlaing/8520054 to your computer and use it in GitHub Desktop.
Add support for spot instances to BOSH AWS CPI
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
... | |
resource_pools: | |
- name: vpc-private-medium-spot | |
network: vpc-private | |
size: 2 | |
stemcell: | |
name: bosh-aws-xen-ubuntu | |
version: latest | |
cloud_properties: | |
use_spot: true | |
spot_bid_price: 0.05 | |
instance_type: m1.medium | |
availability_zone: eu-west-1b |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Replace: /var/vcap/packages/director/gem_home/gems/aws-sdk-1.8.5/lib/aws/api_config/EC2-2013-02-01.yml | |
# | |
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. | |
# | |
# Licensed under the Apache License, Version 2.0 (the "License"). You | |
# may not use this file except in compliance with the License. A copy of | |
# the License is located at | |
# | |
# http://aws.amazon.com/apache2.0/ | |
# | |
# or in the "license" file accompanying this file. This file is | |
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF | |
# ANY KIND, either express or implied. See the License for the specific | |
# language governing permissions and limitations under the License. | |
--- | |
:api_version: '2013-02-01' | |
:operations: | |
- :name: ActivateLicense | |
:method: :activate_license | |
:inputs: | |
LicenseId: | |
- :string | |
- :required | |
Capacity: | |
- :integer | |
- :required | |
:outputs: {} | |
- :name: AllocateAddress | |
:method: :allocate_address | |
:inputs: | |
Domain: | |
- :string | |
:outputs: {} | |
- :name: AssignPrivateIpAddresses | |
:method: :assign_private_ip_addresses | |
:inputs: | |
NetworkInterfaceId: | |
- :string | |
- :required | |
PrivateIpAddress: | |
- :list: | |
- :string | |
- :rename: privateIpAddresses | |
SecondaryPrivateIpAddressCount: | |
- :integer | |
AllowReassignment: | |
- :boolean | |
:outputs: {} | |
- :name: AssociateAddress | |
:method: :associate_address | |
:inputs: | |
InstanceId: | |
- :string | |
PublicIp: | |
- :string | |
AllocationId: | |
- :string | |
NetworkInterfaceId: | |
- :string | |
PrivateIpAddress: | |
- :string | |
AllowReassociation: | |
- :boolean | |
:outputs: {} | |
- :name: AssociateDhcpOptions | |
:method: :associate_dhcp_options | |
:inputs: | |
DhcpOptionsId: | |
- :string | |
- :required | |
VpcId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: AssociateRouteTable | |
:method: :associate_route_table | |
:inputs: | |
SubnetId: | |
- :string | |
- :required | |
RouteTableId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: AttachInternetGateway | |
:method: :attach_internet_gateway | |
:inputs: | |
InternetGatewayId: | |
- :string | |
- :required | |
VpcId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: AttachNetworkInterface | |
:method: :attach_network_interface | |
:inputs: | |
NetworkInterfaceId: | |
- :string | |
- :required | |
InstanceId: | |
- :string | |
- :required | |
DeviceIndex: | |
- :integer | |
- :required | |
:outputs: {} | |
- :name: AttachVolume | |
:method: :attach_volume | |
:inputs: | |
VolumeId: | |
- :string | |
- :required | |
InstanceId: | |
- :string | |
- :required | |
Device: | |
- :string | |
- :required | |
:outputs: | |
:children: | |
attachTime: | |
:type: :time | |
deleteOnTermination: | |
:type: :boolean | |
- :name: AttachVpnGateway | |
:method: :attach_vpn_gateway | |
:inputs: | |
VpnGatewayId: | |
- :string | |
- :required | |
VpcId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: AuthorizeSecurityGroupEgress | |
:method: :authorize_security_group_egress | |
:inputs: | |
GroupId: | |
- :string | |
- :required | |
SourceSecurityGroupName: | |
- :string | |
SourceSecurityGroupOwnerId: | |
- :string | |
IpProtocol: | |
- :string | |
FromPort: | |
- :integer | |
ToPort: | |
- :integer | |
CidrIp: | |
- :string | |
IpPermissions: | |
- :list: | |
- :structure: | |
IpProtocol: | |
- :string | |
- :rename: IpProtocol | |
FromPort: | |
- :integer | |
- :rename: FromPort | |
ToPort: | |
- :integer | |
- :rename: ToPort | |
Groups: | |
- :list: | |
- :structure: | |
UserId: | |
- :string | |
- :rename: UserId | |
GroupName: | |
- :string | |
- :rename: GroupName | |
GroupId: | |
- :string | |
- :rename: GroupId | |
- :rename: UserIdGroupPairs | |
IpRanges: | |
- :list: | |
- :structure: | |
CidrIp: | |
- :string | |
- :rename: CidrIp | |
- :rename: IpRanges | |
:outputs: {} | |
- :name: AuthorizeSecurityGroupIngress | |
:method: :authorize_security_group_ingress | |
:inputs: | |
GroupName: | |
- :string | |
GroupId: | |
- :string | |
SourceSecurityGroupName: | |
- :string | |
SourceSecurityGroupOwnerId: | |
- :string | |
IpProtocol: | |
- :string | |
FromPort: | |
- :integer | |
ToPort: | |
- :integer | |
CidrIp: | |
- :string | |
IpPermissions: | |
- :list: | |
- :structure: | |
IpProtocol: | |
- :string | |
- :rename: IpProtocol | |
FromPort: | |
- :integer | |
- :rename: FromPort | |
ToPort: | |
- :integer | |
- :rename: ToPort | |
Groups: | |
- :list: | |
- :structure: | |
UserId: | |
- :string | |
- :rename: UserId | |
GroupName: | |
- :string | |
- :rename: GroupName | |
GroupId: | |
- :string | |
- :rename: GroupId | |
- :rename: UserIdGroupPairs | |
IpRanges: | |
- :list: | |
- :structure: | |
CidrIp: | |
- :string | |
- :rename: CidrIp | |
- :rename: IpRanges | |
:outputs: {} | |
- :name: BundleInstance | |
:method: :bundle_instance | |
:inputs: | |
InstanceId: | |
- :string | |
- :required | |
Storage: | |
- :structure: | |
S3: | |
- :structure: | |
Bucket: | |
- :string | |
- :rename: Bucket | |
Prefix: | |
- :string | |
- :rename: Prefix | |
AWSAccessKeyId: | |
- :string | |
UploadPolicy: | |
- :string | |
- :rename: UploadPolicy | |
UploadPolicySignature: | |
- :string | |
- :rename: UploadPolicySignature | |
- :required | |
:outputs: | |
:children: | |
bundleInstanceTask: | |
:children: | |
startTime: | |
:type: :time | |
updateTime: | |
:type: :time | |
- :name: CancelBundleTask | |
:method: :cancel_bundle_task | |
:inputs: | |
BundleId: | |
- :string | |
- :required | |
:outputs: | |
:children: | |
bundleInstanceTask: | |
:children: | |
startTime: | |
:type: :time | |
updateTime: | |
:type: :time | |
- :name: CancelConversionTask | |
:method: :cancel_conversion_task | |
:inputs: | |
ConversionTaskId: | |
- :string | |
- :required | |
ReasonMessage: | |
- :string | |
:outputs: {} | |
- :name: CancelExportTask | |
:method: :cancel_export_task | |
:inputs: | |
ExportTaskId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: CancelReservedInstancesListing | |
:method: :cancel_reserved_instances_listing | |
:inputs: | |
ReservedInstancesListingId: | |
- :string | |
- :required | |
:outputs: | |
:children: | |
reservedInstancesListingsSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :reserved_instances_listings_set | |
:list: true | |
:children: | |
createDate: | |
:type: :time | |
updateDate: | |
:type: :time | |
instanceCounts: | |
:ignore: true | |
:children: | |
item: | |
:rename: :instance_counts | |
:list: true | |
:children: | |
instanceCount: | |
:type: :integer | |
priceSchedules: | |
:ignore: true | |
:children: | |
item: | |
:rename: :price_schedules | |
:list: true | |
:children: | |
term: | |
:type: :integer | |
price: | |
:type: :float | |
active: | |
:type: :boolean | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
- :name: CancelSpotInstanceRequests | |
:method: :cancel_spot_instance_requests | |
:inputs: | |
SpotInstanceRequestId: | |
- :list: | |
- :string | |
- :required | |
- :rename: spotInstanceRequestIds | |
:outputs: | |
:children: | |
spotInstanceRequestSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :spot_instance_request_set | |
:list: true | |
- :name: ConfirmProductInstance | |
:method: :confirm_product_instance | |
:inputs: | |
ProductCode: | |
- :string | |
- :required | |
InstanceId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: CopyImage | |
:method: :copy_image | |
:inputs: | |
SourceRegion: | |
- :string | |
- :required | |
SourceImageId: | |
- :string | |
- :required | |
Name: | |
- :string | |
- :required | |
Description: | |
- :string | |
ClientToken: | |
- :string | |
:outputs: {} | |
- :name: CopySnapshot | |
:method: :copy_snapshot | |
:inputs: | |
SourceRegion: | |
- :string | |
- :required | |
SourceSnapshotId: | |
- :string | |
- :required | |
Description: | |
- :string | |
:outputs: {} | |
- :name: CreateCustomerGateway | |
:method: :create_customer_gateway | |
:inputs: | |
Type: | |
- :string | |
- :required | |
IpAddress: | |
- :string | |
- :required | |
- :rename: PublicIp | |
BgpAsn: | |
- :integer | |
- :required | |
:outputs: | |
:children: | |
customerGateway: | |
:children: | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
- :name: CreateDhcpOptions | |
:method: :create_dhcp_options | |
:inputs: | |
DhcpConfiguration: | |
- :list: | |
- :structure: | |
Key: | |
- :string | |
- :rename: Key | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :required | |
- :rename: DhcpConfigurations | |
:outputs: | |
:children: | |
dhcpOptions: | |
:children: | |
dhcpConfigurationSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :dhcp_configuration_set | |
:list: true | |
:children: | |
valueSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :value_set | |
:list: true | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
- :name: CreateImage | |
:method: :create_image | |
:inputs: | |
InstanceId: | |
- :string | |
- :required | |
Name: | |
- :string | |
- :required | |
Description: | |
- :string | |
NoReboot: | |
- :boolean | |
BlockDeviceMapping: | |
- :list: | |
- :structure: | |
VirtualName: | |
- :string | |
- :rename: VirtualName | |
DeviceName: | |
- :string | |
- :rename: DeviceName | |
Ebs: | |
- :structure: | |
SnapshotId: | |
- :string | |
VolumeSize: | |
- :integer | |
DeleteOnTermination: | |
- :boolean | |
VolumeType: | |
- :string | |
Iops: | |
- :integer | |
NoDevice: | |
- :string | |
- :rename: blockDeviceMappings | |
:outputs: {} | |
- :name: CreateInstanceExportTask | |
:method: :create_instance_export_task | |
:inputs: | |
Description: | |
- :string | |
InstanceId: | |
- :string | |
- :required | |
TargetEnvironment: | |
- :string | |
ExportToS3: | |
- :structure: | |
DiskImageFormat: | |
- :string | |
ContainerFormat: | |
- :string | |
S3Bucket: | |
- :string | |
S3Prefix: | |
- :string | |
- :rename: exportToS3Task | |
:outputs: {} | |
- :name: CreateInternetGateway | |
:method: :create_internet_gateway | |
:inputs: {} | |
:outputs: | |
:children: | |
internetGateway: | |
:children: | |
attachmentSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :attachment_set | |
:list: true | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
- :name: CreateKeyPair | |
:method: :create_key_pair | |
:inputs: | |
KeyName: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: CreateNetworkAcl | |
:method: :create_network_acl | |
:inputs: | |
VpcId: | |
- :string | |
- :required | |
:outputs: | |
:children: | |
networkAcl: | |
:children: | |
default: | |
:type: :boolean | |
entrySet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :entry_set | |
:list: true | |
:children: | |
ruleNumber: | |
:type: :integer | |
egress: | |
:type: :boolean | |
icmpTypeCode: | |
:children: | |
type: | |
:type: :integer | |
code: | |
:type: :integer | |
portRange: | |
:children: | |
from: | |
:type: :integer | |
to: | |
:type: :integer | |
associationSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :association_set | |
:list: true | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
- :name: CreateNetworkAclEntry | |
:method: :create_network_acl_entry | |
:inputs: | |
NetworkAclId: | |
- :string | |
- :required | |
RuleNumber: | |
- :integer | |
- :required | |
Protocol: | |
- :string | |
- :required | |
RuleAction: | |
- :string | |
- :required | |
Egress: | |
- :boolean | |
- :required | |
CidrBlock: | |
- :string | |
- :required | |
Icmp: | |
- :structure: | |
Type: | |
- :integer | |
Code: | |
- :integer | |
- :rename: icmpTypeCode | |
PortRange: | |
- :structure: | |
From: | |
- :integer | |
To: | |
- :integer | |
:outputs: {} | |
- :name: CreateNetworkInterface | |
:method: :create_network_interface | |
:inputs: | |
SubnetId: | |
- :string | |
- :required | |
Description: | |
- :string | |
PrivateIpAddress: | |
- :string | |
SecurityGroupId: | |
- :list: | |
- :string | |
- :rename: groups | |
PrivateIpAddresses: | |
- :list: | |
- :structure: | |
PrivateIpAddress: | |
- :string | |
- :required | |
Primary: | |
- :boolean | |
SecondaryPrivateIpAddressCount: | |
- :integer | |
:outputs: | |
:children: | |
networkInterface: | |
:children: | |
requesterManaged: | |
:type: :boolean | |
sourceDestCheck: | |
:type: :boolean | |
groupSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :group_set | |
:list: true | |
attachment: | |
:children: | |
deviceIndex: | |
:type: :integer | |
attachTime: | |
:type: :time | |
deleteOnTermination: | |
:type: :boolean | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
privateIpAddressesSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :private_ip_addresses_set | |
:list: true | |
:children: | |
primary: | |
:type: :boolean | |
- :name: CreatePlacementGroup | |
:method: :create_placement_group | |
:inputs: | |
GroupName: | |
- :string | |
- :required | |
Strategy: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: CreateReservedInstancesListing | |
:method: :create_reserved_instances_listing | |
:inputs: | |
ReservedInstancesId: | |
- :string | |
- :required | |
InstanceCount: | |
- :integer | |
- :required | |
PriceSchedules: | |
- :list: | |
- :structure: | |
Term: | |
- :long | |
Price: | |
- :double | |
CurrencyCode: | |
- :string | |
- :required | |
ClientToken: | |
- :string | |
- :required | |
:outputs: | |
:children: | |
reservedInstancesListingsSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :reserved_instances_listings_set | |
:list: true | |
:children: | |
createDate: | |
:type: :time | |
updateDate: | |
:type: :time | |
instanceCounts: | |
:ignore: true | |
:children: | |
item: | |
:rename: :instance_counts | |
:list: true | |
:children: | |
instanceCount: | |
:type: :integer | |
priceSchedules: | |
:ignore: true | |
:children: | |
item: | |
:rename: :price_schedules | |
:list: true | |
:children: | |
term: | |
:type: :integer | |
price: | |
:type: :float | |
active: | |
:type: :boolean | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
- :name: CreateRoute | |
:method: :create_route | |
:inputs: | |
RouteTableId: | |
- :string | |
- :required | |
DestinationCidrBlock: | |
- :string | |
- :required | |
GatewayId: | |
- :string | |
InstanceId: | |
- :string | |
NetworkInterfaceId: | |
- :string | |
:outputs: {} | |
- :name: CreateRouteTable | |
:method: :create_route_table | |
:inputs: | |
VpcId: | |
- :string | |
- :required | |
:outputs: | |
:children: | |
routeTable: | |
:children: | |
routeSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :route_set | |
:list: true | |
associationSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :association_set | |
:list: true | |
:children: | |
main: | |
:type: :boolean | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
propagatingVgwSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :propagating_vgw_set | |
:list: true | |
- :name: CreateSecurityGroup | |
:method: :create_security_group | |
:inputs: | |
GroupName: | |
- :string | |
- :required | |
GroupDescription: | |
- :string | |
- :required | |
- :rename: Description | |
VpcId: | |
- :string | |
:outputs: {} | |
- :name: CreateSnapshot | |
:method: :create_snapshot | |
:inputs: | |
VolumeId: | |
- :string | |
- :required | |
Description: | |
- :string | |
:outputs: | |
:children: | |
startTime: | |
:type: :time | |
volumeSize: | |
:type: :integer | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
- :name: CreateSpotDatafeedSubscription | |
:method: :create_spot_datafeed_subscription | |
:inputs: | |
Bucket: | |
- :string | |
- :required | |
Prefix: | |
- :string | |
:outputs: {} | |
- :name: CreateSubnet | |
:method: :create_subnet | |
:inputs: | |
VpcId: | |
- :string | |
- :required | |
CidrBlock: | |
- :string | |
- :required | |
AvailabilityZone: | |
- :string | |
:outputs: | |
:children: | |
subnet: | |
:children: | |
availableIpAddressCount: | |
:type: :integer | |
defaultForAz: | |
:type: :boolean | |
mapPublicIpOnLaunch: | |
:type: :boolean | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
- :name: CreateTags | |
:method: :create_tags | |
:inputs: | |
ResourceId: | |
- :list: | |
- :string | |
- :required | |
- :rename: resources | |
Tag: | |
- :list: | |
- :structure: | |
Key: | |
- :string | |
Value: | |
- :string | |
- :required | |
- :rename: tags | |
:outputs: {} | |
- :name: CreateVolume | |
:method: :create_volume | |
:inputs: | |
Size: | |
- :integer | |
SnapshotId: | |
- :string | |
AvailabilityZone: | |
- :string | |
- :required | |
VolumeType: | |
- :string | |
Iops: | |
- :integer | |
:outputs: | |
:children: | |
size: | |
:type: :integer | |
createTime: | |
:type: :time | |
attachmentSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :attachment_set | |
:list: true | |
:children: | |
attachTime: | |
:type: :time | |
deleteOnTermination: | |
:type: :boolean | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
iops: | |
:type: :integer | |
- :name: CreateVpc | |
:method: :create_vpc | |
:inputs: | |
CidrBlock: | |
- :string | |
- :required | |
InstanceTenancy: | |
- :string | |
:outputs: | |
:children: | |
vpc: | |
:children: | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
isDefault: | |
:type: :boolean | |
- :name: CreateVpnConnection | |
:method: :create_vpn_connection | |
:inputs: | |
Type: | |
- :string | |
- :required | |
CustomerGatewayId: | |
- :string | |
- :required | |
VpnGatewayId: | |
- :string | |
- :required | |
Options: | |
- :structure: | |
StaticRoutesOnly: | |
- :boolean | |
:outputs: | |
:children: | |
vpnConnection: | |
:children: | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
vgwTelemetry: | |
:ignore: true | |
:children: | |
item: | |
:rename: :vgw_telemetry | |
:list: true | |
:children: | |
lastStatusChange: | |
:type: :time | |
acceptedRouteCount: | |
:type: :integer | |
options: | |
:children: | |
staticRoutesOnly: | |
:type: :boolean | |
routes: | |
:ignore: true | |
:children: | |
item: | |
:rename: :routes | |
:list: true | |
- :name: CreateVpnConnectionRoute | |
:method: :create_vpn_connection_route | |
:inputs: | |
VpnConnectionId: | |
- :string | |
- :required | |
DestinationCidrBlock: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: CreateVpnGateway | |
:method: :create_vpn_gateway | |
:inputs: | |
Type: | |
- :string | |
- :required | |
AvailabilityZone: | |
- :string | |
:outputs: | |
:children: | |
vpnGateway: | |
:children: | |
attachments: | |
:ignore: true | |
:children: | |
item: | |
:rename: :attachments | |
:list: true | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
type: | |
:rename: :vpn_type | |
- :name: DeactivateLicense | |
:method: :deactivate_license | |
:inputs: | |
LicenseId: | |
- :string | |
- :required | |
Capacity: | |
- :integer | |
- :required | |
:outputs: {} | |
- :name: DeleteCustomerGateway | |
:method: :delete_customer_gateway | |
:inputs: | |
CustomerGatewayId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: DeleteDhcpOptions | |
:method: :delete_dhcp_options | |
:inputs: | |
DhcpOptionsId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: DeleteInternetGateway | |
:method: :delete_internet_gateway | |
:inputs: | |
InternetGatewayId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: DeleteKeyPair | |
:method: :delete_key_pair | |
:inputs: | |
KeyName: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: DeleteNetworkAcl | |
:method: :delete_network_acl | |
:inputs: | |
NetworkAclId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: DeleteNetworkAclEntry | |
:method: :delete_network_acl_entry | |
:inputs: | |
NetworkAclId: | |
- :string | |
- :required | |
RuleNumber: | |
- :integer | |
- :required | |
Egress: | |
- :boolean | |
- :required | |
:outputs: {} | |
- :name: DeleteNetworkInterface | |
:method: :delete_network_interface | |
:inputs: | |
NetworkInterfaceId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: DeletePlacementGroup | |
:method: :delete_placement_group | |
:inputs: | |
GroupName: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: DeleteRoute | |
:method: :delete_route | |
:inputs: | |
RouteTableId: | |
- :string | |
- :required | |
DestinationCidrBlock: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: DeleteRouteTable | |
:method: :delete_route_table | |
:inputs: | |
RouteTableId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: DeleteSecurityGroup | |
:method: :delete_security_group | |
:inputs: | |
GroupName: | |
- :string | |
GroupId: | |
- :string | |
:outputs: {} | |
- :name: DeleteSnapshot | |
:method: :delete_snapshot | |
:inputs: | |
SnapshotId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: DeleteSpotDatafeedSubscription | |
:method: :delete_spot_datafeed_subscription | |
:inputs: {} | |
:outputs: {} | |
- :name: DeleteSubnet | |
:method: :delete_subnet | |
:inputs: | |
SubnetId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: DeleteTags | |
:method: :delete_tags | |
:inputs: | |
ResourceId: | |
- :list: | |
- :string | |
- :required | |
- :rename: resources | |
Tag: | |
- :list: | |
- :structure: | |
Key: | |
- :string | |
Value: | |
- :string | |
- :rename: tags | |
:outputs: {} | |
- :name: DeleteVolume | |
:method: :delete_volume | |
:inputs: | |
VolumeId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: DeleteVpc | |
:method: :delete_vpc | |
:inputs: | |
VpcId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: DeleteVpnConnection | |
:method: :delete_vpn_connection | |
:inputs: | |
VpnConnectionId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: DeleteVpnConnectionRoute | |
:method: :delete_vpn_connection_route | |
:inputs: | |
VpnConnectionId: | |
- :string | |
- :required | |
DestinationCidrBlock: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: DeleteVpnGateway | |
:method: :delete_vpn_gateway | |
:inputs: | |
VpnGatewayId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: DeregisterImage | |
:method: :deregister_image | |
:inputs: | |
ImageId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: DescribeAccountAttributes | |
:method: :describe_account_attributes | |
:inputs: | |
AttributeName: | |
- :list: | |
- :string | |
- :rename: attributeNames | |
:outputs: | |
:children: | |
accountAttributeSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :account_attribute_set | |
:list: true | |
:children: | |
attributeValueSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :attribute_value_set | |
:list: true | |
- :name: DescribeAddresses | |
:method: :describe_addresses | |
:inputs: | |
PublicIp: | |
- :list: | |
- :string | |
- :rename: PublicIps | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
AllocationId: | |
- :list: | |
- :string | |
- :rename: allocationIds | |
:outputs: | |
:children: | |
addressesSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :addresses_set | |
:list: true | |
:index: | |
:key: :public_ip | |
:name: :address_index | |
- :name: DescribeAvailabilityZones | |
:method: :describe_availability_zones | |
:inputs: | |
ZoneName: | |
- :list: | |
- :string | |
- :rename: ZoneNames | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
:outputs: | |
:children: | |
availabilityZoneInfo: | |
:ignore: true | |
:children: | |
item: | |
:rename: :availability_zone_info | |
:list: true | |
:children: | |
messageSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :message_set | |
:list: true | |
- :name: DescribeBundleTasks | |
:method: :describe_bundle_tasks | |
:inputs: | |
BundleId: | |
- :list: | |
- :string | |
- :rename: BundleIds | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
:outputs: | |
:children: | |
bundleInstanceTasksSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :bundle_instance_tasks_set | |
:list: true | |
:children: | |
startTime: | |
:type: :time | |
updateTime: | |
:type: :time | |
- :name: DescribeConversionTasks | |
:method: :describe_conversion_tasks | |
:inputs: | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
ConversionTaskId: | |
- :list: | |
- :string | |
- :rename: conversionTaskIds | |
:outputs: | |
:children: | |
conversionTasks: | |
:ignore: true | |
:children: | |
item: | |
:rename: :conversion_tasks | |
:list: true | |
:children: | |
importInstance: | |
:children: | |
volumes: | |
:ignore: true | |
:children: | |
item: | |
:rename: :volumes | |
:list: true | |
:children: | |
bytesConverted: | |
:type: :integer | |
image: | |
:children: | |
size: | |
:type: :integer | |
volume: | |
:children: | |
size: | |
:type: :integer | |
importVolume: | |
:children: | |
bytesConverted: | |
:type: :integer | |
image: | |
:children: | |
size: | |
:type: :integer | |
volume: | |
:children: | |
size: | |
:type: :integer | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
- :name: DescribeCustomerGateways | |
:method: :describe_customer_gateways | |
:inputs: | |
CustomerGatewayId: | |
- :list: | |
- :string | |
- :rename: CustomerGatewayIds | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: Filters | |
:outputs: | |
:children: | |
customerGatewaySet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :customer_gateway_set | |
:list: true | |
:children: | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
type: | |
:rename: :vpn_type | |
- :name: DescribeDhcpOptions | |
:method: :describe_dhcp_options | |
:inputs: | |
DhcpOptionsId: | |
- :list: | |
- :string | |
- :rename: DhcpOptionsIds | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
:outputs: | |
:children: | |
dhcpOptionsSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :dhcp_options_set | |
:list: true | |
:children: | |
dhcpConfigurationSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :dhcp_configuration_set | |
:list: true | |
:children: | |
valueSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :value_set | |
:list: true | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
- :name: DescribeExportTasks | |
:method: :describe_export_tasks | |
:inputs: | |
ExportTaskId: | |
- :list: | |
- :string | |
- :rename: exportTaskIds | |
:outputs: | |
:children: | |
exportTaskSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :export_task_set | |
:list: true | |
- :name: DescribeImageAttribute | |
:method: :describe_image_attribute | |
:inputs: | |
ImageId: | |
- :string | |
- :required | |
Attribute: | |
- :string | |
- :required | |
:outputs: | |
:children: | |
launchPermission: | |
:ignore: true | |
:children: | |
item: | |
:rename: :launch_permission | |
:list: true | |
productCodes: | |
:ignore: true | |
:children: | |
item: | |
:rename: :product_codes | |
:list: true | |
blockDeviceMapping: | |
:ignore: true | |
:children: | |
item: | |
:rename: :block_device_mapping | |
:list: true | |
:children: | |
ebs: | |
:children: | |
volumeSize: | |
:type: :integer | |
deleteOnTermination: | |
:type: :boolean | |
iops: | |
:type: :integer | |
- :name: DescribeImages | |
:method: :describe_images | |
:inputs: | |
ImageId: | |
- :list: | |
- :string | |
- :rename: ImageIds | |
Owner: | |
- :list: | |
- :string | |
- :rename: Owners | |
ExecutableBy: | |
- :list: | |
- :string | |
- :rename: ExecutableUsers | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
:outputs: | |
:children: | |
imagesSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :images_set | |
:list: true | |
:children: | |
isPublic: | |
:type: :boolean | |
productCodes: | |
:ignore: true | |
:children: | |
item: | |
:rename: :product_codes | |
:list: true | |
blockDeviceMapping: | |
:ignore: true | |
:children: | |
item: | |
:rename: :block_device_mapping | |
:list: true | |
:children: | |
ebs: | |
:children: | |
volumeSize: | |
:type: :integer | |
deleteOnTermination: | |
:type: :boolean | |
iops: | |
:type: :integer | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
:index: | |
:key: :image_id | |
:name: :image_index | |
- :name: DescribeInstanceAttribute | |
:method: :describe_instance_attribute | |
:inputs: | |
InstanceId: | |
- :string | |
- :required | |
Attribute: | |
- :string | |
- :required | |
:outputs: | |
:children: | |
disableApiTermination: | |
:children: | |
value: | |
:type: :boolean | |
blockDeviceMapping: | |
:ignore: true | |
:children: | |
item: | |
:rename: :block_device_mapping | |
:list: true | |
:children: | |
ebs: | |
:children: | |
attachTime: | |
:type: :time | |
deleteOnTermination: | |
:type: :boolean | |
productCodes: | |
:ignore: true | |
:children: | |
item: | |
:rename: :product_codes | |
:list: true | |
ebsOptimized: | |
:children: | |
value: | |
:type: :boolean | |
- :name: DescribeInstanceStatus | |
:method: :describe_instance_status | |
:inputs: | |
InstanceId: | |
- :list: | |
- :string | |
- :rename: InstanceIds | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
NextToken: | |
- :string | |
MaxResults: | |
- :integer | |
IncludeAllInstances: | |
- :boolean | |
:outputs: | |
:children: | |
instanceStatusSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :instance_status_set | |
:list: true | |
:children: | |
eventsSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :events_set | |
:list: true | |
:children: | |
notBefore: | |
:type: :time | |
notAfter: | |
:type: :time | |
instanceState: | |
:children: | |
code: | |
:type: :integer | |
systemStatus: | |
:children: | |
details: | |
:ignore: true | |
:children: | |
item: | |
:rename: :details | |
:list: true | |
:children: | |
impairedSince: | |
:type: :time | |
instanceStatus: | |
:children: | |
details: | |
:ignore: true | |
:children: | |
item: | |
:rename: :details | |
:list: true | |
:children: | |
impairedSince: | |
:type: :time | |
- :name: DescribeInstances | |
:method: :describe_instances | |
:inputs: | |
InstanceId: | |
- :list: | |
- :string | |
- :rename: InstanceIds | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
:outputs: | |
:children: | |
reservationSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :reservation_set | |
:list: true | |
:children: | |
groupSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :group_set | |
:list: true | |
instancesSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :instances_set | |
:list: true | |
:children: | |
instanceState: | |
:children: | |
code: | |
:type: :integer | |
amiLaunchIndex: | |
:type: :integer | |
productCodes: | |
:ignore: true | |
:children: | |
item: | |
:rename: :product_codes | |
:list: true | |
launchTime: | |
:type: :time | |
blockDeviceMapping: | |
:ignore: true | |
:children: | |
item: | |
:rename: :block_device_mapping | |
:list: true | |
:children: | |
ebs: | |
:children: | |
attachTime: | |
:type: :time | |
deleteOnTermination: | |
:type: :boolean | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
groupSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :group_set | |
:list: true | |
sourceDestCheck: | |
:type: :boolean | |
networkInterfaceSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :network_interface_set | |
:list: true | |
:children: | |
sourceDestCheck: | |
:type: :boolean | |
groupSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :group_set | |
:list: true | |
attachment: | |
:children: | |
deviceIndex: | |
:type: :integer | |
attachTime: | |
:type: :time | |
deleteOnTermination: | |
:type: :boolean | |
privateIpAddressesSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :private_ip_addresses_set | |
:list: true | |
:children: | |
primary: | |
:type: :boolean | |
ebsOptimized: | |
:type: :boolean | |
:index: | |
:key: :instance_id | |
:name: :instance_index | |
:index: | |
:key_path: | |
- :instances_set | |
- :instance_id | |
:name: :reservation_index | |
- :name: DescribeInternetGateways | |
:method: :describe_internet_gateways | |
:inputs: | |
InternetGatewayId: | |
- :list: | |
- :string | |
- :rename: internetGatewayIds | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
:outputs: | |
:children: | |
internetGatewaySet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :internet_gateway_set | |
:list: true | |
:children: | |
attachmentSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :attachment_set | |
:list: true | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
- :name: DescribeKeyPairs | |
:method: :describe_key_pairs | |
:inputs: | |
KeyName: | |
- :list: | |
- :string | |
- :rename: KeyNames | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
:outputs: | |
:children: | |
keySet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :key_set | |
:list: true | |
:index: | |
:key: :key_name | |
:name: :key_index | |
- :name: DescribeLicenses | |
:method: :describe_licenses | |
:inputs: | |
LicenseId: | |
- :list: | |
- :string | |
- :rename: licenseIds | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
:outputs: | |
:children: | |
licenseSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :license_set | |
:list: true | |
:children: | |
capacitySet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :capacity_set | |
:list: true | |
:children: | |
capacity: | |
:type: :integer | |
instanceCapacity: | |
:type: :integer | |
earliestAllowedDeactivationTime: | |
:type: :time | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
- :name: DescribeNetworkAcls | |
:method: :describe_network_acls | |
:inputs: | |
NetworkAclId: | |
- :list: | |
- :string | |
- :rename: networkAclIds | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
:outputs: | |
:children: | |
networkAclSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :network_acl_set | |
:list: true | |
:children: | |
default: | |
:type: :boolean | |
entrySet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :entry_set | |
:list: true | |
:children: | |
ruleNumber: | |
:type: :integer | |
egress: | |
:type: :boolean | |
icmpTypeCode: | |
:children: | |
type: | |
:type: :integer | |
code: | |
:type: :integer | |
portRange: | |
:children: | |
from: | |
:type: :integer | |
to: | |
:type: :integer | |
associationSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :association_set | |
:list: true | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
- :name: DescribeNetworkInterfaceAttribute | |
:method: :describe_network_interface_attribute | |
:inputs: | |
NetworkInterfaceId: | |
- :string | |
- :required | |
Description: | |
- :string | |
SourceDestCheck: | |
- :string | |
GroupSet: | |
- :string | |
- :rename: groups | |
Attachment: | |
- :string | |
:outputs: | |
:children: | |
sourceDestCheck: | |
:children: | |
value: | |
:type: :boolean | |
groupSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :group_set | |
:list: true | |
attachment: | |
:children: | |
deviceIndex: | |
:type: :integer | |
attachTime: | |
:type: :time | |
deleteOnTermination: | |
:type: :boolean | |
- :name: DescribeNetworkInterfaces | |
:method: :describe_network_interfaces | |
:inputs: | |
NetworkInterfaceId: | |
- :list: | |
- :string | |
- :rename: networkInterfaceIds | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
:outputs: | |
:children: | |
networkInterfaceSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :network_interface_set | |
:list: true | |
:children: | |
requesterManaged: | |
:type: :boolean | |
sourceDestCheck: | |
:type: :boolean | |
groupSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :groups | |
:list: true | |
attachment: | |
:children: | |
deviceIndex: | |
:type: :integer | |
attachTime: | |
:type: :time | |
deleteOnTermination: | |
:type: :boolean | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
privateIpAddressesSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :private_ip_addresses_set | |
:list: true | |
:children: | |
primary: | |
:type: :boolean | |
:rename: :set | |
- :name: DescribePlacementGroups | |
:method: :describe_placement_groups | |
:inputs: | |
GroupName: | |
- :list: | |
- :string | |
- :rename: groupNames | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
:outputs: | |
:children: | |
placementGroupSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :placement_group_set | |
:list: true | |
- :name: DescribeRegions | |
:method: :describe_regions | |
:inputs: | |
RegionName: | |
- :list: | |
- :string | |
- :rename: RegionNames | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
:outputs: | |
:children: | |
regionInfo: | |
:ignore: true | |
:children: | |
item: | |
:rename: :region_info | |
:list: true | |
- :name: DescribeReservedInstances | |
:method: :describe_reserved_instances | |
:inputs: | |
ReservedInstancesId: | |
- :list: | |
- :string | |
- :rename: ReservedInstancesIds | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
OfferingType: | |
- :string | |
:outputs: | |
:children: | |
reservedInstancesSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :reserved_instances_set | |
:list: true | |
:children: | |
start: | |
:type: :time | |
duration: | |
:type: :integer | |
usagePrice: | |
:type: :float | |
fixedPrice: | |
:type: :float | |
instanceCount: | |
:type: :integer | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
recurringCharges: | |
:ignore: true | |
:children: | |
item: | |
:rename: :recurring_charges | |
:list: true | |
:children: | |
amount: | |
:type: :float | |
- :name: DescribeReservedInstancesListings | |
:method: :describe_reserved_instances_listings | |
:inputs: | |
ReservedInstancesId: | |
- :string | |
ReservedInstancesListingId: | |
- :string | |
Filters: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
:outputs: | |
:children: | |
reservedInstancesListingsSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :reserved_instances_listings_set | |
:list: true | |
:children: | |
createDate: | |
:type: :time | |
updateDate: | |
:type: :time | |
instanceCounts: | |
:ignore: true | |
:children: | |
item: | |
:rename: :instance_counts | |
:list: true | |
:children: | |
instanceCount: | |
:type: :integer | |
priceSchedules: | |
:ignore: true | |
:children: | |
item: | |
:rename: :price_schedules | |
:list: true | |
:children: | |
term: | |
:type: :integer | |
price: | |
:type: :float | |
active: | |
:type: :boolean | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
- :name: DescribeReservedInstancesOfferings | |
:method: :describe_reserved_instances_offerings | |
:inputs: | |
ReservedInstancesOfferingId: | |
- :list: | |
- :string | |
- :rename: ReservedInstancesOfferingIds | |
InstanceType: | |
- :string | |
AvailabilityZone: | |
- :string | |
ProductDescription: | |
- :string | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
InstanceTenancy: | |
- :string | |
OfferingType: | |
- :string | |
NextToken: | |
- :string | |
MaxResults: | |
- :integer | |
:outputs: | |
:children: | |
reservedInstancesOfferingsSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :reserved_instances_offerings_set | |
:list: true | |
:children: | |
duration: | |
:type: :integer | |
usagePrice: | |
:type: :float | |
fixedPrice: | |
:type: :float | |
recurringCharges: | |
:ignore: true | |
:children: | |
item: | |
:rename: :recurring_charges | |
:list: true | |
:children: | |
amount: | |
:type: :float | |
marketplace: | |
:type: :boolean | |
pricingDetailsSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :pricing_details_set | |
:list: true | |
:children: | |
price: | |
:type: :float | |
count: | |
:type: :integer | |
- :name: DescribeRouteTables | |
:method: :describe_route_tables | |
:inputs: | |
RouteTableId: | |
- :list: | |
- :string | |
- :rename: routeTableIds | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
:outputs: | |
:children: | |
routeTableSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :route_table_set | |
:list: true | |
:children: | |
routeSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :route_set | |
:list: true | |
associationSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :association_set | |
:list: true | |
:children: | |
main: | |
:type: :boolean | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
propagatingVgwSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :propagating_vgw_set | |
:list: true | |
- :name: DescribeSecurityGroups | |
:method: :describe_security_groups | |
:inputs: | |
GroupName: | |
- :list: | |
- :string | |
- :rename: GroupNames | |
GroupId: | |
- :list: | |
- :string | |
- :rename: GroupIds | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
:outputs: | |
:children: | |
securityGroupInfo: | |
:ignore: true | |
:children: | |
item: | |
:rename: :security_group_info | |
:list: true | |
:children: | |
ipPermissions: | |
:ignore: true | |
:children: | |
item: | |
:rename: :ip_permissions | |
:list: true | |
:children: | |
fromPort: | |
:type: :integer | |
toPort: | |
:type: :integer | |
groups: | |
:ignore: true | |
:children: | |
item: | |
:rename: :groups | |
:list: true | |
ipRanges: | |
:ignore: true | |
:children: | |
item: | |
:rename: :ip_ranges | |
:list: true | |
ipPermissionsEgress: | |
:ignore: true | |
:children: | |
item: | |
:rename: :ip_permissions_egress | |
:list: true | |
:children: | |
fromPort: | |
:type: :integer | |
toPort: | |
:type: :integer | |
groups: | |
:ignore: true | |
:children: | |
item: | |
:rename: :groups | |
:list: true | |
ipRanges: | |
:ignore: true | |
:children: | |
item: | |
:rename: :ip_ranges | |
:list: true | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
:index: | |
:key: :group_id | |
:name: :security_group_index | |
- :name: DescribeSnapshotAttribute | |
:method: :describe_snapshot_attribute | |
:inputs: | |
SnapshotId: | |
- :string | |
- :required | |
Attribute: | |
- :string | |
- :required | |
:outputs: | |
:children: | |
createVolumePermission: | |
:ignore: true | |
:children: | |
item: | |
:rename: :create_volume_permission | |
:list: true | |
productCodes: | |
:ignore: true | |
:children: | |
item: | |
:rename: :product_codes | |
:list: true | |
- :name: DescribeSnapshots | |
:method: :describe_snapshots | |
:inputs: | |
SnapshotId: | |
- :list: | |
- :string | |
- :rename: SnapshotIds | |
Owner: | |
- :list: | |
- :string | |
- :rename: OwnerIds | |
RestorableBy: | |
- :list: | |
- :string | |
- :rename: RestorableByUserIds | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
:outputs: | |
:children: | |
snapshotSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :snapshot_set | |
:list: true | |
:children: | |
startTime: | |
:type: :time | |
volumeSize: | |
:type: :integer | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
:index: | |
:key: :snapshot_id | |
:name: :snapshot_index | |
- :name: DescribeSpotDatafeedSubscription | |
:method: :describe_spot_datafeed_subscription | |
:inputs: {} | |
:outputs: {} | |
- :name: DescribeSpotInstanceRequests | |
:method: :describe_spot_instance_requests | |
:inputs: | |
SpotInstanceRequestId: | |
- :list: | |
- :string | |
- :rename: spotInstanceRequestIds | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
:outputs: | |
:children: | |
spotInstanceRequestSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :spot_instance_request_set | |
:list: true | |
:children: | |
status: | |
:children: | |
updateTime: | |
:type: :time | |
validFrom: | |
:type: :time | |
validUntil: | |
:type: :time | |
launchSpecification: | |
:children: | |
groupSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :group_set | |
:list: true | |
blockDeviceMapping: | |
:ignore: true | |
:children: | |
item: | |
:rename: :block_device_mapping | |
:list: true | |
:children: | |
ebs: | |
:children: | |
volumeSize: | |
:type: :integer | |
deleteOnTermination: | |
:type: :boolean | |
iops: | |
:type: :integer | |
monitoringEnabled: | |
:type: :boolean | |
networkInterfaceSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :network_interface_set | |
:list: true | |
:children: | |
deviceIndex: | |
:type: :integer | |
SecurityGroupId: | |
:ignore: true | |
:children: | |
SecurityGroupId: | |
:rename: :security_group_id | |
:list: true | |
deleteOnTermination: | |
:type: :boolean | |
privateIpAddressesSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :private_ip_addresses_set | |
:list: true | |
:children: | |
primary: | |
:type: :boolean | |
secondaryPrivateIpAddressCount: | |
:type: :integer | |
ebsOptimized: | |
:type: :boolean | |
createTime: | |
:type: :time | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
- :name: DescribeSpotPriceHistory | |
:method: :describe_spot_price_history | |
:inputs: | |
StartTime: | |
- :timestamp | |
EndTime: | |
- :timestamp | |
InstanceType: | |
- :list: | |
- :string | |
- :rename: instanceTypes | |
ProductDescription: | |
- :list: | |
- :string | |
- :rename: productDescriptions | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
AvailabilityZone: | |
- :string | |
MaxResults: | |
- :integer | |
NextToken: | |
- :string | |
:outputs: | |
:children: | |
spotPriceHistorySet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :spot_price_history_set | |
:list: true | |
:children: | |
timestamp: | |
:type: :time | |
- :name: DescribeSubnets | |
:method: :describe_subnets | |
:inputs: | |
SubnetId: | |
- :list: | |
- :string | |
- :rename: SubnetIds | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: Filters | |
:outputs: | |
:children: | |
subnetSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :subnet_set | |
:list: true | |
:children: | |
availableIpAddressCount: | |
:type: :integer | |
defaultForAz: | |
:type: :boolean | |
mapPublicIpOnLaunch: | |
:type: :boolean | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
- :name: DescribeTags | |
:method: :describe_tags | |
:inputs: | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
:outputs: | |
:children: | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
:index: | |
:keys: | |
- :resource_type | |
- :resource_id | |
- :key | |
:name: :tag_index | |
- :name: DescribeVolumeAttribute | |
:method: :describe_volume_attribute | |
:inputs: | |
VolumeId: | |
- :string | |
- :required | |
Attribute: | |
- :string | |
:outputs: | |
:children: | |
autoEnableIO: | |
:children: | |
value: | |
:type: :boolean | |
productCodes: | |
:ignore: true | |
:children: | |
item: | |
:rename: :product_codes | |
:list: true | |
- :name: DescribeVolumeStatus | |
:method: :describe_volume_status | |
:inputs: | |
VolumeId: | |
- :list: | |
- :string | |
- :rename: VolumeIds | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
NextToken: | |
- :string | |
MaxResults: | |
- :integer | |
:outputs: | |
:children: | |
volumeStatusSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :volume_status_set | |
:list: true | |
:children: | |
volumeStatus: | |
:children: | |
details: | |
:ignore: true | |
:children: | |
item: | |
:rename: :details | |
:list: true | |
eventsSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :events_set | |
:list: true | |
:children: | |
notBefore: | |
:type: :time | |
notAfter: | |
:type: :time | |
actionsSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :actions_set | |
:list: true | |
- :name: DescribeVolumes | |
:method: :describe_volumes | |
:inputs: | |
VolumeId: | |
- :list: | |
- :string | |
- :rename: VolumeIds | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: filters | |
:outputs: | |
:children: | |
volumeSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :volume_set | |
:list: true | |
:children: | |
size: | |
:type: :integer | |
createTime: | |
:type: :time | |
attachmentSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :attachment_set | |
:list: true | |
:children: | |
attachTime: | |
:type: :time | |
deleteOnTermination: | |
:type: :boolean | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
iops: | |
:type: :integer | |
:index: | |
:key: :volume_id | |
:name: :volume_index | |
- :name: DescribeVpcAttribute | |
:method: :describe_vpc_attribute | |
:inputs: | |
VpcId: | |
- :string | |
- :required | |
Attribute: | |
- :string | |
:outputs: | |
:children: | |
enableDnsSupport: | |
:children: | |
value: | |
:type: :boolean | |
enableDnsHostnames: | |
:children: | |
value: | |
:type: :boolean | |
- :name: DescribeVpcs | |
:method: :describe_vpcs | |
:inputs: | |
VpcId: | |
- :list: | |
- :string | |
- :rename: VpcIds | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: Filters | |
:outputs: | |
:children: | |
vpcSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :vpc_set | |
:list: true | |
:children: | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
isDefault: | |
:type: :boolean | |
- :name: DescribeVpnConnections | |
:method: :describe_vpn_connections | |
:inputs: | |
VpnConnectionId: | |
- :list: | |
- :string | |
- :rename: VpnConnectionIds | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: Filters | |
:outputs: | |
:children: | |
vpnConnectionSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :vpn_connection_set | |
:list: true | |
:children: | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
vgwTelemetry: | |
:ignore: true | |
:children: | |
item: | |
:rename: :vgw_telemetry | |
:list: true | |
:children: | |
lastStatusChange: | |
:type: :time | |
acceptedRouteCount: | |
:type: :integer | |
options: | |
:children: | |
staticRoutesOnly: | |
:type: :boolean | |
routes: | |
:ignore: true | |
:children: | |
item: | |
:rename: :routes | |
:list: true | |
type: | |
:rename: :vpn_type | |
- :name: DescribeVpnGateways | |
:method: :describe_vpn_gateways | |
:inputs: | |
VpnGatewayId: | |
- :list: | |
- :string | |
- :rename: VpnGatewayIds | |
Filter: | |
- :list: | |
- :structure: | |
Name: | |
- :string | |
Value: | |
- :list: | |
- :string | |
- :rename: Values | |
- :rename: Filters | |
:outputs: | |
:children: | |
vpnGatewaySet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :vpn_gateway_set | |
:list: true | |
:children: | |
attachments: | |
:ignore: true | |
:children: | |
item: | |
:rename: :attachments | |
:list: true | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
type: | |
:rename: :vpn_type | |
- :name: DetachInternetGateway | |
:method: :detach_internet_gateway | |
:inputs: | |
InternetGatewayId: | |
- :string | |
- :required | |
VpcId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: DetachNetworkInterface | |
:method: :detach_network_interface | |
:inputs: | |
AttachmentId: | |
- :string | |
- :required | |
Force: | |
- :boolean | |
:outputs: {} | |
- :name: DetachVolume | |
:method: :detach_volume | |
:inputs: | |
VolumeId: | |
- :string | |
- :required | |
InstanceId: | |
- :string | |
Device: | |
- :string | |
Force: | |
- :boolean | |
:outputs: | |
:children: | |
attachTime: | |
:type: :time | |
deleteOnTermination: | |
:type: :boolean | |
- :name: DetachVpnGateway | |
:method: :detach_vpn_gateway | |
:inputs: | |
VpnGatewayId: | |
- :string | |
- :required | |
VpcId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: DisableVgwRoutePropagation | |
:method: :disable_vgw_route_propagation | |
:inputs: | |
RouteTableId: | |
- :string | |
- :required | |
GatewayId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: DisassociateAddress | |
:method: :disassociate_address | |
:inputs: | |
PublicIp: | |
- :string | |
AssociationId: | |
- :string | |
:outputs: {} | |
- :name: DisassociateRouteTable | |
:method: :disassociate_route_table | |
:inputs: | |
AssociationId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: EnableVgwRoutePropagation | |
:method: :enable_vgw_route_propagation | |
:inputs: | |
RouteTableId: | |
- :string | |
- :required | |
GatewayId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: EnableVolumeIO | |
:method: :enable_volume_io | |
:inputs: | |
VolumeId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: GetConsoleOutput | |
:method: :get_console_output | |
:inputs: | |
InstanceId: | |
- :string | |
- :required | |
:outputs: | |
:children: | |
timestamp: | |
:type: :time | |
- :name: GetPasswordData | |
:method: :get_password_data | |
:inputs: | |
InstanceId: | |
- :string | |
- :required | |
:outputs: | |
:children: | |
timestamp: | |
:type: :time | |
- :name: ImportInstance | |
:method: :import_instance | |
:inputs: | |
Description: | |
- :string | |
LaunchSpecification: | |
- :structure: | |
Architecture: | |
- :string | |
SecurityGroup: | |
- :list: | |
- :string | |
- :rename: securityGroups | |
AdditionalInfo: | |
- :string | |
UserData: | |
- :string | |
InstanceType: | |
- :string | |
Placement: | |
- :structure: | |
AvailabilityZone: | |
- :string | |
- :rename: AvailabilityZone | |
GroupName: | |
- :string | |
Tenancy: | |
- :string | |
BlockDeviceMapping: | |
- :list: | |
- :structure: | |
VirtualName: | |
- :string | |
- :rename: VirtualName | |
DeviceName: | |
- :string | |
- :rename: DeviceName | |
Ebs: | |
- :structure: | |
SnapshotId: | |
- :string | |
VolumeSize: | |
- :integer | |
DeleteOnTermination: | |
- :boolean | |
VolumeType: | |
- :string | |
Iops: | |
- :integer | |
NoDevice: | |
- :string | |
- :rename: blockDeviceMappings | |
Monitoring: | |
- :boolean | |
SubnetId: | |
- :string | |
DisableApiTermination: | |
- :boolean | |
InstanceInitiatedShutdownBehavior: | |
- :string | |
PrivateIpAddress: | |
- :string | |
DiskImage: | |
- :list: | |
- :structure: | |
Image: | |
- :structure: | |
Format: | |
- :string | |
- :required | |
Bytes: | |
- :long | |
- :required | |
ImportManifestUrl: | |
- :string | |
- :required | |
Description: | |
- :string | |
Volume: | |
- :structure: | |
Size: | |
- :long | |
- :required | |
- :rename: diskImages | |
Platform: | |
- :string | |
- :required | |
:outputs: | |
:children: | |
conversionTask: | |
:children: | |
importInstance: | |
:children: | |
volumes: | |
:ignore: true | |
:children: | |
item: | |
:rename: :volumes | |
:list: true | |
:children: | |
bytesConverted: | |
:type: :integer | |
image: | |
:children: | |
size: | |
:type: :integer | |
volume: | |
:children: | |
size: | |
:type: :integer | |
importVolume: | |
:children: | |
bytesConverted: | |
:type: :integer | |
image: | |
:children: | |
size: | |
:type: :integer | |
volume: | |
:children: | |
size: | |
:type: :integer | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
- :name: ImportKeyPair | |
:method: :import_key_pair | |
:inputs: | |
KeyName: | |
- :string | |
- :required | |
PublicKeyMaterial: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: ImportVolume | |
:method: :import_volume | |
:inputs: | |
AvailabilityZone: | |
- :string | |
Image: | |
- :structure: | |
Format: | |
- :string | |
- :required | |
Bytes: | |
- :long | |
- :required | |
ImportManifestUrl: | |
- :string | |
- :required | |
Description: | |
- :string | |
Volume: | |
- :structure: | |
Size: | |
- :long | |
- :required | |
:outputs: | |
:children: | |
conversionTask: | |
:children: | |
importInstance: | |
:children: | |
volumes: | |
:ignore: true | |
:children: | |
item: | |
:rename: :volumes | |
:list: true | |
:children: | |
bytesConverted: | |
:type: :integer | |
image: | |
:children: | |
size: | |
:type: :integer | |
volume: | |
:children: | |
size: | |
:type: :integer | |
importVolume: | |
:children: | |
bytesConverted: | |
:type: :integer | |
image: | |
:children: | |
size: | |
:type: :integer | |
volume: | |
:children: | |
size: | |
:type: :integer | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
- :name: ModifyImageAttribute | |
:method: :modify_image_attribute | |
:inputs: | |
ImageId: | |
- :string | |
- :required | |
Attribute: | |
- :string | |
OperationType: | |
- :string | |
UserId: | |
- :list: | |
- :string | |
- :rename: UserIds | |
UserGroup: | |
- :list: | |
- :string | |
- :rename: UserGroups | |
ProductCode: | |
- :list: | |
- :string | |
- :rename: ProductCodes | |
Value: | |
- :string | |
LaunchPermission: | |
- :structure: | |
Add: | |
- :list: | |
- :structure: | |
UserId: | |
- :string | |
- :rename: UserId | |
Group: | |
- :string | |
- :rename: Group | |
Remove: | |
- :list: | |
- :structure: | |
UserId: | |
- :string | |
- :rename: UserId | |
Group: | |
- :string | |
- :rename: Group | |
Description: | |
- :structure: | |
Value: | |
- :string | |
:outputs: {} | |
- :name: ModifyInstanceAttribute | |
:method: :modify_instance_attribute | |
:inputs: | |
InstanceId: | |
- :string | |
- :required | |
Attribute: | |
- :string | |
Value: | |
- :string | |
BlockDeviceMapping: | |
- :list: | |
- :structure: | |
DeviceName: | |
- :string | |
Ebs: | |
- :structure: | |
VolumeId: | |
- :string | |
DeleteOnTermination: | |
- :boolean | |
VirtualName: | |
- :string | |
NoDevice: | |
- :string | |
- :rename: blockDeviceMappings | |
SourceDestCheck: | |
- :structure: | |
Value: | |
- :boolean | |
DisableApiTermination: | |
- :structure: | |
Value: | |
- :boolean | |
InstanceType: | |
- :structure: | |
Value: | |
- :string | |
Kernel: | |
- :structure: | |
Value: | |
- :string | |
Ramdisk: | |
- :structure: | |
Value: | |
- :string | |
UserData: | |
- :structure: | |
Value: | |
- :string | |
InstanceInitiatedShutdownBehavior: | |
- :structure: | |
Value: | |
- :string | |
GroupId: | |
- :list: | |
- :string | |
- :rename: groups | |
EbsOptimized: | |
- :structure: | |
Value: | |
- :boolean | |
:outputs: {} | |
- :name: ModifyNetworkInterfaceAttribute | |
:method: :modify_network_interface_attribute | |
:inputs: | |
NetworkInterfaceId: | |
- :string | |
- :required | |
Description: | |
- :structure: | |
Value: | |
- :string | |
SourceDestCheck: | |
- :structure: | |
Value: | |
- :boolean | |
SecurityGroupId: | |
- :list: | |
- :string | |
- :rename: groups | |
Attachment: | |
- :structure: | |
AttachmentId: | |
- :string | |
DeleteOnTermination: | |
- :boolean | |
:outputs: {} | |
- :name: ModifySnapshotAttribute | |
:method: :modify_snapshot_attribute | |
:inputs: | |
SnapshotId: | |
- :string | |
- :required | |
Attribute: | |
- :string | |
OperationType: | |
- :string | |
UserId: | |
- :list: | |
- :string | |
- :rename: UserIds | |
UserGroup: | |
- :list: | |
- :string | |
- :rename: GroupNames | |
CreateVolumePermission: | |
- :structure: | |
Add: | |
- :list: | |
- :structure: | |
UserId: | |
- :string | |
- :rename: UserId | |
Group: | |
- :string | |
- :rename: Group | |
Remove: | |
- :list: | |
- :structure: | |
UserId: | |
- :string | |
- :rename: UserId | |
Group: | |
- :string | |
- :rename: Group | |
:outputs: {} | |
- :name: ModifyVolumeAttribute | |
:method: :modify_volume_attribute | |
:inputs: | |
VolumeId: | |
- :string | |
- :required | |
AutoEnableIO: | |
- :boolean | |
:outputs: {} | |
- :name: ModifyVpcAttribute | |
:method: :modify_vpc_attribute | |
:inputs: | |
VpcId: | |
- :string | |
- :required | |
- :rename: VpcId | |
EnableDnsSupport: | |
- :structure: | |
Value: | |
- :boolean | |
EnableDnsHostnames: | |
- :structure: | |
Value: | |
- :boolean | |
:outputs: {} | |
- :name: MonitorInstances | |
:method: :monitor_instances | |
:inputs: | |
InstanceId: | |
- :list: | |
- :string | |
- :required | |
- :rename: InstanceIds | |
:outputs: | |
:children: | |
instancesSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :instances_set | |
:list: true | |
- :name: PurchaseReservedInstancesOffering | |
:method: :purchase_reserved_instances_offering | |
:inputs: | |
ReservedInstancesOfferingId: | |
- :string | |
- :required | |
InstanceCount: | |
- :integer | |
- :required | |
LimitPrice: | |
- :structure: | |
Amount: | |
- :double | |
CurrencyCode: | |
- :string | |
:outputs: {} | |
- :name: RebootInstances | |
:method: :reboot_instances | |
:inputs: | |
InstanceId: | |
- :list: | |
- :string | |
- :required | |
- :rename: InstanceIds | |
:outputs: {} | |
- :name: RegisterImage | |
:method: :register_image | |
:inputs: | |
ImageLocation: | |
- :string | |
Name: | |
- :string | |
Description: | |
- :string | |
Architecture: | |
- :string | |
KernelId: | |
- :string | |
RamdiskId: | |
- :string | |
RootDeviceName: | |
- :string | |
BlockDeviceMapping: | |
- :list: | |
- :structure: | |
VirtualName: | |
- :string | |
- :rename: VirtualName | |
DeviceName: | |
- :string | |
- :rename: DeviceName | |
Ebs: | |
- :structure: | |
SnapshotId: | |
- :string | |
VolumeSize: | |
- :integer | |
DeleteOnTermination: | |
- :boolean | |
VolumeType: | |
- :string | |
Iops: | |
- :integer | |
NoDevice: | |
- :string | |
- :rename: blockDeviceMappings | |
:outputs: {} | |
- :name: ReleaseAddress | |
:method: :release_address | |
:inputs: | |
PublicIp: | |
- :string | |
AllocationId: | |
- :string | |
:outputs: {} | |
- :name: ReplaceNetworkAclAssociation | |
:method: :replace_network_acl_association | |
:inputs: | |
AssociationId: | |
- :string | |
- :required | |
NetworkAclId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: ReplaceNetworkAclEntry | |
:method: :replace_network_acl_entry | |
:inputs: | |
NetworkAclId: | |
- :string | |
- :required | |
RuleNumber: | |
- :integer | |
- :required | |
Protocol: | |
- :string | |
- :required | |
RuleAction: | |
- :string | |
- :required | |
Egress: | |
- :boolean | |
- :required | |
CidrBlock: | |
- :string | |
- :required | |
Icmp: | |
- :structure: | |
Type: | |
- :integer | |
Code: | |
- :integer | |
- :rename: icmpTypeCode | |
PortRange: | |
- :structure: | |
From: | |
- :integer | |
To: | |
- :integer | |
:outputs: {} | |
- :name: ReplaceRoute | |
:method: :replace_route | |
:inputs: | |
RouteTableId: | |
- :string | |
- :required | |
DestinationCidrBlock: | |
- :string | |
- :required | |
GatewayId: | |
- :string | |
InstanceId: | |
- :string | |
NetworkInterfaceId: | |
- :string | |
:outputs: {} | |
- :name: ReplaceRouteTableAssociation | |
:method: :replace_route_table_association | |
:inputs: | |
AssociationId: | |
- :string | |
- :required | |
RouteTableId: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: ReportInstanceStatus | |
:method: :report_instance_status | |
:inputs: | |
InstanceId: | |
- :list: | |
- :string | |
- :rename: instances | |
Status: | |
- :string | |
StartTime: | |
- :timestamp | |
EndTime: | |
- :timestamp | |
ReasonCode: | |
- :list: | |
- :string | |
- :rename: reasonCodes | |
Description: | |
- :string | |
:outputs: {} | |
- :name: RequestSpotInstances | |
:method: :request_spot_instances | |
:inputs: | |
SpotPrice: | |
- :string | |
- :required | |
InstanceCount: | |
- :integer | |
Type: | |
- :string | |
ValidFrom: | |
- :timestamp | |
ValidUntil: | |
- :timestamp | |
LaunchGroup: | |
- :string | |
AvailabilityZoneGroup: | |
- :string | |
LaunchSpecification: | |
- :structure: | |
ImageId: | |
- :string | |
KeyName: | |
- :string | |
UserData: | |
- :string | |
AddressingType: | |
- :string | |
InstanceType: | |
- :string | |
Placement: | |
- :structure: | |
AvailabilityZone: | |
- :string | |
GroupName: | |
- :string | |
KernelId: | |
- :string | |
RamdiskId: | |
- :string | |
BlockDeviceMapping: | |
- :list: | |
- :structure: | |
VirtualName: | |
- :string | |
- :rename: VirtualName | |
DeviceName: | |
- :string | |
- :rename: DeviceName | |
Ebs: | |
- :structure: | |
SnapshotId: | |
- :string | |
VolumeSize: | |
- :integer | |
DeleteOnTermination: | |
- :boolean | |
VolumeType: | |
- :string | |
Iops: | |
- :integer | |
NoDevice: | |
- :string | |
- :rename: blockDeviceMappings | |
MonitoringEnabled: | |
- :boolean | |
SubnetId: | |
- :string | |
NetworkInterface: | |
- :list: | |
- :structure: | |
NetworkInterfaceId: | |
- :string | |
DeviceIndex: | |
- :integer | |
SubnetId: | |
- :string | |
Description: | |
- :string | |
PrivateIpAddress: | |
- :string | |
SecurityGroupId: | |
- :list: | |
- :string | |
- :rename: groups | |
DeleteOnTermination: | |
- :boolean | |
PrivateIpAddresses: | |
- :list: | |
- :structure: | |
PrivateIpAddress: | |
- :string | |
- :required | |
Primary: | |
- :boolean | |
- :rename: privateIpAddresses | |
SecondaryPrivateIpAddressCount: | |
- :integer | |
- :rename: networkInterfaces | |
IamInstanceProfile: | |
- :structure: | |
Arn: | |
- :string | |
Name: | |
- :string | |
EbsOptimized: | |
- :boolean | |
SecurityGroup: | |
- :list: | |
- :string | |
- :rename: SecurityGroups | |
SecurityGroupId: | |
- :list: | |
- :string | |
- :rename: SecurityGroupIds | |
:outputs: | |
:children: | |
spotInstanceRequestSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :spot_instance_request_set | |
:list: true | |
:children: | |
status: | |
:children: | |
updateTime: | |
:type: :time | |
validFrom: | |
:type: :time | |
validUntil: | |
:type: :time | |
launchSpecification: | |
:children: | |
groupSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :group_set | |
:list: true | |
blockDeviceMapping: | |
:ignore: true | |
:children: | |
item: | |
:rename: :block_device_mapping | |
:list: true | |
:children: | |
ebs: | |
:children: | |
volumeSize: | |
:type: :integer | |
deleteOnTermination: | |
:type: :boolean | |
iops: | |
:type: :integer | |
monitoringEnabled: | |
:type: :boolean | |
networkInterfaceSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :network_interface_set | |
:list: true | |
:children: | |
deviceIndex: | |
:type: :integer | |
SecurityGroupId: | |
:ignore: true | |
:children: | |
SecurityGroupId: | |
:rename: :security_group_id | |
:list: true | |
deleteOnTermination: | |
:type: :boolean | |
privateIpAddressesSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :private_ip_addresses_set | |
:list: true | |
:children: | |
primary: | |
:type: :boolean | |
secondaryPrivateIpAddressCount: | |
:type: :integer | |
ebsOptimized: | |
:type: :boolean | |
createTime: | |
:type: :time | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
- :name: ResetImageAttribute | |
:method: :reset_image_attribute | |
:inputs: | |
ImageId: | |
- :string | |
- :required | |
Attribute: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: ResetInstanceAttribute | |
:method: :reset_instance_attribute | |
:inputs: | |
InstanceId: | |
- :string | |
- :required | |
Attribute: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: ResetNetworkInterfaceAttribute | |
:method: :reset_network_interface_attribute | |
:inputs: | |
NetworkInterfaceId: | |
- :string | |
- :required | |
SourceDestCheck: | |
- :string | |
:outputs: {} | |
- :name: ResetSnapshotAttribute | |
:method: :reset_snapshot_attribute | |
:inputs: | |
SnapshotId: | |
- :string | |
- :required | |
Attribute: | |
- :string | |
- :required | |
:outputs: {} | |
- :name: RevokeSecurityGroupEgress | |
:method: :revoke_security_group_egress | |
:inputs: | |
GroupId: | |
- :string | |
- :required | |
SourceSecurityGroupName: | |
- :string | |
SourceSecurityGroupOwnerId: | |
- :string | |
IpProtocol: | |
- :string | |
FromPort: | |
- :integer | |
ToPort: | |
- :integer | |
CidrIp: | |
- :string | |
IpPermissions: | |
- :list: | |
- :structure: | |
IpProtocol: | |
- :string | |
- :rename: IpProtocol | |
FromPort: | |
- :integer | |
- :rename: FromPort | |
ToPort: | |
- :integer | |
- :rename: ToPort | |
Groups: | |
- :list: | |
- :structure: | |
UserId: | |
- :string | |
- :rename: UserId | |
GroupName: | |
- :string | |
- :rename: GroupName | |
GroupId: | |
- :string | |
- :rename: GroupId | |
- :rename: UserIdGroupPairs | |
IpRanges: | |
- :list: | |
- :structure: | |
CidrIp: | |
- :string | |
- :rename: CidrIp | |
- :rename: IpRanges | |
:outputs: {} | |
- :name: RevokeSecurityGroupIngress | |
:method: :revoke_security_group_ingress | |
:inputs: | |
GroupName: | |
- :string | |
GroupId: | |
- :string | |
SourceSecurityGroupName: | |
- :string | |
SourceSecurityGroupOwnerId: | |
- :string | |
IpProtocol: | |
- :string | |
FromPort: | |
- :integer | |
ToPort: | |
- :integer | |
CidrIp: | |
- :string | |
IpPermissions: | |
- :list: | |
- :structure: | |
IpProtocol: | |
- :string | |
- :rename: IpProtocol | |
FromPort: | |
- :integer | |
- :rename: FromPort | |
ToPort: | |
- :integer | |
- :rename: ToPort | |
Groups: | |
- :list: | |
- :structure: | |
UserId: | |
- :string | |
- :rename: UserId | |
GroupName: | |
- :string | |
- :rename: GroupName | |
GroupId: | |
- :string | |
- :rename: GroupId | |
- :rename: UserIdGroupPairs | |
IpRanges: | |
- :list: | |
- :structure: | |
CidrIp: | |
- :string | |
- :rename: CidrIp | |
- :rename: IpRanges | |
:outputs: {} | |
- :name: RunInstances | |
:method: :run_instances | |
:inputs: | |
ImageId: | |
- :string | |
- :required | |
MinCount: | |
- :integer | |
- :required | |
MaxCount: | |
- :integer | |
- :required | |
KeyName: | |
- :string | |
SecurityGroup: | |
- :list: | |
- :string | |
- :rename: SecurityGroups | |
SecurityGroupId: | |
- :list: | |
- :string | |
- :rename: SecurityGroupIds | |
UserData: | |
- :string | |
InstanceType: | |
- :string | |
Placement: | |
- :structure: | |
AvailabilityZone: | |
- :string | |
- :rename: AvailabilityZone | |
GroupName: | |
- :string | |
Tenancy: | |
- :string | |
KernelId: | |
- :string | |
RamdiskId: | |
- :string | |
BlockDeviceMapping: | |
- :list: | |
- :structure: | |
VirtualName: | |
- :string | |
- :rename: VirtualName | |
DeviceName: | |
- :string | |
- :rename: DeviceName | |
Ebs: | |
- :structure: | |
SnapshotId: | |
- :string | |
VolumeSize: | |
- :integer | |
DeleteOnTermination: | |
- :boolean | |
VolumeType: | |
- :string | |
Iops: | |
- :integer | |
NoDevice: | |
- :string | |
- :rename: BlockDeviceMappings | |
Monitoring: | |
- :structure: | |
Enabled: | |
- :boolean | |
- :required | |
SubnetId: | |
- :string | |
DisableApiTermination: | |
- :boolean | |
InstanceInitiatedShutdownBehavior: | |
- :string | |
License: | |
- :structure: | |
Pool: | |
- :string | |
PrivateIpAddress: | |
- :string | |
ClientToken: | |
- :string | |
AdditionalInfo: | |
- :string | |
NetworkInterface: | |
- :list: | |
- :structure: | |
NetworkInterfaceId: | |
- :string | |
DeviceIndex: | |
- :integer | |
SubnetId: | |
- :string | |
Description: | |
- :string | |
PrivateIpAddress: | |
- :string | |
SecurityGroupId: | |
- :list: | |
- :string | |
- :rename: groups | |
DeleteOnTermination: | |
- :boolean | |
PrivateIpAddressesSet: | |
- :list: | |
- :structure: | |
PrivateIpAddress: | |
- :string | |
- :required | |
Primary: | |
- :boolean | |
- :rename: privateIpAddresses | |
SecondaryPrivateIpAddressCount: | |
- :integer | |
- :rename: networkInterfaces | |
IamInstanceProfile: | |
- :structure: | |
Arn: | |
- :string | |
Name: | |
- :string | |
EbsOptimized: | |
- :boolean | |
:outputs: | |
:children: | |
groupSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :group_set | |
:list: true | |
instancesSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :instances_set | |
:list: true | |
:children: | |
instanceState: | |
:children: | |
code: | |
:type: :integer | |
amiLaunchIndex: | |
:type: :integer | |
productCodes: | |
:ignore: true | |
:children: | |
item: | |
:rename: :product_codes | |
:list: true | |
launchTime: | |
:type: :time | |
blockDeviceMapping: | |
:ignore: true | |
:children: | |
item: | |
:rename: :block_device_mapping | |
:list: true | |
:children: | |
ebs: | |
:children: | |
attachTime: | |
:type: :time | |
deleteOnTermination: | |
:type: :boolean | |
tagSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :tag_set | |
:list: true | |
groupSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :group_set | |
:list: true | |
sourceDestCheck: | |
:type: :boolean | |
networkInterfaceSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :network_interface_set | |
:list: true | |
:children: | |
sourceDestCheck: | |
:type: :boolean | |
groupSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :group_set | |
:list: true | |
attachment: | |
:children: | |
deviceIndex: | |
:type: :integer | |
attachTime: | |
:type: :time | |
deleteOnTermination: | |
:type: :boolean | |
privateIpAddressesSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :private_ip_addresses_set | |
:list: true | |
:children: | |
primary: | |
:type: :boolean | |
ebsOptimized: | |
:type: :boolean | |
- :name: StartInstances | |
:method: :start_instances | |
:inputs: | |
InstanceId: | |
- :list: | |
- :string | |
- :required | |
- :rename: InstanceIds | |
AdditionalInfo: | |
- :string | |
:outputs: | |
:children: | |
instancesSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :instances_set | |
:list: true | |
:children: | |
currentState: | |
:children: | |
code: | |
:type: :integer | |
previousState: | |
:children: | |
code: | |
:type: :integer | |
- :name: StopInstances | |
:method: :stop_instances | |
:inputs: | |
InstanceId: | |
- :list: | |
- :string | |
- :required | |
- :rename: InstanceIds | |
Force: | |
- :boolean | |
:outputs: | |
:children: | |
instancesSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :instances_set | |
:list: true | |
:children: | |
currentState: | |
:children: | |
code: | |
:type: :integer | |
previousState: | |
:children: | |
code: | |
:type: :integer | |
- :name: TerminateInstances | |
:method: :terminate_instances | |
:inputs: | |
InstanceId: | |
- :list: | |
- :string | |
- :required | |
- :rename: InstanceIds | |
:outputs: | |
:children: | |
instancesSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :instances_set | |
:list: true | |
:children: | |
currentState: | |
:children: | |
code: | |
:type: :integer | |
previousState: | |
:children: | |
code: | |
:type: :integer | |
- :name: UnassignPrivateIpAddresses | |
:method: :unassign_private_ip_addresses | |
:inputs: | |
NetworkInterfaceId: | |
- :string | |
- :required | |
PrivateIpAddress: | |
- :list: | |
- :string | |
- :required | |
- :rename: privateIpAddresses | |
:outputs: {} | |
- :name: UnmonitorInstances | |
:method: :unmonitor_instances | |
:inputs: | |
InstanceId: | |
- :list: | |
- :string | |
- :required | |
- :rename: InstanceIds | |
:outputs: | |
:children: | |
instancesSet: | |
:ignore: true | |
:children: | |
item: | |
:rename: :instances_set | |
:list: true |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Replace: /var/vcap/jobs/blobstore/packages/director/gem_home/gems/bosh_aws_cpi-1.5.0.pre.1657/lib/cloud/aws/instance_manager.rb | |
require "common/common" | |
module Bosh::AwsCloud | |
class InstanceManager | |
include Helpers | |
attr_reader :instance | |
attr_reader :instance_params | |
attr_reader :elbs | |
def initialize(region, registry, az_selector=nil) | |
@region = region | |
@registry = registry | |
@logger = Bosh::Clouds::Config.logger | |
@az_selector = az_selector | |
@instance_params = {count: 1} | |
end | |
def create(agent_id, stemcell_id, resource_pool, networks_spec, disk_locality, environment, options) | |
@instance_params[:image_id] = stemcell_id | |
@instance_params[:instance_type] = resource_pool["instance_type"] | |
set_user_data_parameter(networks_spec) | |
set_key_name_parameter(resource_pool["key_name"], options["aws"]["default_key_name"]) | |
set_security_groups_parameter(networks_spec, options["aws"]["default_security_groups"]) | |
set_vpc_parameters(networks_spec) | |
set_availability_zone_parameter( | |
(disk_locality || []).map { |volume_id| @region.volumes[volume_id].availability_zone.to_s }, | |
resource_pool["availability_zone"], | |
(@instance_params[:subnet].availability_zone_name if @instance_params[:subnet]) | |
) | |
resource_pool["use_spot"] ||= false | |
@logger.info("Creating new instance with: #{instance_params.inspect}") | |
if resource_pool["use_spot"] | |
security_group_ids = [] | |
@region.security_groups.each do |group| | |
security_group_ids << group.security_group_id if @instance_params[:security_groups].include?(group.name) | |
end | |
spot_request_spec = create_spot_request_spec(instance_params, security_group_ids, resource_pool["spot_bid_price"]) | |
@logger.info("Launching spot instance with: #{spot_request_spec.inspect}") | |
spot_instance_requests = @region.client.request_spot_instances(spot_request_spec) | |
@logger.info("Got spot instance requests: #{spot_instance_requests.inspect}") | |
Bosh::Common.retryable(sleep: instance_create_wait_time*2, tries: 20) do |tries, error| | |
@logger.info("Waiting for spot request instances...") | |
spot_instance_request_ids = spot_instance_requests[:spot_instance_request_set].map { |r| r[:spot_instance_request_id] } | |
response = @region.client.describe_spot_instance_requests(:spot_instance_request_ids => spot_instance_request_ids) | |
statuses = response[:spot_instance_request_set].map { |rr| rr[:state] } | |
if statuses.all? { |s| s == 'active' } | |
@logger.info("Spot request instances fulfilled: #{response.inspect}") | |
instance_id = response[:spot_instance_request_set].map { |rr| rr[:instance_id] }[0] | |
@instance = @region.instances[instance_id] | |
end | |
end | |
else | |
# Retry the create instance operation a couple of times if we are told that the IP | |
# address is in use - it can happen when the director recreates a VM and AWS | |
# is too slow to update its state when we have released the IP address and want to | |
# realocate it again. | |
errors = [AWS::EC2::Errors::InvalidIPAddress::InUse] | |
Bosh::Common.retryable(sleep: instance_create_wait_time, tries: 10, on: errors) do |tries, error| | |
@logger.info("Launching on demand instance...") | |
@logger.warn("IP address was in use: #{error}") if tries > 0 | |
@instance = @region.instances.create(instance_params) | |
end | |
end | |
# We need to wait here for the instance to be running, as if we are going to | |
# attach to a load balancer, the instance must be running. | |
# If we time out, it is because the instance never gets from state running to started, | |
# so we signal the director that it is ok to retry the operation. At the moment this | |
# forever (until the operation is cancelled by the user). | |
begin | |
ResourceWait.for_instance(instance: instance, state: :running) | |
rescue Bosh::Common::RetryCountExceeded => e | |
@logger.warn("timed out waiting for #{instance.id} to be running") | |
raise Bosh::Clouds::VMCreationFailed.new(true) | |
end | |
@elbs = resource_pool['elbs'] | |
attach_to_load_balancers if elbs | |
instance | |
end | |
def create_spot_request_spec(instance_params, security_group_ids, spot_price) { | |
spot_price: "#{spot_price}", | |
instance_count: 1, | |
launch_specification: { | |
image_id: instance_params[:image_id], | |
key_name: instance_params[:key_name], | |
instance_type: instance_params[:instance_type], | |
user_data: Base64.encode64(instance_params[:user_data]), | |
placement: { | |
availability_zone: instance_params[:availability_zone] | |
}, | |
network_interfaces: [ | |
{ | |
subnet_id: instance_params[:subnet].subnet_id, | |
groups: security_group_ids, | |
device_index: 0, | |
private_ip_address: instance_params[:private_ip_address] | |
} | |
] | |
} | |
} | |
end | |
def terminate(instance_id, fast=false) | |
@instance = @region.instances[instance_id] | |
remove_from_load_balancers | |
instance.terminate | |
@logger.info("Deleting instance settings for '#{instance.id}'") | |
@registry.delete_settings(instance.id) | |
if fast | |
TagManager.tag(instance, "Name", "to be deleted") | |
@logger.info("Instance #{instance_id} marked to deletion") | |
return | |
end | |
begin | |
@logger.info("Deleting instance '#{instance.id}'") | |
ResourceWait.for_instance(instance: instance, state: :terminated) | |
rescue AWS::EC2::Errors::InvalidInstanceID::NotFound | |
# It's OK, just means that instance has already been deleted | |
end | |
end | |
# Soft reboots EC2 instance | |
# @param [String] instance_id EC2 instance id | |
def reboot(instance_id) | |
instance = @region.instances[instance_id] | |
# There is no trackable status change for the instance being | |
# rebooted, so it's up to CPI client to keep track of agent | |
# being ready after reboot. | |
# Due to this, we can't deregister the instance from any load | |
# balancers it might be attached to, and reattach once the | |
# reboot is complete, so we just have to let the load balancers | |
# take the instance out of rotation, and put it back in once it | |
# is back up again. | |
instance.reboot | |
end | |
def attach_to_load_balancers | |
elb = AWS::ELB.new | |
elbs.each do |load_balancer| | |
lb = elb.load_balancers[load_balancer] | |
lb.instances.register(instance) | |
end | |
end | |
# Determines if the instance exists. | |
# @param [String] instance_id EC2 instance id | |
def has_instance?(instance_id) | |
instance = @region.instances[instance_id] | |
instance.exists? && instance.status != :terminated | |
end | |
def remove_from_load_balancers | |
elb = AWS::ELB.new | |
elb.load_balancers.each do |load_balancer| | |
begin | |
load_balancer.instances.deregister(instance) | |
rescue AWS::ELB::Errors::InvalidInstance | |
# ignore this, as it just means it wasn't registered | |
end | |
end | |
end | |
def set_key_name_parameter(resource_pool_key_name, default_aws_key_name) | |
key_name = resource_pool_key_name || default_aws_key_name | |
instance_params[:key_name] = key_name unless key_name.nil? | |
end | |
def set_security_groups_parameter(networks_spec, default_security_groups) | |
security_group_names = extract_security_group_names(networks_spec) | |
if security_group_names.empty? | |
instance_params[:security_groups] = default_security_groups | |
else | |
instance_params[:security_groups] = security_group_names | |
end | |
end | |
def set_vpc_parameters(network_spec) | |
manual_network_spec = network_spec.values.select { |spec| ["manual", nil].include? spec["type"] }.first | |
if manual_network_spec | |
instance_params[:subnet] = @region.subnets[manual_network_spec["cloud_properties"]["subnet"]] | |
instance_params[:private_ip_address] = manual_network_spec["ip"] | |
end | |
end | |
def set_availability_zone_parameter(volume_zones, resource_pool_zone, subnet_zone) | |
availability_zone = @az_selector.common_availability_zone(volume_zones, resource_pool_zone, subnet_zone) | |
instance_params[:availability_zone] = availability_zone if availability_zone | |
end | |
def set_user_data_parameter(networks_spec) | |
user_data = {registry: {endpoint: @registry.endpoint}} | |
spec_with_dns = networks_spec.values.select { |spec| spec.has_key? "dns" }.first | |
user_data[:dns] = {nameserver: spec_with_dns["dns"]} if spec_with_dns | |
@instance_params[:user_data] = Yajl::Encoder.encode(user_data) | |
end | |
private | |
def instance_create_wait_time; 30; end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment