Merge "Remove calls to ::mysql from the manifests"
[apex-tripleo-heat-templates.git] / network / endpoints / endpoint_map.yaml
index f7f7dfb..1bd35a7 100644 (file)
-heat_template_version: 2015-04-30
-
-description: >
-  A Map of OpenStack Endpoints
+### DO NOT MODIFY THIS FILE
+### This file is automatically generated from endpoint_data.yaml
+### by the script build_endpoint_map.py
 
+heat_template_version: '2015-04-30'
+description: A map of OpenStack endpoints. Since the endpoints are URLs,
+  we need to have brackets around IPv6 IP addresses. The inputs to these
+  parameters come from net_ip_uri_map, which will include these brackets
+  in IPv6 addresses.
 parameters:
-  CeilometerApiVirtualIP:
-    type: string
-    default: ''
-  CinderApiVirtualIP:
-    type: string
-    default: ''
-  GlanceApiVirtualIP:
-    type: string
-    default: ''
-  GlanceRegistryVirtualIP:
-    type: string
-    default: ''
-  HeatApiVirtualIP:
-    type: string
-    default: ''
-  KeystoneAdminApiVirtualIP:
-    type: string
-    default: ''
-  KeystonePublicApiVirtualIP:
-    type: string
-    default: ''
-  MysqlVirtualIP:
-    type: string
-    default: ''
-  NeutronApiVirtualIP:
-    type: string
-    default: ''
-  NovaApiVirtualIP:
-    type: string
-    default: ''
-  PublicVirtualIP:
-    type: string
-    default: ''
-  SwiftProxyVirtualIP:
-    type: string
-    default: ''
-  SaharaApiVirtualIP:
-    type: string
-    default: ''
+  AodhApiVirtualIP: {type: string, default: ''}
+  CeilometerApiVirtualIP: {type: string, default: ''}
+  CinderApiVirtualIP: {type: string, default: ''}
+  GlanceApiVirtualIP: {type: string, default: ''}
+  GlanceRegistryVirtualIP: {type: string, default: ''}
+  GnocchiApiVirtualIP: {type: string, default: ''}
+  HeatApiVirtualIP: {type: string, default: ''}
+  KeystoneAdminApiVirtualIP: {type: string, default: ''}
+  KeystonePublicApiVirtualIP: {type: string, default: ''}
+  MysqlVirtualIP: {type: string, default: ''}
+  NeutronApiVirtualIP: {type: string, default: ''}
+  NovaApiVirtualIP: {type: string, default: ''}
+  PublicVirtualIP: {type: string, default: ''}
+  SaharaApiVirtualIP: {type: string, default: ''}
+  SwiftProxyVirtualIP: {type: string, default: ''}
   EndpointMap:
     type: json
     default:
