private function getVariant()

in src/Endpoint/Partition.php [286:321]


    private function getVariant(array $options, array $data)
    {
        $variantTags = [];
        if (isset($options['use_fips_endpoint'])) {
            $useFips = $options['use_fips_endpoint'];
            if (is_bool($useFips)) {
                $useFips && $variantTags[] = 'fips';
            } elseif ($useFips->isUseFipsEndpoint()) {
                $variantTags[] = 'fips';
            }
        }
        if (isset($options['use_dual_stack_endpoint'])) {
            $useDualStack = $options['use_dual_stack_endpoint'];
            if (is_bool($useDualStack)) {
                $useDualStack && $variantTags[] = 'dualstack';
            } elseif ($useDualStack->isUseDualStackEndpoint()) {
                $variantTags[] = 'dualstack';
            }
        }
        if (!empty($variantTags)) {
            if (isset($data['variants'])) {
                foreach ($data['variants'] as $variant) {
                    if (array_count_values($variant['tags']) == array_count_values($variantTags)) {
                        return $variant;
                    }
                }
            }
            if (isset($this->data['defaults']['variants'])) {
                foreach ($this->data['defaults']['variants'] as $variant) {
                    if (array_count_values($variant['tags']) == array_count_values($variantTags)) {
                        return $variant;
                    }
                }
            }
        }
    }