heat_template_version: wallaby

description: >
  External Swift Proxy endpoint configured with Puppet

parameters:
  ServiceData:
    default: {}
    description: Dictionary packing service data
    type: json
  ServiceNetMap:
    default: {}
    description: Mapping of service_name -> network name. Typically set
                 via parameter_defaults in the resource registry.  This
                 mapping overrides those in ServiceNetMapDefaults.
    type: json
  RoleName:
    default: ''
    description: Role name on which the service is applied
    type: string
  RoleParameters:
    default: {}
    description: Parameters specific to the role
    type: json
  EndpointMap:
    default: {}
    description: Mapping of service endpoint -> protocol. Typically set
                 via parameter_defaults in the resource registry.
    type: json
  ExternalSwiftPublicUrl:
    description: Public endpoint url for the external swift proxy
    type: string
  ExternalSwiftInternalUrl:
    description: Internal endpoint url for the external swift proxy
    type: string
  ExternalSwiftAdminUrl:
    description: External endpoint url for the external swift proxy
    type: string
  ExternalSwiftUserTenant:
    description: Tenant where swift user will be set as admin
    type: string
    default: 'service'
  SwiftPassword:
    description: The password for the swift service account
    type: string
    hidden: true
  KeystoneRegion:
    type: string
    default: 'regionOne'
    description: Keystone region for endpoint

outputs:
  role_data:
    description: Role data for External Swift proxy.
    value:
      service_name: external_swift_proxy
      config_settings:

      step_config:

      keystone_resources:
        swift:
          endpoints:
            public: {get_param: ExternalSwiftPublicUrl}
            internal: {get_param: ExternalSwiftInternalUrl}
            admin: {get_param: ExternalSwiftAdminUrl}
          users:
            swift:
              password: {get_param: SwiftPassword}
          region: {get_param: KeystoneRegion}
          service: 'object-store'
          roles:
            - swiftoperator
            - ResellerAdmin