-      CeilometerAdmin: {protocol: 'http', port: '8777', host: 'IP_ADDRESS'}
-      CeilometerInternal: {protocol: 'http', port: '8777', host: 'IP_ADDRESS'}
-      CeilometerPublic: {protocol: 'http', port: '8777', host: 'IP_ADDRESS'}
-      CinderAdmin: {protocol: 'http', port: '8776', host: 'IP_ADDRESS'}
-      CinderInternal: {protocol: 'http', port: '8776', host: 'IP_ADDRESS'}
-      CinderPublic: {protocol: 'http', port: '8776', host: 'IP_ADDRESS'}
-      GlanceAdmin: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
-      GlanceInternal: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
-      GlancePublic: {protocol: 'http', port: '9292', host: 'IP_ADDRESS'}
-      GlanceRegistryAdmin: {protocol: 'http', port: '9191', host: 'IP_ADDRESS'}
-      GlanceRegistryInternal: {protocol: 'http', port: '9191', host: 'IP_ADDRESS'}
-      GlanceRegistryPublic: {protocol: 'http', port: '9191', host: 'IP_ADDRESS'}
-      HeatAdmin: {protocol: 'http', port: '8004', host: 'IP_ADDRESS'}
-      HeatInternal: {protocol: 'http', port: '8004', host: 'IP_ADDRESS'}
-      HeatPublic: {protocol: 'http', port: '8004', host: 'IP_ADDRESS'}
-      HorizonPublic: {protocol: 'http', port: '80', host: 'IP_ADDRESS'}
-      KeystoneAdmin: {protocol: 'http', port: '35357', host: 'IP_ADDRESS'}
-      KeystoneInternal: {protocol: 'http', port: '5000', host: 'IP_ADDRESS'}
-      KeystonePublic: {protocol: 'http', port: '5000', host: 'IP_ADDRESS'}
-      NeutronAdmin: {protocol: 'http', port: '9696', host: 'IP_ADDRESS'}
-      NeutronInternal: {protocol: 'http', port: '9696', host: 'IP_ADDRESS'}
-      NeutronPublic: {protocol: 'http', port: '9696', host: 'IP_ADDRESS'}
-      NovaAdmin: {protocol: 'http', port: '8774', host: 'IP_ADDRESS'}
-      NovaInternal: {protocol: 'http', port: '8774', host: 'IP_ADDRESS'}
-      NovaPublic: {protocol: 'http', port: '8774', host: 'IP_ADDRESS'}
-      NovaEC2Admin: {protocol: 'http', port: '8773', host: 'IP_ADDRESS'}
-      NovaEC2Internal: {protocol: 'http', port: '8773', host: 'IP_ADDRESS'}
-      NovaEC2Public: {protocol: 'http', port: '8773', host: 'IP_ADDRESS'}
-      NovaVNCProxyAdmin: {protocol: 'http', port: '6080', host: 'IP_ADDRESS'}
-      NovaVNCProxyInternal: {protocol: 'http', port: '6080', host: 'IP_ADDRESS'}
-      NovaVNCProxyPublic: {protocol: 'http', port: '6080', host: 'IP_ADDRESS'}
-      SwiftAdmin: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
-      SwiftInternal: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
-      SwiftPublic: {protocol: 'http', port: '8080', host: 'IP_ADDRESS'}
-      SaharaAdmin: {protocol: 'http', port: '8386', host: 'IP_ADDRESS'}
-      SaharaInternal: {protocol: 'http', port: '8386', host: 'IP_ADDRESS'}
-      SaharaPublic: {protocol: 'http', port: '8386', host: 'IP_ADDRESS'}
+      AodhAdmin: {protocol: http, port: '8042', host: IP_ADDRESS}
+      AodhInternal: {protocol: http, port: '8042', host: IP_ADDRESS}
+      AodhPublic: {protocol: http, port: '8042', host: IP_ADDRESS}
+      CeilometerAdmin: {protocol: http, port: '8777', host: IP_ADDRESS}
+      CeilometerInternal: {protocol: http, port: '8777', host: IP_ADDRESS}
+      CeilometerPublic: {protocol: http, port: '8777', host: IP_ADDRESS}
+      CinderAdmin: {protocol: http, port: '8776', host: IP_ADDRESS}
+      CinderInternal: {protocol: http, port: '8776', host: IP_ADDRESS}
+      CinderPublic: {protocol: http, port: '8776', host: IP_ADDRESS}
+      GlanceAdmin: {protocol: http, port: '9292', host: IP_ADDRESS}
+      GlanceInternal: {protocol: http, port: '9292', host: IP_ADDRESS}
+      GlancePublic: {protocol: http, port: '9292', host: IP_ADDRESS}
+      GlanceRegistryInternal: {protocol: http, port: '9191', host: IP_ADDRESS}
+      GnocchiAdmin: {protocol: http, port: '8041', host: IP_ADDRESS}
+      GnocchiInternal: {protocol: http, port: '8041', host: IP_ADDRESS}
+      GnocchiPublic: {protocol: http, port: '8041', host: IP_ADDRESS}
+      HeatAdmin: {protocol: http, port: '8004', host: IP_ADDRESS}
+      HeatInternal: {protocol: http, port: '8004', host: IP_ADDRESS}
+      HeatPublic: {protocol: http, port: '8004', host: IP_ADDRESS}
+      HorizonPublic: {protocol: http, port: '80', host: IP_ADDRESS}
+      KeystoneAdmin: {protocol: http, port: '35357', host: IP_ADDRESS}
+      KeystoneInternal: {protocol: http, port: '5000', host: IP_ADDRESS}
+      KeystonePublic: {protocol: http, port: '5000', host: IP_ADDRESS}
+      NeutronAdmin: {protocol: http, port: '9696', host: IP_ADDRESS}
+      NeutronInternal: {protocol: http, port: '9696', host: IP_ADDRESS}
+      NeutronPublic: {protocol: http, port: '9696', host: IP_ADDRESS}
+      NovaAdmin: {protocol: http, port: '8774', host: IP_ADDRESS}
+      NovaInternal: {protocol: http, port: '8774', host: IP_ADDRESS}
+      NovaPublic: {protocol: http, port: '8774', host: IP_ADDRESS}
+      NovaEC2Admin: {protocol: http, port: '8773', host: IP_ADDRESS}
+      NovaEC2Internal: {protocol: http, port: '8773', host: IP_ADDRESS}
+      NovaEC2Public: {protocol: http, port: '8773', host: IP_ADDRESS}
+      NovaVNCProxyAdmin: {protocol: http, port: '6080', host: IP_ADDRESS}
+      NovaVNCProxyInternal: {protocol: http, port: '6080', host: IP_ADDRESS}
+      NovaVNCProxyPublic: {protocol: http, port: '6080', host: IP_ADDRESS}
+      SaharaAdmin: {protocol: http, port: '8386', host: IP_ADDRESS}
+      SaharaInternal: {protocol: http, port: '8386', host: IP_ADDRESS}
+      SaharaPublic: {protocol: http, port: '8386', host: IP_ADDRESS}
+      SwiftAdmin: {protocol: http, port: '8080', host: IP_ADDRESS}
+      SwiftInternal: {protocol: http, port: '8080', host: IP_ADDRESS}
+      SwiftPublic: {protocol: http, port: '8080', host: IP_ADDRESS}
     description: Mapping of service endpoint -> protocol. Typically set
