troposphere.openstack package

Submodules

troposphere.openstack.heat module

Openstack Heat

Due to the strange nature of the OpenStack compatability layer, some values that should be integers fail to validate and need to be represented as strings. For this reason, we duplicate the AWS::AutoScaling::AutoScalingGroup and change these types.

class troposphere.openstack.heat.AWSAutoScalingGroup(title: str | None, template: Template | None = None, validation: bool = True, **kwargs: Any)[source]

Bases: AWSObject

Fix issues with OpenStack compatability layer.

Due to the strange nature of the OpenStack compatability layer, some values that should be integers fail to validate and need to be represented as strings. For this reason, we duplicate the AWS::AutoScaling::AutoScalingGroup and change these types.

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'AvailabilityZones': (<class 'list'>, True), 'Cooldown': (<function integer>, False), 'DesiredCapacity': (<class 'str'>, False), 'HealthCheckGracePeriod': (<function integer>, False), 'HealthCheckType': (<class 'str'>, False), 'LaunchConfigurationName': (<class 'str'>, True), 'LoadBalancerNames': (<class 'list'>, False), 'MaxSize': (<class 'str'>, True), 'MinSize': (<class 'str'>, True), 'Tags': (<class 'list'>, False), 'VPCZoneIdentifier': (<class 'list'>, False)}
resource_type: str | None = 'AWS::AutoScaling::AutoScalingGroup'

troposphere.openstack.neutron module

class troposphere.openstack.neutron.AddressPair(title: str | None = None, **kwargs: Any)[source]

Bases: AWSProperty

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'ip_address': (<class 'str'>, True), 'mac_address': (<class 'str'>, False)}
class troposphere.openstack.neutron.Firewall(title: str | None, template: Template | None = None, validation: bool = True, **kwargs: Any)[source]

Bases: AWSObject

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'admin_state_up': (<function boolean>, False), 'description': (<class 'str'>, False), 'firewall_policy_id': (<class 'str'>, True), 'name': (<class 'str'>, False)}
resource_type: str | None = 'OS::Neutron::Firewall'
class troposphere.openstack.neutron.FirewallPolicy(title: str | None, template: Template | None = None, validation: bool = True, **kwargs: Any)[source]

Bases: AWSObject

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'audited': (<function boolean>, False), 'description': (<class 'str'>, False), 'firewall_rules': (<class 'list'>, True), 'name': (<class 'str'>, False), 'shared': (<function boolean>, False)}
resource_type: str | None = 'OS::Neutron::FirewallPolicy'
class troposphere.openstack.neutron.FirewallRule(title: str | None, template: Template | None = None, validation: bool = True, **kwargs: Any)[source]

Bases: AWSObject

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'action': (<class 'str'>, False), 'description': (<class 'str'>, False), 'destination_ip_address': (<class 'str'>, False), 'destination_port': (<function network_port>, False), 'enabled': (<function boolean>, False), 'ip_version': (<class 'str'>, False), 'name': (<class 'str'>, False), 'protocol': (<class 'str'>, False), 'shared': (<function boolean>, False), 'source_ip_address': (<class 'str'>, False), 'source_port': (<function network_port>, False)}
resource_type: str | None = 'OS::Neutron::FirewallRule'
validate()[source]
class troposphere.openstack.neutron.FixedIP(title: str | None = None, **kwargs: Any)[source]

Bases: AWSProperty

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'ip_address': (<class 'str'>, False), 'subnet_id': (<class 'str'>, False)}
class troposphere.openstack.neutron.FloatingIP(title: str | None, template: Template | None = None, validation: bool = True, **kwargs: Any)[source]

Bases: AWSObject

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'fixed_ip_address': (<class 'str'>, False), 'floating_network_id': (<class 'str'>, True), 'port_id': (<class 'str'>, False), 'value_specs': (<class 'dict'>, False)}
resource_type: str | None = 'OS::Neutron::FloatingIP'
class troposphere.openstack.neutron.FloatingIPAssociation(title: str | None, template: Template | None = None, validation: bool = True, **kwargs: Any)[source]

Bases: AWSObject

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'fixed_ip_address': (<class 'str'>, False), 'floatingip_id': (<class 'str'>, True), 'port_id': (<class 'str'>, False)}
resource_type: str | None = 'OS::Neutron::FloatingIPAssociation'
class troposphere.openstack.neutron.HealthMonitor(title: str | None, template: Template | None = None, validation: bool = True, **kwargs: Any)[source]

