Current section

Files

Jump to
nextroll_erlcloud include erlcloud_ec2.hrl
Raw

include/erlcloud_ec2.hrl

-ifndef(erlcloud_ec2_hrl).
-define(erlcloud_ec2_hrl, 0).
-include("erlcloud.hrl").
-type(ec2_shutdown_behavior() :: stop | terminate | undefined).
-type(ec2_volume_size() :: 1..1024).
-record(ec2_block_device_mapping, {
device_name::string(),
virtual_name::string(),
snapshot_id::string(),
volume_size::ec2_volume_size(),
delete_on_termination::boolean(),
encrypted::boolean()
}).
-type(ec2_block_device_mapping() :: #ec2_block_device_mapping{}).
%% Network interface (used by launch specification)
-record(ec2_net_if, {
device_index :: string(),
subnet_id :: string(),
security_group=[] :: [string()],
private_ip=[] :: [string()],
associate_public_ip :: undefined | boolean()
}).
-record(ec2_instance_spec, {
image_id::string(),
min_count=1::pos_integer(),
max_count=1::pos_integer(),
key_name::string(),
group_set=["default"]::[string()],
user_data::undefined|binary(),
instance_type::string(),
availability_zone::string(),
placement_group::string(),
kernel_id::string(),
ramdisk_id::string(),
block_device_mapping=[]::[ec2_block_device_mapping()],
monitoring_enabled=false::boolean(),
subnet_id::string(),
disable_api_termination=false::boolean(),
instance_initiated_shutdown_behavior::ec2_shutdown_behavior(),
net_if=[] :: [#ec2_net_if{}],
ebs_optimized = false :: boolean(),
iam_instance_profile_name = undefined :: string(),
spot_price::string(),
weighted_capacity::number()
}).
-record(ec2_image_spec, {
image_location::string(),
name::string(),
description::string(),
architecture::string(),
kernel_id::string(),
ramdisk_id::string(),
root_device_name::string(),
block_device_mapping=[]::[ec2_block_device_mapping()]
}).
-record(ec2_spot_instance_request, {
spot_price::string(),
instance_count=1::pos_integer(),
type=one_time::one_time|persistent,
valid_from::datetime(),
valid_until::datetime(),
launch_group::string(),
availability_zone_group::string(),
launch_specification::#ec2_instance_spec{}
}).
-record(spot_fleet_request_config_spec, {
allocation_strategy::undefined|lowest_price|diversified,
client_token::string(),
excess_capacity_termination_policy::no_termination|default,
iam_fleet_role::string(),
launch_specification=[]::[#ec2_instance_spec{}],
spot_price::string(),
target_capacity::pos_integer(),
terminate_instances_with_expiration::true|false,
valid_from::datetime(),
valid_until::datetime()
}).
-record(ec2_spot_fleet_request, {
spot_fleet_request_config::#spot_fleet_request_config_spec{}
}).
-record(ec2_ingress_spec, {
ip_protocol::tcp|udp|icmp,
from_port::-1 | 0..65535,
to_port::-1 | 0..65535,
source_security_group_owner_id::string(),
source_security_group_name::string(),
cidr_ip::string()
}).
-record(vpc_ingress_spec, {
ip_protocol::tcp|udp|icmp,
from_port::-1 | 0..65535,
to_port::-1 | 0..65535,
user_id::undefined|[string()],
group_name::undefined|[string()],
group_id::undefined|[string()],
cidr_ip::undefined|[string()]
}).
-record(vpc_egress_spec, {
ip_protocol::tcp|udp|icmp,
from_port::-1 | 0..65535,
to_port::-1 | 0..65535,
user_id::[string()],
group_name::[string()],
group_id::[string()],
cidr_ip::[string()]
}).
-record(vpc_xgress_internal_spec, {
ip_protocol::tcp|udp|icmp,
from_port::-1 | 0..65535,
to_port::-1 | 0..65535,
user_id::undefined|[string()],
group_name::undefined|[string()],
group_id::undefined|[string()],
cidr_ip::undefined|[string()]
}).
-record(ec2_network_acl_spec, {
network_acl_id::string(),
rule_number::integer(),
protocol::integer(),
rule_action::allow|deny,
egress=false::boolean(),
cidr_block::string(),
icmp_code::integer(),
icmp_type::integer(),
port_range_from::integer(),
port_range_to::integer()
}).
-type(ec2_image_spec() :: #ec2_image_spec{}).
-type(ec2_instance_spec() :: #ec2_instance_spec{}).
-type(ec2_ingress_spec() :: #ec2_ingress_spec{}).
-type(ec2_spot_instance_request() :: #ec2_spot_instance_request{}).
-type(ec2_spot_fleet_request() :: #ec2_spot_fleet_request{}).
-type(vpc_ingress_spec() :: #vpc_ingress_spec{}).
-type(vpc_egress_spec() :: #vpc_egress_spec{}).
-type(ec2_network_acl_spec() :: #ec2_network_acl_spec{}).
-record(ec2_tag, {
resource_id :: string(),
resource_type :: string(),
key :: string(),
value :: string()
}).
-endif.