-                 via parameter_defaults in the resource registry.
-  CloudName:
-    type: string
-    default: overcloud
-    description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
-
-resources:
-
-  CeilometerInternal:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: CeilometerInternal
-      EndpointMap: { get_param: EndpointMap }
-      CloudName: {get_param: CloudName}
-      IP: {get_param: CeilometerApiVirtualIP}
-  CeilometerPublic:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: CeilometerPublic
-      EndpointMap: { get_param: EndpointMap }
-      CloudName: {get_param: CloudName}
-      IP: {get_param: PublicVirtualIP}
-  CeilometerAdmin:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: CeilometerAdmin
-      EndpointMap: { get_param: EndpointMap }
-      CloudName: {get_param: CloudName}
-      IP: {get_param: CeilometerApiVirtualIP}
-
-  CinderInternal:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: CinderInternal
-      EndpointMap: { get_param: EndpointMap }
-      CloudName: {get_param: CloudName}
-      IP: {get_param: CinderApiVirtualIP}
-      UriSuffix: '/v1/%(tenant_id)s'
-  CinderPublic:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: CinderPublic
-      EndpointMap: { get_param: EndpointMap }
-      CloudName: {get_param: CloudName}
-      IP: {get_param: PublicVirtualIP}
-      UriSuffix: '/v1/%(tenant_id)s'
-  CinderAdmin:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: CinderAdmin
-      EndpointMap: { get_param: EndpointMap }
-      CloudName: {get_param: CloudName}
-      IP: {get_param: CinderApiVirtualIP}
-      UriSuffix: '/v1/%(tenant_id)s'
-
-  CinderV2Internal:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: CinderInternal
-      EndpointMap: { get_param: EndpointMap }
-      CloudName: {get_param: CloudName}
-      IP: {get_param: CinderApiVirtualIP}
-      UriSuffix: '/v2/%(tenant_id)s'
-  CinderV2Public:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: CinderPublic
-      EndpointMap: { get_param: EndpointMap }
-      CloudName: {get_param: CloudName}
-      IP: {get_param: PublicVirtualIP}
-      UriSuffix: '/v2/%(tenant_id)s'
-  CinderV2Admin:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: CinderAdmin
-      EndpointMap: { get_param: EndpointMap }
-      CloudName: {get_param: CloudName}
-      IP: {get_param: CinderApiVirtualIP}
-      UriSuffix: '/v2/%(tenant_id)s'
-
-  GlanceInternal:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: GlanceInternal
-      EndpointMap: { get_param: EndpointMap }
-      CloudName: {get_param: CloudName}
-      IP: {get_param: GlanceApiVirtualIP}
-  GlancePublic:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: GlancePublic
-      EndpointMap: { get_param: EndpointMap }
-      CloudName: {get_param: CloudName}
-      IP: {get_param: PublicVirtualIP}
-  GlanceAdmin:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: GlanceAdmin
-      EndpointMap: { get_param: EndpointMap }
-      CloudName: {get_param: CloudName}
-      IP: {get_param: GlanceApiVirtualIP}
-  GlanceRegistryInternal:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: GlanceRegistryInternal
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: GlanceRegistryVirtualIP}
-  GlanceRegistryPublic:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: GlanceRegistryPublic
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: PublicVirtualIP}
-  GlanceRegistryAdmin:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: GlanceRegistryAdmin
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: GlanceRegistryVirtualIP}
-
-  HeatInternal:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: HeatInternal
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: HeatApiVirtualIP}
-      CloudName: {get_param: CloudName}
-      UriSuffix: '/v1/%(tenant_id)s'
-  HeatPublic:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: HeatPublic
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: PublicVirtualIP}
-      CloudName: {get_param: CloudName}
-      UriSuffix: '/v1/%(tenant_id)s'
-  HeatAdmin:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: HeatAdmin
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: HeatApiVirtualIP}
-      CloudName: {get_param: CloudName}
-      UriSuffix: '/v1/%(tenant_id)s'
-
-  HorizonPublic:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: HorizonPublic
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: PublicVirtualIP}
-      CloudName: {get_param: CloudName}
-      UriSuffix: '/dashboard'
-
-  KeystoneInternal:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: KeystoneInternal
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: KeystonePublicApiVirtualIP}
-      CloudName: {get_param: CloudName}
-      UriSuffix: '/v2.0'
-  KeystonePublic:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: KeystonePublic
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: PublicVirtualIP}
-      CloudName: {get_param: CloudName}
-      UriSuffix: '/v2.0'
-  KeystoneAdmin:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: KeystoneAdmin
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: KeystoneAdminApiVirtualIP}
-      CloudName: {get_param: CloudName}
-      UriSuffix: '/v2.0'
-  KeystoneEC2:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: KeystoneInternal
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: KeystonePublicApiVirtualIP}
-      CloudName: {get_param: CloudName}
-      UriSuffix: '/v2.0/ec2tokens'
-
-  NeutronInternal:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: NeutronInternal
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: NeutronApiVirtualIP}
-      CloudName: {get_param: CloudName}
-  NeutronPublic:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: NeutronPublic
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: PublicVirtualIP}
-      CloudName: {get_param: CloudName}
-  NeutronAdmin:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: NeutronAdmin
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: NeutronApiVirtualIP}
-      CloudName: {get_param: CloudName}
-
-  NovaInternal:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: NovaInternal
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: NovaApiVirtualIP}
-      CloudName: {get_param: CloudName}
-      UriSuffix: '/v2/%(tenant_id)s'
-  NovaPublic:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: NovaPublic
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: PublicVirtualIP}
-      CloudName: {get_param: CloudName}
-      UriSuffix: '/v2/%(tenant_id)s'
-  NovaAdmin:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: NovaAdmin
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: NovaApiVirtualIP}
-      CloudName: {get_param: CloudName}
-      UriSuffix: '/v2/%(tenant_id)s'
-  NovaV3Internal:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: NovaInternal
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: NovaApiVirtualIP}
-      CloudName: {get_param: CloudName}
-      UriSuffix: '/v3'
-  NovaV3Public:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: NovaPublic
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: PublicVirtualIP}
-      CloudName: {get_param: CloudName}
-      UriSuffix: '/v3'
-  NovaV3Admin:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: NovaAdmin
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: NovaApiVirtualIP}
-      CloudName: {get_param: CloudName}
-      UriSuffix: '/v3'
-
-  NovaEC2Internal:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: NovaEC2Internal
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: NovaApiVirtualIP}
-      CloudName: {get_param: CloudName}
-      UriSuffix: '/services/Cloud'
-  NovaEC2Public:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: NovaEC2Public
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: PublicVirtualIP}
-      CloudName: {get_param: CloudName}
-      UriSuffix: '/services/Cloud'
-  NovaEC2Admin:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: NovaEC2Admin
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: NovaApiVirtualIP}
-      CloudName: {get_param: CloudName}
-      UriSuffix: '/services/Admin'
-
-  NovaVNCProxyInternal:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: NovaVNCProxyInternal
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: NovaApiVirtualIP}
-      CloudName: {get_param: CloudName}
-  NovaVNCProxyPublic:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: NovaVNCProxyPublic
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: PublicVirtualIP}
-      CloudName: {get_param: CloudName}
-  NovaVNCProxyAdmin:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: NovaVNCProxyAdmin
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: NovaApiVirtualIP}
-      CloudName: {get_param: CloudName}
-
-  SwiftInternal:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: SwiftInternal
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: SwiftProxyVirtualIP}
-      CloudName: {get_param: CloudName}
-      UriSuffix: '/v1/AUTH_%(tenant_id)s'
-  SwiftPublic:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: SwiftPublic
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: PublicVirtualIP}
-      CloudName: {get_param: CloudName}
-      UriSuffix: '/v1/AUTH_%(tenant_id)s'
-  SwiftAdmin:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: SwiftAdmin
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: SwiftProxyVirtualIP}
-      CloudName: {get_param: CloudName}
-      # No Suffix for the Admin interface
-  SwiftS3Internal:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: SwiftInternal
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: SwiftProxyVirtualIP}
-      CloudName: {get_param: CloudName}
-  SwiftS3Public:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: SwiftPublic
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: PublicVirtualIP}
-      CloudName: {get_param: CloudName}
-  SwiftS3Admin:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: SwiftAdmin
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: SwiftProxyVirtualIP}
-      CloudName: {get_param: CloudName}
-
-  SaharaInternal:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: SaharaInternal
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: SaharaApiVirtualIP}
-      CloudName: {get_param: CloudName}
-      UriSuffix: '/v1.1/%(tenant_id)s'
-  SaharaPublic:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: SaharaPublic
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: SaharaApiVirtualIP}
-      CloudName: {get_param: CloudName}
-      UriSuffix: '/v1.1/%(tenant_id)s'
-  SaharaAdmin:
-    type: OS::TripleO::Endpoint
-    properties:
-      EndpointName: SaharaAdmin
-      EndpointMap: { get_param: EndpointMap }
-      IP: {get_param: SaharaApiVirtualIP}
-      CloudName: {get_param: CloudName}
-      UriSuffix: '/v1.1/%(tenant_id)s'
-
+      via parameter_defaults in the resource registry.
+  CloudName: {type: string, default: overcloud, description: The DNS name
+      of this cloud. e.g. ci-overcloud.tripleo.org}
 outputs:
   endpoint_map:
     value:
-      CeilometerInternal: {get_attr: [ CeilometerInternal, endpoint] }
-      CeilometerPublic: {get_attr: [ CeilometerPublic, endpoint] }
-      CeilometerAdmin: {get_attr: [ CeilometerAdmin, endpoint] }
-      CinderInternal: {get_attr: [ CinderInternal, endpoint] }
-      CinderPublic: {get_attr: [ CinderPublic, endpoint] }
-      CinderAdmin: {get_attr: [ CinderAdmin, endpoint] }
-      CinderV2Internal: {get_attr: [ CinderV2Internal, endpoint] }
-      CinderV2Public: {get_attr: [ CinderV2Public, endpoint] }
-      CinderV2Admin: {get_attr: [ CinderV2Admin, endpoint] }
-      GlanceInternal: {get_attr: [ GlanceInternal, endpoint] }
-      GlancePublic: {get_attr: [ GlancePublic, endpoint] }
-      GlanceAdmin: {get_attr: [ GlanceAdmin, endpoint] }
-      GlanceRegistryInternal: {get_attr: [ GlanceRegistryInternal, endpoint] }
-      GlanceRegistryPublic: {get_attr: [ GlanceRegistryPublic, endpoint] }
-      GlanceRegistryAdmin: {get_attr: [ GlanceRegistryAdmin, endpoint] }
-      HeatInternal: {get_attr: [ HeatInternal, endpoint] }
-      HeatPublic: {get_attr: [ HeatPublic, endpoint] }
-      HeatAdmin: {get_attr: [ HeatAdmin, endpoint] }
-      HorizonPublic: {get_attr: [ HorizonPublic, endpoint] }
-      KeystoneInternal: {get_attr: [ KeystoneInternal, endpoint] }
-      KeystonePublic: {get_attr: [ KeystonePublic, endpoint] }
-      KeystoneAdmin: {get_attr: [ KeystoneAdmin, endpoint] }
-      KeystoneEC2: {get_attr: [ KeystoneEC2, endpoint] }
-      NeutronInternal: {get_attr: [ NeutronInternal, endpoint] }
-      NeutronPublic: {get_attr: [ NeutronPublic, endpoint] }
-      NeutronAdmin: {get_attr: [ NeutronAdmin, endpoint] }
-      NovaInternal: {get_attr: [ NovaInternal, endpoint] }
-      NovaPublic: {get_attr: [ NovaPublic, endpoint] }
-      NovaAdmin: {get_attr: [ NovaAdmin, endpoint] }
-      NovaV3Internal: {get_attr: [ NovaV3Internal, endpoint] }
-      NovaV3Public: {get_attr: [ NovaV3Public, endpoint] }
-      NovaV3Admin: {get_attr: [ NovaV3Admin, endpoint] }
-      NovaEC2Internal: {get_attr: [ NovaEC2Internal, endpoint] }
-      NovaEC2Public: {get_attr: [ NovaEC2Public, endpoint] }
-      NovaEC2Admin: {get_attr: [ NovaEC2Admin, endpoint] }
-      NovaVNCProxyInternal: {get_attr: [ NovaVNCProxyInternal, endpoint] }
-      NovaVNCProxyPublic: {get_attr: [ NovaVNCProxyPublic, endpoint] }
-      NovaVNCProxyAdmin: {get_attr: [ NovaVNCProxyAdmin, endpoint] }
-      SwiftInternal: {get_attr: [ SwiftInternal, endpoint] }
-      SwiftPublic: {get_attr: [ SwiftPublic, endpoint] }
-      SwiftAdmin: {get_attr: [ SwiftAdmin, endpoint] }
-      SwiftS3Internal: {get_attr: [ SwiftS3Internal, endpoint] }
-      SwiftS3Public: {get_attr: [ SwiftS3Public, endpoint] }
-      SwiftS3Admin: {get_attr: [ SwiftS3Admin, endpoint] }
-      SaharaInternal: {get_attr: [ SaharaInternal, endpoint] }
-      SaharaPublic: {get_attr: [ SaharaPublic, endpoint] }
-      SaharaAdmin: {get_attr: [ SaharaAdmin, endpoint] }
+      AodhAdmin:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, AodhAdmin, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: AodhApiVirtualIP}
+        port:
+          get_param: [EndpointMap, AodhAdmin, port]
+        protocol:
+          get_param: [EndpointMap, AodhAdmin, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, AodhAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, AodhAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: AodhApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, AodhAdmin, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, AodhAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, AodhAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: AodhApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, AodhAdmin, port]
+      AodhInternal:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, AodhInternal, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: AodhApiVirtualIP}
+        port:
+          get_param: [EndpointMap, AodhInternal, port]
+        protocol:
+          get_param: [EndpointMap, AodhInternal, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, AodhInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, AodhInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: AodhApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, AodhInternal, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, AodhInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, AodhInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: AodhApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, AodhInternal, port]
+      AodhPublic:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, AodhPublic, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: PublicVirtualIP}
+        port:
+          get_param: [EndpointMap, AodhPublic, port]
+        protocol:
+          get_param: [EndpointMap, AodhPublic, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, AodhPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, AodhPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, AodhPublic, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, AodhPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, AodhPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, AodhPublic, port]
+      CeilometerAdmin:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, CeilometerAdmin, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: CeilometerApiVirtualIP}
+        port:
+          get_param: [EndpointMap, CeilometerAdmin, port]
+        protocol:
+          get_param: [EndpointMap, CeilometerAdmin, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, CeilometerAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, CeilometerAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: CeilometerApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, CeilometerAdmin, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, CeilometerAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, CeilometerAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: CeilometerApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, CeilometerAdmin, port]
+      CeilometerInternal:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, CeilometerInternal, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: CeilometerApiVirtualIP}
+        port:
+          get_param: [EndpointMap, CeilometerInternal, port]
+        protocol:
+          get_param: [EndpointMap, CeilometerInternal, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, CeilometerInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, CeilometerInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: CeilometerApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, CeilometerInternal, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, CeilometerInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, CeilometerInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: CeilometerApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, CeilometerInternal, port]
+      CeilometerPublic:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, CeilometerPublic, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: PublicVirtualIP}
+        port:
+          get_param: [EndpointMap, CeilometerPublic, port]
+        protocol:
+          get_param: [EndpointMap, CeilometerPublic, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, CeilometerPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, CeilometerPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, CeilometerPublic, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, CeilometerPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, CeilometerPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, CeilometerPublic, port]
+      CinderAdmin:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, CinderAdmin, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: CinderApiVirtualIP}
+        port:
+          get_param: [EndpointMap, CinderAdmin, port]
+        protocol:
+          get_param: [EndpointMap, CinderAdmin, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, CinderAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, CinderAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: CinderApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, CinderAdmin, port]
+            - /v1/%(tenant_id)s
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, CinderAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, CinderAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: CinderApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, CinderAdmin, port]
+      CinderInternal:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, CinderInternal, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: CinderApiVirtualIP}
+        port:
+          get_param: [EndpointMap, CinderInternal, port]
+        protocol:
+          get_param: [EndpointMap, CinderInternal, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, CinderInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, CinderInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: CinderApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, CinderInternal, port]
+            - /v1/%(tenant_id)s
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, CinderInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, CinderInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: CinderApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, CinderInternal, port]
+      CinderPublic:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, CinderPublic, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: PublicVirtualIP}
+        port:
+          get_param: [EndpointMap, CinderPublic, port]
+        protocol:
+          get_param: [EndpointMap, CinderPublic, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, CinderPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, CinderPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, CinderPublic, port]
+            - /v1/%(tenant_id)s
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, CinderPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, CinderPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, CinderPublic, port]
+      CinderV2Admin:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, CinderAdmin, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: CinderApiVirtualIP}
+        port:
+          get_param: [EndpointMap, CinderAdmin, port]
+        protocol:
+          get_param: [EndpointMap, CinderAdmin, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, CinderAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, CinderAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: CinderApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, CinderAdmin, port]
+            - /v2/%(tenant_id)s
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, CinderAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, CinderAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: CinderApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, CinderAdmin, port]
+      CinderV2Internal:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, CinderInternal, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: CinderApiVirtualIP}
+        port:
+          get_param: [EndpointMap, CinderInternal, port]
+        protocol:
+          get_param: [EndpointMap, CinderInternal, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, CinderInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, CinderInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: CinderApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, CinderInternal, port]
+            - /v2/%(tenant_id)s
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, CinderInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, CinderInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: CinderApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, CinderInternal, port]
+      CinderV2Public:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, CinderPublic, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: PublicVirtualIP}
+        port:
+          get_param: [EndpointMap, CinderPublic, port]
+        protocol:
+          get_param: [EndpointMap, CinderPublic, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, CinderPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, CinderPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, CinderPublic, port]
+            - /v2/%(tenant_id)s
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, CinderPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, CinderPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, CinderPublic, port]
+      GlanceAdmin:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, GlanceAdmin, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: GlanceApiVirtualIP}
+        port:
+          get_param: [EndpointMap, GlanceAdmin, port]
+        protocol:
+          get_param: [EndpointMap, GlanceAdmin, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, GlanceAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, GlanceAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: GlanceApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, GlanceAdmin, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, GlanceAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, GlanceAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: GlanceApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, GlanceAdmin, port]
+      GlanceInternal:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, GlanceInternal, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: GlanceApiVirtualIP}
+        port:
+          get_param: [EndpointMap, GlanceInternal, port]
+        protocol:
+          get_param: [EndpointMap, GlanceInternal, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, GlanceInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, GlanceInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: GlanceApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, GlanceInternal, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, GlanceInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, GlanceInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: GlanceApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, GlanceInternal, port]
+      GlancePublic:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, GlancePublic, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: PublicVirtualIP}
+        port:
+          get_param: [EndpointMap, GlancePublic, port]
+        protocol:
+          get_param: [EndpointMap, GlancePublic, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, GlancePublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, GlancePublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, GlancePublic, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, GlancePublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, GlancePublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, GlancePublic, port]
+      GlanceRegistryInternal:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, GlanceRegistryInternal, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: GlanceRegistryVirtualIP}
+        port:
+          get_param: [EndpointMap, GlanceRegistryInternal, port]
+        protocol:
+          get_param: [EndpointMap, GlanceRegistryInternal, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, GlanceRegistryInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, GlanceRegistryInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: GlanceRegistryVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, GlanceRegistryInternal, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, GlanceRegistryInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, GlanceRegistryInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: GlanceRegistryVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, GlanceRegistryInternal, port]
+      GnocchiAdmin:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, GnocchiAdmin, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: GnocchiApiVirtualIP}
+        port:
+          get_param: [EndpointMap, GnocchiAdmin, port]
+        protocol:
+          get_param: [EndpointMap, GnocchiAdmin, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, GnocchiAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, GnocchiAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: GnocchiApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, GnocchiAdmin, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, GnocchiAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, GnocchiAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: GnocchiApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, GnocchiAdmin, port]
+      GnocchiInternal:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, GnocchiInternal, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: GnocchiApiVirtualIP}
+        port:
+          get_param: [EndpointMap, GnocchiInternal, port]
+        protocol:
+          get_param: [EndpointMap, GnocchiInternal, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, GnocchiInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, GnocchiInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: GnocchiApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, GnocchiInternal, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, GnocchiInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, GnocchiInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: GnocchiApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, GnocchiInternal, port]
+      GnocchiPublic:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, GnocchiPublic, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: PublicVirtualIP}
+        port:
+          get_param: [EndpointMap, GnocchiPublic, port]
+        protocol:
+          get_param: [EndpointMap, GnocchiPublic, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, GnocchiPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, GnocchiPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, GnocchiPublic, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, GnocchiPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, GnocchiPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, GnocchiPublic, port]
+      HeatAdmin:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, HeatAdmin, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: HeatApiVirtualIP}
+        port:
+          get_param: [EndpointMap, HeatAdmin, port]
+        protocol:
+          get_param: [EndpointMap, HeatAdmin, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, HeatAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, HeatAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: HeatApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, HeatAdmin, port]
+            - /v1/%(tenant_id)s
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, HeatAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, HeatAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: HeatApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, HeatAdmin, port]
+      HeatInternal:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, HeatInternal, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: HeatApiVirtualIP}
+        port:
+          get_param: [EndpointMap, HeatInternal, port]
+        protocol:
+          get_param: [EndpointMap, HeatInternal, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, HeatInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, HeatInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: HeatApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, HeatInternal, port]
+            - /v1/%(tenant_id)s
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, HeatInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, HeatInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: HeatApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, HeatInternal, port]
+      HeatPublic:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, HeatPublic, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: PublicVirtualIP}
+        port:
+          get_param: [EndpointMap, HeatPublic, port]
+        protocol:
+          get_param: [EndpointMap, HeatPublic, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, HeatPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, HeatPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, HeatPublic, port]
+            - /v1/%(tenant_id)s
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, HeatPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, HeatPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, HeatPublic, port]
+      HorizonPublic:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, HorizonPublic, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: PublicVirtualIP}
+        port:
+          get_param: [EndpointMap, HorizonPublic, port]
+        protocol:
+          get_param: [EndpointMap, HorizonPublic, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, HorizonPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, HorizonPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, HorizonPublic, port]
+            - /dashboard
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, HorizonPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, HorizonPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, HorizonPublic, port]
+      KeystoneAdmin:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, KeystoneAdmin, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: KeystoneAdminApiVirtualIP}
+        port:
+          get_param: [EndpointMap, KeystoneAdmin, port]
+        protocol:
+          get_param: [EndpointMap, KeystoneAdmin, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, KeystoneAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, KeystoneAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: KeystoneAdminApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, KeystoneAdmin, port]
+            - /v2.0
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, KeystoneAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, KeystoneAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: KeystoneAdminApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, KeystoneAdmin, port]
+      KeystoneEC2:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, KeystoneInternal, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: KeystonePublicApiVirtualIP}
+        port:
+          get_param: [EndpointMap, KeystoneInternal, port]
+        protocol:
+          get_param: [EndpointMap, KeystoneInternal, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, KeystoneInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, KeystoneInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: KeystonePublicApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, KeystoneInternal, port]
+            - /v2.0/ec2tokens
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, KeystoneInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, KeystoneInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: KeystonePublicApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, KeystoneInternal, port]
+      KeystoneInternal:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, KeystoneInternal, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: KeystonePublicApiVirtualIP}
+        port:
+          get_param: [EndpointMap, KeystoneInternal, port]
+        protocol:
+          get_param: [EndpointMap, KeystoneInternal, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, KeystoneInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, KeystoneInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: KeystonePublicApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, KeystoneInternal, port]
+            - /v2.0
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, KeystoneInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, KeystoneInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: KeystonePublicApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, KeystoneInternal, port]
+      KeystonePublic:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, KeystonePublic, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: PublicVirtualIP}
+        port:
+          get_param: [EndpointMap, KeystonePublic, port]
+        protocol:
+          get_param: [EndpointMap, KeystonePublic, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, KeystonePublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, KeystonePublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, KeystonePublic, port]
+            - /v2.0
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, KeystonePublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, KeystonePublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, KeystonePublic, port]
+      KeystoneV3Admin:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, KeystoneAdmin, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: KeystoneAdminApiVirtualIP}
+        port:
+          get_param: [EndpointMap, KeystoneAdmin, port]
+        protocol:
+          get_param: [EndpointMap, KeystoneAdmin, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, KeystoneAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, KeystoneAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: KeystoneAdminApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, KeystoneAdmin, port]
+            - /v3
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, KeystoneAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, KeystoneAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: KeystoneAdminApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, KeystoneAdmin, port]
+      KeystoneV3Internal:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, KeystoneInternal, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: KeystonePublicApiVirtualIP}
+        port:
+          get_param: [EndpointMap, KeystoneInternal, port]
+        protocol:
+          get_param: [EndpointMap, KeystoneInternal, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, KeystoneInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, KeystoneInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: KeystonePublicApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, KeystoneInternal, port]
+            - /v3
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, KeystoneInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, KeystoneInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: KeystonePublicApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, KeystoneInternal, port]
+      KeystoneV3Public:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, KeystonePublic, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: PublicVirtualIP}
+        port:
+          get_param: [EndpointMap, KeystonePublic, port]
+        protocol:
+          get_param: [EndpointMap, KeystonePublic, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, KeystonePublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, KeystonePublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, KeystonePublic, port]
+            - /v3
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, KeystonePublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, KeystonePublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, KeystonePublic, port]
+      NeutronAdmin:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, NeutronAdmin, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: NeutronApiVirtualIP}
+        port:
+          get_param: [EndpointMap, NeutronAdmin, port]
+        protocol:
+          get_param: [EndpointMap, NeutronAdmin, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NeutronAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NeutronAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: NeutronApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NeutronAdmin, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NeutronAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NeutronAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: NeutronApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NeutronAdmin, port]
+      NeutronInternal:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, NeutronInternal, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: NeutronApiVirtualIP}
+        port:
+          get_param: [EndpointMap, NeutronInternal, port]
+        protocol:
+          get_param: [EndpointMap, NeutronInternal, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NeutronInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NeutronInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: NeutronApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NeutronInternal, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NeutronInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NeutronInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: NeutronApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NeutronInternal, port]
+      NeutronPublic:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, NeutronPublic, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: PublicVirtualIP}
+        port:
+          get_param: [EndpointMap, NeutronPublic, port]
+        protocol:
+          get_param: [EndpointMap, NeutronPublic, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NeutronPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NeutronPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NeutronPublic, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NeutronPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NeutronPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NeutronPublic, port]
+      NovaAdmin:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, NovaAdmin, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: NovaApiVirtualIP}
+        port:
+          get_param: [EndpointMap, NovaAdmin, port]
+        protocol:
+          get_param: [EndpointMap, NovaAdmin, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NovaAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NovaAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: NovaApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NovaAdmin, port]
+            - /v2.1/%(tenant_id)s
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NovaAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NovaAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: NovaApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NovaAdmin, port]
+      NovaInternal:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, NovaInternal, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: NovaApiVirtualIP}
+        port:
+          get_param: [EndpointMap, NovaInternal, port]
+        protocol:
+          get_param: [EndpointMap, NovaInternal, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NovaInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NovaInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: NovaApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NovaInternal, port]
+            - /v2.1/%(tenant_id)s
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NovaInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NovaInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: NovaApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NovaInternal, port]
+      NovaPublic:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, NovaPublic, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: PublicVirtualIP}
+        port:
+          get_param: [EndpointMap, NovaPublic, port]
+        protocol:
+          get_param: [EndpointMap, NovaPublic, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NovaPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NovaPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NovaPublic, port]
+            - /v2.1/%(tenant_id)s
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NovaPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NovaPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NovaPublic, port]
+      NovaEC2Admin:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, NovaEC2Admin, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: NovaApiVirtualIP}
+        port:
+          get_param: [EndpointMap, NovaEC2Admin, port]
+        protocol:
+          get_param: [EndpointMap, NovaEC2Admin, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NovaEC2Admin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NovaEC2Admin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: NovaApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NovaEC2Admin, port]
+            - /services/Admin
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NovaEC2Admin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NovaEC2Admin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: NovaApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NovaEC2Admin, port]
+      NovaEC2Internal:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, NovaEC2Internal, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: NovaApiVirtualIP}
+        port:
+          get_param: [EndpointMap, NovaEC2Internal, port]
+        protocol:
+          get_param: [EndpointMap, NovaEC2Internal, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NovaEC2Internal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NovaEC2Internal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: NovaApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NovaEC2Internal, port]
+            - /services/Cloud
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NovaEC2Internal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NovaEC2Internal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: NovaApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NovaEC2Internal, port]
+      NovaEC2Public:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, NovaEC2Public, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: PublicVirtualIP}
+        port:
+          get_param: [EndpointMap, NovaEC2Public, port]
+        protocol:
+          get_param: [EndpointMap, NovaEC2Public, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NovaEC2Public, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NovaEC2Public, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NovaEC2Public, port]
+            - /services/Cloud
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NovaEC2Public, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NovaEC2Public, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NovaEC2Public, port]
+      NovaVNCProxyAdmin:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, NovaVNCProxyAdmin, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: NovaApiVirtualIP}
+        port:
+          get_param: [EndpointMap, NovaVNCProxyAdmin, port]
+        protocol:
+          get_param: [EndpointMap, NovaVNCProxyAdmin, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NovaVNCProxyAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NovaVNCProxyAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: NovaApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NovaVNCProxyAdmin, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NovaVNCProxyAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NovaVNCProxyAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: NovaApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NovaVNCProxyAdmin, port]
+      NovaVNCProxyInternal:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, NovaVNCProxyInternal, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: NovaApiVirtualIP}
+        port:
+          get_param: [EndpointMap, NovaVNCProxyInternal, port]
+        protocol:
+          get_param: [EndpointMap, NovaVNCProxyInternal, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NovaVNCProxyInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NovaVNCProxyInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: NovaApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NovaVNCProxyInternal, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NovaVNCProxyInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NovaVNCProxyInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: NovaApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NovaVNCProxyInternal, port]
+      NovaVNCProxyPublic:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, NovaVNCProxyPublic, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: PublicVirtualIP}
+        port:
+          get_param: [EndpointMap, NovaVNCProxyPublic, port]
+        protocol:
+          get_param: [EndpointMap, NovaVNCProxyPublic, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NovaVNCProxyPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NovaVNCProxyPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NovaVNCProxyPublic, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, NovaVNCProxyPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, NovaVNCProxyPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, NovaVNCProxyPublic, port]
+      SaharaAdmin:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, SaharaAdmin, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: SaharaApiVirtualIP}
+        port:
+          get_param: [EndpointMap, SaharaAdmin, port]
+        protocol:
+          get_param: [EndpointMap, SaharaAdmin, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, SaharaAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, SaharaAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: SaharaApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, SaharaAdmin, port]
+            - /v1.1/%(tenant_id)s
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, SaharaAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, SaharaAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: SaharaApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, SaharaAdmin, port]
+      SaharaInternal:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, SaharaInternal, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: SaharaApiVirtualIP}
+        port:
+          get_param: [EndpointMap, SaharaInternal, port]
+        protocol:
+          get_param: [EndpointMap, SaharaInternal, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, SaharaInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, SaharaInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: SaharaApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, SaharaInternal, port]
+            - /v1.1/%(tenant_id)s
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, SaharaInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, SaharaInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: SaharaApiVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, SaharaInternal, port]
+      SaharaPublic:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, SaharaPublic, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: PublicVirtualIP}
+        port:
+          get_param: [EndpointMap, SaharaPublic, port]
+        protocol:
+          get_param: [EndpointMap, SaharaPublic, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, SaharaPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, SaharaPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, SaharaPublic, port]
+            - /v1.1/%(tenant_id)s
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, SaharaPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, SaharaPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, SaharaPublic, port]
+      SwiftAdmin:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, SwiftAdmin, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: SwiftProxyVirtualIP}
+        port:
+          get_param: [EndpointMap, SwiftAdmin, port]
+        protocol:
+          get_param: [EndpointMap, SwiftAdmin, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, SwiftAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, SwiftAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: SwiftProxyVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, SwiftAdmin, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, SwiftAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, SwiftAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: SwiftProxyVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, SwiftAdmin, port]
+      SwiftInternal:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, SwiftInternal, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: SwiftProxyVirtualIP}
+        port:
+          get_param: [EndpointMap, SwiftInternal, port]
+        protocol:
+          get_param: [EndpointMap, SwiftInternal, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, SwiftInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, SwiftInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: SwiftProxyVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, SwiftInternal, port]
+            - /v1/AUTH_%(tenant_id)s
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, SwiftInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, SwiftInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: SwiftProxyVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, SwiftInternal, port]
+      SwiftPublic:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, SwiftPublic, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: PublicVirtualIP}
+        port:
+          get_param: [EndpointMap, SwiftPublic, port]
+        protocol:
+          get_param: [EndpointMap, SwiftPublic, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, SwiftPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, SwiftPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, SwiftPublic, port]
+            - /v1/AUTH_%(tenant_id)s
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, SwiftPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, SwiftPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, SwiftPublic, port]
+      SwiftS3Admin:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, SwiftAdmin, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: SwiftProxyVirtualIP}
+        port:
+          get_param: [EndpointMap, SwiftAdmin, port]
+        protocol:
+          get_param: [EndpointMap, SwiftAdmin, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, SwiftAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, SwiftAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: SwiftProxyVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, SwiftAdmin, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, SwiftAdmin, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, SwiftAdmin, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: SwiftProxyVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, SwiftAdmin, port]
+      SwiftS3Internal:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, SwiftInternal, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: SwiftProxyVirtualIP}
+        port:
+          get_param: [EndpointMap, SwiftInternal, port]
+        protocol:
+          get_param: [EndpointMap, SwiftInternal, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, SwiftInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, SwiftInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: SwiftProxyVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, SwiftInternal, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, SwiftInternal, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, SwiftInternal, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: SwiftProxyVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, SwiftInternal, port]
+      SwiftS3Public:
+        host:
+          str_replace:
+            template:
+              get_param: [EndpointMap, SwiftPublic, host]
+            params:
+              CLOUDNAME: {get_param: CloudName}
+              IP_ADDRESS: {get_param: PublicVirtualIP}
+        port:
+          get_param: [EndpointMap, SwiftPublic, port]
+        protocol:
+          get_param: [EndpointMap, SwiftPublic, protocol]
+        uri:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, SwiftPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, SwiftPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, SwiftPublic, port]
+        uri_no_suffix:
+          list_join:
+          - ''
+          - - get_param: [EndpointMap, SwiftPublic, protocol]
+            - ://
+            - str_replace:
+                template:
+                  get_param: [EndpointMap, SwiftPublic, host]
+                params:
+                  CLOUDNAME: {get_param: CloudName}
+                  IP_ADDRESS: {get_param: PublicVirtualIP}
+            - ':'
+            - get_param: [EndpointMap, SwiftPublic, port]