Bases: AWSObject

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'admin_state_up': (<function boolean>, False), 'delay': (<function positive_integer>, True), 'expected_codes': (<class 'str'>, False), 'http_method': (<class 'str'>, False), 'max_retries': (<function integer>, True), 'timeout': (<function integer>, True), 'type': (<class 'str'>, True), 'url_path': (<class 'str'>, False)}
resource_type: str | None = 'OS::Neutron::HealthMonitor'
validate()[source]
class troposphere.openstack.neutron.LoadBalancer(title: str | None, template: Template | None = None, validation: bool = True, **kwargs: Any)[source]

Bases: AWSObject

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'members': (<class 'list'>, False), 'pool_id': (<class 'troposphere.openstack.neutron.Pool'>, True), 'protocol_port': (<function network_port>, True)}
resource_type: str | None = 'OS::Neutron::LoadBalancer'
class troposphere.openstack.neutron.Net(title: str | None, template: Template | None = None, validation: bool = True, **kwargs: Any)[source]

Bases: AWSObject

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'admin_state_up': (<function boolean>, False), 'name': (<class 'str'>, False), 'shared': (<function boolean>, False), 'tenant_id': (<class 'str'>, False), 'value_specs': (<class 'dict'>, False)}
resource_type: str | None = 'OS::Neutron::Net'
class troposphere.openstack.neutron.Pool(title: str | None, template: Template | None = None, validation: bool = True, **kwargs: Any)[source]

Bases: AWSObject

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'admin_state_up': (<function boolean>, False), 'description': (<class 'str'>, False), 'lb_method': (<class 'str'>, True), 'monitors': (<class 'list'>, False), 'name': (<class 'str'>, False), 'protocol': (<class 'str'>, True), 'subnet_id': (<class 'str'>, True), 'vip': (<class 'troposphere.openstack.neutron.VIP'>, False)}
resource_type: str | None = 'OS::Neutron::Pool'
validate()[source]
class troposphere.openstack.neutron.PoolMember(title: str | None, template: Template | None = None, validation: bool = True, **kwargs: Any)[source]

Bases: AWSObject

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'address': (<class 'str'>, True), 'admin_state_up': (<function boolean>, False), 'pool_id': (<class 'troposphere.openstack.neutron.Pool'>, True), 'protocol_port': (<function network_port>, True), 'weight': (<function integer_range.<locals>.integer_range_checker>, False)}
resource_type: str | None = 'OS::Neutron::PoolMember'
class troposphere.openstack.neutron.Port(title: str | None, template: Template | None = None, validation: bool = True, **kwargs: Any)[source]

Bases: AWSObject

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'admin_state_up': (<function boolean>, False), 'allowed_address_pairs': (<class 'list'>, False), 'device_id': (<class 'str'>, False), 'fixed_ips': (<class 'list'>, False), 'mac_address': (<class 'str'>, False), 'name': (<class 'str'>, False), 'network_id': (<class 'str'>, True), 'security_groups': (<class 'list'>, False), 'value_specs': (<class 'dict'>, False)}
resource_type: str | None = 'OS::Neutron::Port'
class troposphere.openstack.neutron.SecurityGroup(title: str | None, template: Template | None = None, validation: bool = True, **kwargs: Any)[source]

Bases: AWSObject

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'description': (<class 'str'>, True), 'name': (<class 'str'>, False), 'rules': (<class 'list'>, False)}
resource_type: str | None = 'OS::Neutron::SecurityGroup'
class troposphere.openstack.neutron.SecurityGroupRule(title: str | None = None, **kwargs: Any)[source]

Bases: AWSProperty

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'direction': (<class 'str'>, False), 'ethertype': (<class 'str'>, False), 'port_range_max': (<function network_port>, False), 'port_range_min': (<function network_port>, False), 'protocol': (<class 'str'>, False), 'remote_group_id': (<class 'str'>, False), 'remote_ip_prefix': (<class 'str'>, False), 'remote_mode': (<class 'str'>, False)}
validate()[source]
class troposphere.openstack.neutron.SessionPersistence(title: str | None = None, **kwargs: Any)[source]

