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