heat_template_version: 2015-04-30

parameters:
  ControlPlaneIp:
    default: ''
    type: string
  ControlPlaneSubnetCidr: # Override this via parameter_defaults
    default: '24'
    description: The subnet CIDR of the control plane network.
    type: string
  ExternalIp:
    default: ''
    type: string
  ExternalIpSubnet:
    default: ''
    type: string
  ExternalIpUri:
    default: ''
    type: string
    description: IP address with brackets in case of IPv6
  InternalApiIp:
    default: ''
    type: string
  InternalApiIpSubnet:
    default: ''
    type: string
  InternalApiIpUri:
    default: ''
    type: string
    description: IP address with brackets in case of IPv6
  StorageIp:
    default: ''
    type: string
  StorageIpSubnet:
    default: ''
    type: string
  StorageIpUri:
    default: ''
    type: string
    description: IP address with brackets in case of IPv6
  StorageMgmtIp:
    default: ''
    type: string
  StorageMgmtIpSubnet:
    default: ''
    type: string
  StorageMgmtIpUri:
    default: ''
    type: string
    description: IP address with brackets in case of IPv6
  TenantIp:
    default: ''
    type: string
  TenantIpSubnet:
    default: ''
    type: string
  TenantIpUri:
    default: ''
    type: string
    description: IP address with brackets in case of IPv6
  ManagementIp:
    default: ''
    type: string
  ManagementIpSubnet:
    default: ''
    type: string
  ManagementIpUri:
    default: ''
    type: string
    description: IP address with brackets in case of IPv6

outputs:
  net_ip_map:
    description: >
      A Hash containing a mapping of network names to assigned IPs
      for a specific machine.
    value:
      ctlplane: {get_param: ControlPlaneIp}
      external: {get_param: ExternalIp}
      internal_api: {get_param: InternalApiIp}
      storage: {get_param: StorageIp}
      storage_mgmt: {get_param: StorageMgmtIp}
      tenant: {get_param: TenantIp}
      management: {get_param: ManagementIp}
      ctlplane_subnet:
        list_join:
          - ''
          - - {get_param: ControlPlaneIp}
            - '/'
            - {get_param: ControlPlaneSubnetCidr}
      external_subnet: {get_param: ExternalIpSubnet}
      internal_api_subnet: {get_param: InternalApiIpSubnet}
      storage_subnet: {get_param: StorageIpSubnet}
      storage_mgmt_subnet: {get_param: StorageMgmtIpSubnet}
      tenant_subnet: {get_param: TenantIpSubnet}
      management_subnet: {get_param: ManagementIpSubnet}
      ctlplane_uri: {get_param: ControlPlaneIp}
      external_uri: {get_param: ExternalIpUri}
      internal_api_uri: {get_param: InternalApiIpUri}
      storage_uri: {get_param: StorageIpUri}
      storage_mgmt_uri: {get_param: StorageMgmtIpUri}
      tenant_uri: {get_param: TenantIpUri}
      management_uri: {get_param: ManagementIpUri}