Bases: AWSProperty

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'cookie_name': (<class 'str'>, False), 'type': (<class 'str'>, False)}
validate()[source]
class troposphere.openstack.neutron.VIP(title: str | None = None, **kwargs: Any)[source]

Bases: AWSProperty

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'address': (<class 'str'>, False), 'admin_state_up': (<function boolean>, False), 'connection_limit': (<function integer>, True), 'description': (<class 'str'>, False), 'name': (<class 'str'>, False), 'protocol_port': (<function network_port>, True), 'session_persistence': (<class 'troposphere.openstack.neutron.SessionPersistence'>, False)}

troposphere.openstack.nova module

class troposphere.openstack.nova.BlockDeviceMapping(title: str | None = None, **kwargs: Any)[source]

Bases: AWSProperty

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'delete_on_termination': (<function boolean>, False), 'device_name': (<class 'str'>, True), 'snapshot_id': (<class 'str'>, False), 'volume_id': (<class 'str'>, False), 'volume_size': (<function integer>, False)}
class troposphere.openstack.nova.BlockDeviceMappingV2(title: str | None = None, **kwargs: Any)[source]

Bases: AWSProperty

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'boot_index': (<function integer>, False), 'delete_on_termination': (<function boolean>, False), 'device_name': (<class 'str'>, False), 'device_type': (<class 'str'>, False), 'disk_bus': (<class 'str'>, False), 'ephemeral_format': (<class 'str'>, False), 'ephemeral_size': (<function integer>, False), 'image_id': (<class 'str'>, False), 'snapshot_id': (<class 'str'>, False), 'swap_size': (<function integer>, False), 'volume_id': (<class 'str'>, False), 'volume_size': (<function integer>, False)}
validate()[source]
class troposphere.openstack.nova.FloatingIP(title: str | None, template: Template | None = None, validation: bool = True, **kwargs: Any)[source]

Bases: AWSObject

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'pool': (<class 'str'>, False)}
resource_type: str | None = 'OS::Nova::FloatingIP'
class troposphere.openstack.nova.FloatingIPAssociation(title: str | None, template: Template | None = None, validation: bool = True, **kwargs: Any)[source]

Bases: AWSObject

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'floating_ip': (<class 'str'>, True), 'server_ip': (<class 'str'>, True)}
resource_type: str | None = 'OS::Nova::FloatingIPAssociation'
class troposphere.openstack.nova.KeyPair(title: str | None, template: Template | None = None, validation: bool = True, **kwargs: Any)[source]

Bases: AWSObject

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'name': (<class 'str'>, True), 'public_key': (<class 'str'>, False), 'save_private_key': (<function boolean>, False)}
resource_type: str | None = 'OS::Nova::KeyPair'
class troposphere.openstack.nova.Network(title: str | None = None, **kwargs: Any)[source]

Bases: AWSProperty

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'fixed_ip': (<class 'str'>, False), 'network': (<class 'str'>, False), 'port': (<function network_port>, False)}
class troposphere.openstack.nova.Server(title: str | None, template: Template | None = None, validation: bool = True, **kwargs: Any)[source]

Bases: AWSObject

props: ClassVar[Dict[str, Tuple[Tuple[type, ...] | type | Callable[[Any], Any], bool]]] = {'admin_pass': (<class 'str'>, False), 'admin_user': (<class 'str'>, False), 'availability_zone': (<class 'str'>, False), 'block_device_mapping': (<class 'list'>, False), 'block_device_mapping_v2': (<class 'list'>, False), 'config_drive': (<class 'str'>, False), 'diskConfig': (<class 'str'>, False), 'flavor': (<class 'str'>, False), 'flavor_update_policy': (<class 'str'>, False), 'image': (<class 'str'>, True), 'image_update_policy': (<class 'str'>, False), 'key_name': (<class 'str'>, False), 'metadata': (<class 'dict'>, False), 'name': (<class 'str'>, False), 'networks': (<class 'list'>, True), 'personality': (<class 'dict'>, False), 'reservation_id': (<class 'str'>, False), 'scheduler_hints': (<class 'dict'>, False), 'security_groups': (<class 'list'>, False), 'software_config_transport': (<class 'str'>, False), 'user_data': (<class 'str'>, False), 'user_data_format': (<class 'str'>, False)}
resource_type: str | None = 'OS::Nova::Server'
validate()[source]

Module contents

OpenStack

The package to support OpenStack templates using troposphere.