class Aws::Partitions::EndpointProvider
def resolve_variant(region, service, config_variants)
def resolve_variant(region, service, config_variants) tags = Set.new(config_variants.select { |_k,v| v == true }.map { |k,_v| k.to_s }) is_global_fn = build_is_global_fn # ignore legacy STS config for variants partition_cfg = get_partition(region) service_cfg = partition_cfg.fetch('services', {}) .fetch(service, {}) endpoints_cfg = service_cfg.fetch('endpoints', {}) if is_global_fn.call(service, region, endpoints_cfg, service_cfg) region = service_cfg.fetch('partitionEndpoint', region) end region_cfg = endpoints_cfg.fetch(region, {}) warn_deprecation(service, region) if region_cfg['deprecated'] partition_defaults = fetch_variant(partition_cfg.fetch('defaults', {}), tags) service_defaults = fetch_variant(service_cfg.fetch('defaults', {}), tags) endpoint_cfg = fetch_variant(region_cfg, tags) # merge upwards, preferring values from endpoint > service > partition partition_defaults.merge(service_defaults.merge(endpoint_cfg)) end