diff --git a/.github/workflows/on-push.yml b/.github/workflows/on-push.yml index 8c6f1a28f..b420d7e75 100644 --- a/.github/workflows/on-push.yml +++ b/.github/workflows/on-push.yml @@ -6,51 +6,51 @@ env: AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} jobs: build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 # See https://hexdocs.pm/elixir/compatibility-and-deprecations.html#compatibility-between-elixir-and-erlang-otp strategy: matrix: include: + - pair: + otp: 27.x + elixir: 1.17.x + lint: lint + - pair: otp: 26.x - elixir: 1.15.x - lint: lint + elixir: 1.17.x - pair: - otp: 25.x + otp: 26.x + elixir: 1.16.x + - pair: + otp: 26.x elixir: 1.15.x + - pair: otp: 25.x - elixir: 1.14.x + elixir: 1.17.x - pair: otp: 25.x - elixir: 1.13.x + elixir: 1.16.x - pair: - otp: 24.x + otp: 25.x elixir: 1.15.x - pair: - otp: 24.x + otp: 25.x elixir: 1.14.x + - pair: otp: 24.x - elixir: 1.13.x + elixir: 1.16.x - pair: otp: 24.x - elixir: 1.12.x + elixir: 1.15.x - pair: otp: 24.x - elixir: 1.11.x - - pair: - otp: 23.x elixir: 1.14.x - pair: - otp: 23.x + otp: 24.x elixir: 1.13.x - - pair: - otp: 23.x - elixir: 1.12.x - - pair: - otp: 23.x - elixir: 1.11.x steps: - uses: actions/checkout@v4 diff --git a/.gitignore b/.gitignore index 7b79a3c87..a8224c8e1 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,5 @@ erl_crash.dump # IntelliJ IDEA files /.idea /exaws.iml -.elixir_ls \ No newline at end of file +.elixir_ls +*~ diff --git a/.tool-versions b/.tool-versions index a013f295f..7879e57ef 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,2 +1,2 @@ -elixir 1.15 -erlang 26.1.2 +elixir 1.17.2 +erlang 27.0.1 diff --git a/CHANGELOG.md b/CHANGELOG.md index 2bc682946..27759b6d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,28 @@ +v2.5.6 (2024-10-09) +- Endpoint updates + +v2.5.5 (2024-09-10) +- Endpoint updates +- Drop support for Elixir 1.12 +- Add support for Elixir 1.17 +- Add Req request backend +- Stop sending `content-length` header for DELETE and HEAD requests +- Fix handling of `[profile ]` blocks in config file +- Update test platform to Ubuntu 24.04 + +v2.5.4 (2024-06-04) +- Endpoint and region updates +- Add support for Elixir 1.16 +- Drop support for Elixir 1.11 +- Add support for `sso_session` in `.aws/config` +- Add support for EventBridge Pipes service +- Add support for Pinpoint Mobiletargeting service +- Add docs for running DynamoDB locally +- Allow iodata body in s3 requests + +v2.5.3 (2024-03-20) +- Add mappings for Chime + v2.5.2 (2024-03-19) - Endpoint updates diff --git a/README.md b/README.md index a1de313c2..f6a8e30ab 100644 --- a/README.md +++ b/README.md @@ -260,7 +260,13 @@ config :ex_aws, :retries, ## Testing If you want to run `mix test`, you'll need to have a local `dynamodb` running -on port 8000. See [Setting up DynamoDB Local](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.DownloadingAndRunning.html). +on port 8000: + +```console +docker run --rm -d -p 8000:8000 amazon/dynamodb-local -jar DynamoDBLocal.jar -port 8000 +``` + +For more info please see [Setting up DynamoDB Local](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.DownloadingAndRunning.html). The redirect test will intentionally cause a warning to be issued. diff --git a/lib/ex_aws/credentials_ini/file.ex b/lib/ex_aws/credentials_ini/file.ex index eb6d1e793..41f1f3b1f 100644 --- a/lib/ex_aws/credentials_ini/file.ex +++ b/lib/ex_aws/credentials_ini/file.ex @@ -6,9 +6,11 @@ if Code.ensure_loaded?(ConfigParser) do @valid_config_keys ~w( aws_access_key_id aws_secret_access_key aws_session_token region role_arn source_profile credential_source external_id mfa_serial role_session_name credential_process - sso_start_url sso_region sso_account_id sso_role_name + sso_start_url sso_region sso_account_id sso_role_name sso_session ) + @special_merge_keys ~w(sso_session) + def security_credentials(profile_name) do config_credentials = profile_from_config(profile_name) shared_credentials = profile_from_shared_credentials(profile_name) @@ -19,9 +21,10 @@ if Code.ensure_loaded?(ConfigParser) do sso_account_id: sso_account_id, sso_role_name: sso_role_name } -> + sso_cache_key = Map.get(config_credentials, :sso_session, sso_start_url) config = ExAws.Config.http_config(:sso) - case get_sso_role_credentials(sso_start_url, sso_account_id, sso_role_name, config) do + case get_sso_role_credentials(sso_cache_key, sso_account_id, sso_role_name, config) do {:ok, sso_creds} -> {:ok, Map.merge(sso_creds, shared_credentials)} {:error, _} = err -> err end @@ -39,9 +42,9 @@ if Code.ensure_loaded?(ConfigParser) do end end - defp get_sso_role_credentials(sso_start_url, sso_account_id, sso_role_name, config) do + defp get_sso_role_credentials(sso_cache_key, sso_account_id, sso_role_name, config) do with {_, {:ok, sso_cache_content}} <- - {:read, File.read(get_sso_cache_file(sso_start_url))}, + {:read, File.read(get_sso_cache_file(sso_cache_key))}, {_, {:ok, %{"expiresAt" => expires_at, "accessToken" => access_token, "region" => region}}} <- {:decode, config[:json_codec].decode(sso_cache_content)}, @@ -68,8 +71,8 @@ if Code.ensure_loaded?(ConfigParser) do end end - defp get_sso_cache_file(sso_start_url) do - hash = :crypto.hash(:sha, sso_start_url) |> Base.encode16() |> String.downcase() + defp get_sso_cache_file(sso_cache_key) do + hash = :crypto.hash(:sha, sso_cache_key) |> Base.encode16() |> String.downcase() System.user_home() |> Path.join(".aws/sso/cache/#{hash}.json") @@ -224,11 +227,18 @@ if Code.ensure_loaded?(ConfigParser) do end def parse_ini_file({:ok, contents}, profile_name) do + composite_key = "profile " <> profile_name + contents |> ConfigParser.parse_string() |> case do - {:ok, %{^profile_name => config}} -> - strip_key_prefix(config) + {:ok, %{^profile_name => config} = full} -> + merge_special_keys(full, config) + |> strip_key_prefix() + + {:ok, %{^composite_key => config} = full} -> + merge_special_keys(full, config) + |> strip_key_prefix() {:ok, %{}} -> %{} @@ -240,6 +250,22 @@ if Code.ensure_loaded?(ConfigParser) do def parse_ini_file(_, _), do: %{} + def merge_special_keys(full_config, credentials) do + credentials + |> Map.take(@special_merge_keys) + |> Enum.reduce(credentials, fn {key, val}, acc -> + merge_section = "#{String.replace(key, "_", "-")} #{val}" + + case full_config do + %{^merge_section => config} -> + Map.merge(config, acc) + + _ -> + acc + end + end) + end + def strip_key_prefix(credentials) do credentials |> Map.take(@valid_config_keys) diff --git a/lib/ex_aws/operation/s3.ex b/lib/ex_aws/operation/s3.ex index cf2cfba4a..3ec2d5211 100644 --- a/lib/ex_aws/operation/s3.ex +++ b/lib/ex_aws/operation/s3.ex @@ -46,8 +46,12 @@ defmodule ExAws.Operation.S3 do defp put_content_length_header(headers, "", :get), do: headers + defp put_content_length_header(headers, "", :head), do: headers + + defp put_content_length_header(headers, "", :delete), do: headers + defp put_content_length_header(headers, body, _) do - Map.put(headers, "content-length", byte_size(body) |> Integer.to_string()) + Map.put(headers, "content-length", IO.iodata_length(body) |> Integer.to_string()) end @spec add_bucket_to_path(operation :: ExAws.Operation.S3.t(), config :: map) :: diff --git a/lib/ex_aws/request/req.ex b/lib/ex_aws/request/req.ex new file mode 100644 index 000000000..b4a75b59b --- /dev/null +++ b/lib/ex_aws/request/req.ex @@ -0,0 +1,31 @@ +defmodule ExAws.Request.Req do + @behaviour ExAws.Request.HttpClient + + @moduledoc """ + Configuration for `m:Req`. + + Options can be set for `m:Req` with the following config: + + config :ex_aws, :req_opts, + receive_timeout: 30_000 + + The default config handles setting the above. + """ + + @default_opts [receive_timeout: 30_000] + + @impl true + def request(method, url, body \\ "", headers \\ [], http_opts \\ []) do + [method: method, url: url, body: body, headers: headers, decode_body: false] + |> Keyword.merge(Application.get_env(:ex_aws, :req_opts, @default_opts)) + |> Keyword.merge(http_opts) + |> Req.request() + |> case do + {:ok, %{status: status, headers: headers, body: body}} -> + {:ok, %{status_code: status, headers: headers, body: body}} + + {:error, reason} -> + {:error, %{reason: reason}} + end + end +end diff --git a/mix.exs b/mix.exs index 48cb885f5..0ead28b57 100644 --- a/mix.exs +++ b/mix.exs @@ -2,13 +2,13 @@ defmodule ExAws.Mixfile do use Mix.Project @source_url "https://github.com/ex-aws/ex_aws" - @version "2.5.2" + @version "2.5.6" def project do [ app: :ex_aws, version: @version, - elixir: "~> 1.11", + elixir: "~> 1.13", elixirc_paths: elixirc_paths(Mix.env()), description: "Generic AWS client", name: "ExAws", @@ -39,26 +39,26 @@ defmodule ExAws.Mixfile do defp deps() do [ {:telemetry, "~> 0.4.3 or ~> 1.0"}, - # mime 2.x requires Elixir ~> 1.10 {:mime, "~> 1.2 or ~> 2.0"}, {:bypass, "~> 2.1", only: :test}, {:configparser_ex, "~> 4.0", optional: true}, {:dialyxir, "~> 1.0", only: [:dev, :test], runtime: false}, {:ex_doc, "~> 0.16", only: [:dev, :test]}, {:hackney, "~> 1.16", optional: true}, + {:req, "~> 0.3", optional: true}, {:jason, "~> 1.1", optional: true}, {:jsx, "~> 2.8 or ~> 3.0", optional: true}, {:mox, "~> 1.0", only: :test}, {:sweet_xml, "~> 0.7", optional: true}, - {:excoveralls, "~> 0.10", only: :test}, - {:req, "~> 0.3", only: :test} + {:excoveralls, "~> 0.10", only: :test} ] end defp package do [ description: description(), - files: ["priv", "lib", "config", "mix.exs", "README*", "LICENSE"], + files: ["priv", "lib", "config", "mix.exs", "CHANGELOG.md", "README*", "LICENSE"], + exclude_patterns: ["_build", "deps", "test", "*~"], maintainers: ["Bernard Duggan", "Ben Wilson"], licenses: ["MIT"], links: %{ @@ -71,7 +71,7 @@ defmodule ExAws.Mixfile do defp description do """ AWS client for Elixir. Currently supports Dynamo, DynamoStreams, EC2, - Firehose, Kinesis, KMS, Lambda, RRDS, Route53, S3, SES, SNS, SQS, STS + Firehose, Kinesis, KMS, Lambda, RRDS, Route53, S3, SES, SNS, SQS, STS and others. """ end diff --git a/mix.lock b/mix.lock index aba0ee6e4..7b85330d7 100644 --- a/mix.lock +++ b/mix.lock @@ -1,41 +1,42 @@ %{ "bypass": {:hex, :bypass, "2.1.0", "909782781bf8e20ee86a9cabde36b259d44af8b9f38756173e8f5e2e1fabb9b1", [:mix], [{:plug, "~> 1.7", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.0", [hex: :plug_cowboy, repo: "hexpm", optional: false]}, {:ranch, "~> 1.3", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "d9b5df8fa5b7a6efa08384e9bbecfe4ce61c77d28a4282f79e02f1ef78d96b80"}, - "castore": {:hex, :castore, "1.0.4", "ff4d0fb2e6411c0479b1d965a814ea6d00e51eb2f58697446e9c41a97d940b28", [:mix], [], "hexpm", "9418c1b8144e11656f0be99943db4caf04612e3eaecefb5dae9a2a87565584f8"}, + "castore": {:hex, :castore, "1.0.8", "dedcf20ea746694647f883590b82d9e96014057aff1d44d03ec90f36a5c0dc6e", [:mix], [], "hexpm", "0b2b66d2ee742cb1d9cb8c8be3b43c3a70ee8651f37b75a8b982e036752983f1"}, "certifi": {:hex, :certifi, "2.12.0", "2d1cca2ec95f59643862af91f001478c9863c2ac9cb6e2f89780bfd8de987329", [:rebar3], [], "hexpm", "ee68d85df22e554040cdb4be100f33873ac6051387baf6a8f6ce82272340ff1c"}, "configparser_ex": {:hex, :configparser_ex, "4.0.0", "17e2b831cfa33a08c56effc610339b2986f0d82a9caa0ed18880a07658292ab6", [:mix], [], "hexpm", "02e6d1a559361a063cba7b75bc3eb2d6ad7e62730c551cc4703541fd11e65e5b"}, "cowboy": {:hex, :cowboy, "2.10.0", "ff9ffeff91dae4ae270dd975642997afe2a1179d94b1887863e43f681a203e26", [:make, :rebar3], [{:cowlib, "2.12.1", [hex: :cowlib, repo: "hexpm", optional: false]}, {:ranch, "1.8.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "3afdccb7183cc6f143cb14d3cf51fa00e53db9ec80cdcd525482f5e99bc41d6b"}, "cowboy_telemetry": {:hex, :cowboy_telemetry, "0.4.0", "f239f68b588efa7707abce16a84d0d2acf3a0f50571f8bb7f56a15865aae820c", [:rebar3], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7d98bac1ee4565d31b62d59f8823dfd8356a169e7fcbb83831b8a5397404c9de"}, "cowlib": {:hex, :cowlib, "2.12.1", "a9fa9a625f1d2025fe6b462cb865881329b5caff8f1854d1cbc9f9533f00e1e1", [:make, :rebar3], [], "hexpm", "163b73f6367a7341b33c794c4e88e7dbfe6498ac42dcd69ef44c5bc5507c8db0"}, - "dialyxir": {:hex, :dialyxir, "1.4.3", "edd0124f358f0b9e95bfe53a9fcf806d615d8f838e2202a9f430d59566b6b53b", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "bf2cfb75cd5c5006bec30141b131663299c661a864ec7fbbc72dfa557487a986"}, - "earmark_parser": {:hex, :earmark_parser, "1.4.37", "2ad73550e27c8946648b06905a57e4d454e4d7229c2dafa72a0348c99d8be5f7", [:mix], [], "hexpm", "6b19783f2802f039806f375610faa22da130b8edc21209d0bff47918bb48360e"}, - "erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"}, - "ex_doc": {:hex, :ex_doc, "0.30.9", "d691453495c47434c0f2052b08dd91cc32bc4e1a218f86884563448ee2502dd2", [:mix], [{:earmark_parser, "~> 1.4.31", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "d7aaaf21e95dc5cddabf89063327e96867d00013963eadf2c6ad135506a8bc10"}, - "excoveralls": {:hex, :excoveralls, "0.18.0", "b92497e69465dc51bc37a6422226ee690ab437e4c06877e836f1c18daeb35da9", [:mix], [{:castore, "~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "1109bb911f3cb583401760be49c02cbbd16aed66ea9509fc5479335d284da60b"}, - "finch": {:hex, :finch, "0.16.0", "40733f02c89f94a112518071c0a91fe86069560f5dbdb39f9150042f44dcfb1a", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: false]}, {:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.3", [hex: :mint, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.4 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 0.2.6 or ~> 1.0", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "f660174c4d519e5fec629016054d60edd822cdfe2b7270836739ac2f97735ec5"}, + "dialyxir": {:hex, :dialyxir, "1.4.4", "fb3ce8741edeaea59c9ae84d5cec75da00fa89fe401c72d6e047d11a61f65f70", [:mix], [{:erlex, ">= 0.2.7", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "cd6111e8017ccd563e65621a4d9a4a1c5cd333df30cebc7face8029cacb4eff6"}, + "earmark_parser": {:hex, :earmark_parser, "1.4.40", "f3534689f6b58f48aa3a9ac850d4f05832654fe257bf0549c08cc290035f70d5", [:mix], [], "hexpm", "cdb34f35892a45325bad21735fadb88033bcb7c4c296a999bde769783f53e46a"}, + "erlex": {:hex, :erlex, "0.2.7", "810e8725f96ab74d17aac676e748627a07bc87eb950d2b83acd29dc047a30595", [:mix], [], "hexpm", "3ed95f79d1a844c3f6bf0cea61e0d5612a42ce56da9c03f01df538685365efb0"}, + "ex_doc": {:hex, :ex_doc, "0.34.2", "13eedf3844ccdce25cfd837b99bea9ad92c4e511233199440488d217c92571e8", [:mix], [{:earmark_parser, "~> 1.4.39", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "5ce5f16b41208a50106afed3de6a2ed34f4acfd65715b82a0b84b49d995f95c1"}, + "excoveralls": {:hex, :excoveralls, "0.18.3", "bca47a24d69a3179951f51f1db6d3ed63bca9017f476fe520eb78602d45f7756", [:mix], [{:castore, "~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "746f404fcd09d5029f1b211739afb8fb8575d775b21f6a3908e7ce3e640724c6"}, + "finch": {:hex, :finch, "0.19.0", "c644641491ea854fc5c1bbaef36bfc764e3f08e7185e1f084e35e0672241b76d", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.6.2 or ~> 1.7", [hex: :mint, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.4 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 1.1", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "fc5324ce209125d1e2fa0fcd2634601c52a787aff1cd33ee833664a5af4ea2b6"}, "hackney": {:hex, :hackney, "1.20.1", "8d97aec62ddddd757d128bfd1df6c5861093419f8f7a4223823537bad5d064e2", [:rebar3], [{:certifi, "~>2.12.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "~>6.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "~>1.0.0", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~>1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.4.1", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~>1.1.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}, {:unicode_util_compat, "~>0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "fe9094e5f1a2a2c0a7d10918fee36bfec0ec2a979994cff8cfe8058cd9af38e3"}, - "hpax": {:hex, :hpax, "0.1.2", "09a75600d9d8bbd064cdd741f21fc06fc1f4cf3d0fcc335e5aa19be1a7235c84", [:mix], [], "hexpm", "2c87843d5a23f5f16748ebe77969880e29809580efdaccd615cd3bed628a8c13"}, + "hpax": {:hex, :hpax, "1.0.0", "28dcf54509fe2152a3d040e4e3df5b265dcb6cb532029ecbacf4ce52caea3fd2", [:mix], [], "hexpm", "7f1314731d711e2ca5fdc7fd361296593fc2542570b3105595bb0bc6d0fad601"}, "idna": {:hex, :idna, "6.1.1", "8a63070e9f7d0c62eb9d9fcb360a7de382448200fbbd1b106cc96d3d8099df8d", [:rebar3], [{:unicode_util_compat, "~>0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "92376eb7894412ed19ac475e4a86f7b413c1b9fbb5bd16dccd57934157944cea"}, - "jason": {:hex, :jason, "1.4.1", "af1504e35f629ddcdd6addb3513c3853991f694921b1b9368b0bd32beb9f1b63", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "fbb01ecdfd565b56261302f7e1fcc27c4fb8f32d56eab74db621fc154604a7a1"}, + "jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"}, "jsx": {:hex, :jsx, "3.1.0", "d12516baa0bb23a59bb35dccaf02a1bd08243fcbb9efe24f2d9d056ccff71268", [:rebar3], [], "hexpm", "0c5cc8fdc11b53cc25cf65ac6705ad39e54ecc56d1c22e4adb8f5a53fb9427f3"}, - "makeup": {:hex, :makeup, "1.1.0", "6b67c8bc2882a6b6a445859952a602afc1a41c2e08379ca057c0f525366fc3ca", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "0a45ed501f4a8897f580eabf99a2e5234ea3e75a4373c8a52824f6e873be57a6"}, - "makeup_elixir": {:hex, :makeup_elixir, "0.16.1", "cc9e3ca312f1cfeccc572b37a09980287e243648108384b97ff2b76e505c3555", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "e127a341ad1b209bd80f7bd1620a15693a9908ed780c3b763bccf7d200c767c6"}, - "makeup_erlang": {:hex, :makeup_erlang, "0.1.2", "ad87296a092a46e03b7e9b0be7631ddcf64c790fa68a9ef5323b6cbb36affc72", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "f3f5a1ca93ce6e092d92b6d9c049bcda58a3b617a8d888f8e7231c85630e8108"}, + "makeup": {:hex, :makeup, "1.1.2", "9ba8837913bdf757787e71c1581c21f9d2455f4dd04cfca785c70bbfff1a76a3", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "cce1566b81fbcbd21eca8ffe808f33b221f9eee2cbc7a1706fc3da9ff18e6cac"}, + "makeup_elixir": {:hex, :makeup_elixir, "0.16.2", "627e84b8e8bf22e60a2579dad15067c755531fea049ae26ef1020cad58fe9578", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "41193978704763f6bbe6cc2758b84909e62984c7752b3784bd3c218bb341706b"}, + "makeup_erlang": {:hex, :makeup_erlang, "1.0.0", "6f0eff9c9c489f26b69b61440bf1b238d95badae49adac77973cbacae87e3c2e", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "ea7a9307de9d1548d2a72d299058d1fd2339e3d398560a0e46c27dab4891e4d2"}, "metrics": {:hex, :metrics, "1.0.1", "25f094dea2cda98213cecc3aeff09e940299d950904393b2a29d191c346a8486", [:rebar3], [], "hexpm", "69b09adddc4f74a40716ae54d140f93beb0fb8978d8636eaded0c31b6f099f16"}, - "mime": {:hex, :mime, "2.0.5", "dc34c8efd439abe6ae0343edbb8556f4d63f178594894720607772a041b04b02", [:mix], [], "hexpm", "da0d64a365c45bc9935cc5c8a7fc5e49a0e0f9932a761c55d6c52b142780a05c"}, + "mime": {:hex, :mime, "2.0.6", "8f18486773d9b15f95f4f4f1e39b710045fa1de891fada4516559967276e4dc2", [:mix], [], "hexpm", "c9945363a6b26d747389aac3643f8e0e09d30499a138ad64fe8fd1d13d9b153e"}, "mimerl": {:hex, :mimerl, "1.2.0", "67e2d3f571088d5cfd3e550c383094b47159f3eee8ffa08e64106cdf5e981be3", [:rebar3], [], "hexpm", "f278585650aa581986264638ebf698f8bb19df297f66ad91b18910dfc6e19323"}, - "mint": {:hex, :mint, "1.5.1", "8db5239e56738552d85af398798c80648db0e90f343c8469f6c6d8898944fb6f", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:hpax, "~> 0.1.1", [hex: :hpax, repo: "hexpm", optional: false]}], "hexpm", "4a63e1e76a7c3956abd2c72f370a0d0aecddc3976dea5c27eccbecfa5e7d5b1e"}, - "mox": {:hex, :mox, "1.1.0", "0f5e399649ce9ab7602f72e718305c0f9cdc351190f72844599545e4996af73c", [:mix], [], "hexpm", "d44474c50be02d5b72131070281a5d3895c0e7a95c780e90bc0cfe712f633a13"}, - "nimble_options": {:hex, :nimble_options, "1.0.2", "92098a74df0072ff37d0c12ace58574d26880e522c22801437151a159392270e", [:mix], [], "hexpm", "fd12a8db2021036ce12a309f26f564ec367373265b53e25403f0ee697380f1b8"}, - "nimble_parsec": {:hex, :nimble_parsec, "1.3.1", "2c54013ecf170e249e9291ed0a62e5832f70a476c61da16f6aac6dca0189f2af", [:mix], [], "hexpm", "2682e3c0b2eb58d90c6375fc0cc30bc7be06f365bf72608804fb9cffa5e1b167"}, - "nimble_pool": {:hex, :nimble_pool, "1.0.0", "5eb82705d138f4dd4423f69ceb19ac667b3b492ae570c9f5c900bb3d2f50a847", [:mix], [], "hexpm", "80be3b882d2d351882256087078e1b1952a28bf98d0a287be87e4a24a710b67a"}, + "mint": {:hex, :mint, "1.6.2", "af6d97a4051eee4f05b5500671d47c3a67dac7386045d87a904126fd4bbcea2e", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:hpax, "~> 0.1.1 or ~> 0.2.0 or ~> 1.0", [hex: :hpax, repo: "hexpm", optional: false]}], "hexpm", "5ee441dffc1892f1ae59127f74afe8fd82fda6587794278d924e4d90ea3d63f9"}, + "mox": {:hex, :mox, "1.2.0", "a2cd96b4b80a3883e3100a221e8adc1b98e4c3a332a8fc434c39526babafd5b3", [:mix], [{:nimble_ownership, "~> 1.0", [hex: :nimble_ownership, repo: "hexpm", optional: false]}], "hexpm", "c7b92b3cc69ee24a7eeeaf944cd7be22013c52fcb580c1f33f50845ec821089a"}, + "nimble_options": {:hex, :nimble_options, "1.1.1", "e3a492d54d85fc3fd7c5baf411d9d2852922f66e69476317787a7b2bb000a61b", [:mix], [], "hexpm", "821b2470ca9442c4b6984882fe9bb0389371b8ddec4d45a9504f00a66f650b44"}, + "nimble_ownership": {:hex, :nimble_ownership, "1.0.0", "3f87744d42c21b2042a0aa1d48c83c77e6dd9dd357e425a038dd4b49ba8b79a1", [:mix], [], "hexpm", "7c16cc74f4e952464220a73055b557a273e8b1b7ace8489ec9d86e9ad56cb2cc"}, + "nimble_parsec": {:hex, :nimble_parsec, "1.4.0", "51f9b613ea62cfa97b25ccc2c1b4216e81df970acd8e16e8d1bdc58fef21370d", [:mix], [], "hexpm", "9c565862810fb383e9838c1dd2d7d2c437b3d13b267414ba6af33e50d2d1cf28"}, + "nimble_pool": {:hex, :nimble_pool, "1.1.0", "bf9c29fbdcba3564a8b800d1eeb5a3c58f36e1e11d7b7fb2e084a643f645f06b", [:mix], [], "hexpm", "af2e4e6b34197db81f7aad230c1118eac993acc0dae6bc83bac0126d4ae0813a"}, "parse_trans": {:hex, :parse_trans, "3.4.1", "6e6aa8167cb44cc8f39441d05193be6e6f4e7c2946cb2759f015f8c56b76e5ff", [:rebar3], [], "hexpm", "620a406ce75dada827b82e453c19cf06776be266f5a67cff34e1ef2cbb60e49a"}, - "plug": {:hex, :plug, "1.15.1", "b7efd81c1a1286f13efb3f769de343236bd8b7d23b4a9f40d3002fc39ad8f74c", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "459497bd94d041d98d948054ec6c0b76feacd28eec38b219ca04c0de13c79d30"}, + "plug": {:hex, :plug, "1.16.1", "40c74619c12f82736d2214557dedec2e9762029b2438d6d175c5074c933edc9d", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:plug_crypto, "~> 1.1.1 or ~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.3 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a13ff6b9006b03d7e33874945b2755253841b238c34071ed85b0e86057f8cddc"}, "plug_cowboy": {:hex, :plug_cowboy, "2.6.1", "9a3bbfceeb65eff5f39dab529e5cd79137ac36e913c02067dba3963a26efe9b2", [:mix], [{:cowboy, "~> 2.7", [hex: :cowboy, repo: "hexpm", optional: false]}, {:cowboy_telemetry, "~> 0.3", [hex: :cowboy_telemetry, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "de36e1a21f451a18b790f37765db198075c25875c64834bcc82d90b309eb6613"}, - "plug_crypto": {:hex, :plug_crypto, "2.0.0", "77515cc10af06645abbfb5e6ad7a3e9714f805ae118fa1a70205f80d2d70fe73", [:mix], [], "hexpm", "53695bae57cc4e54566d993eb01074e4d894b65a3766f1c43e2c61a1b0f45ea9"}, + "plug_crypto": {:hex, :plug_crypto, "2.1.0", "f44309c2b06d249c27c8d3f65cfe08158ade08418cf540fd4f72d4d6863abb7b", [:mix], [], "hexpm", "131216a4b030b8f8ce0f26038bc4421ae60e4bb95c5cf5395e1421437824c4fa"}, "ranch": {:hex, :ranch, "1.8.0", "8c7a100a139fd57f17327b6413e4167ac559fbc04ca7448e9be9057311597a1d", [:make, :rebar3], [], "hexpm", "49fbcfd3682fab1f5d109351b61257676da1a2fdbe295904176d5e521a2ddfe5"}, - "req": {:hex, :req, "0.4.5", "2071bbedd280f107b9e33e1ddff2beb3991ec1ae06caa2cca2ab756393d8aca5", [:mix], [{:brotli, "~> 0.3.1", [hex: :brotli, repo: "hexpm", optional: true]}, {:ezstd, "~> 1.0", [hex: :ezstd, repo: "hexpm", optional: true]}, {:finch, "~> 0.9", [hex: :finch, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mime, "~> 1.6 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:nimble_csv, "~> 1.0", [hex: :nimble_csv, repo: "hexpm", optional: true]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "dd23e9c7303ddeb2dee09ff11ad8102cca019e38394456f265fb7b9655c64dd8"}, + "req": {:hex, :req, "0.5.6", "8fe1eead4a085510fe3d51ad854ca8f20a622aae46e97b302f499dfb84f726ac", [:mix], [{:brotli, "~> 0.3.1", [hex: :brotli, repo: "hexpm", optional: true]}, {:ezstd, "~> 1.0", [hex: :ezstd, repo: "hexpm", optional: true]}, {:finch, "~> 0.17", [hex: :finch, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mime, "~> 2.0.6 or ~> 2.1", [hex: :mime, repo: "hexpm", optional: false]}, {:nimble_csv, "~> 1.0", [hex: :nimble_csv, repo: "hexpm", optional: true]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "cfaa8e720945d46654853de39d368f40362c2641c4b2153c886418914b372185"}, "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.7", "354c321cf377240c7b8716899e182ce4890c5938111a1296add3ec74cf1715df", [:make, :mix, :rebar3], [], "hexpm", "fe4c190e8f37401d30167c8c405eda19469f34577987c76dde613e838bbc67f8"}, "sweet_xml": {:hex, :sweet_xml, "0.7.3", "debb256781c75ff6a8c5cbf7981146312b66f044a2898f453709a53e5031b45b", [:mix], [], "hexpm", "e110c867a1b3fe74bfc7dd9893aa851f0eed5518d0d7cad76d7baafd30e4f5ba"}, - "telemetry": {:hex, :telemetry, "1.2.1", "68fdfe8d8f05a8428483a97d7aab2f268aaff24b49e0f599faa091f1d4e7f61c", [:rebar3], [], "hexpm", "dad9ce9d8effc621708f99eac538ef1cbe05d6a874dd741de2e689c47feafed5"}, + "telemetry": {:hex, :telemetry, "1.3.0", "fedebbae410d715cf8e7062c96a1ef32ec22e764197f70cda73d82778d61e7a2", [:rebar3], [], "hexpm", "7015fc8919dbe63764f4b4b87a95b7c0996bd539e0d499be6ec9d7f3875b79e6"}, "unicode_util_compat": {:hex, :unicode_util_compat, "0.7.0", "bc84380c9ab48177092f43ac89e4dfa2c6d62b40b8bd132b1059ecc7232f9a78", [:rebar3], [], "hexpm", "25eee6d67df61960cf6a794239566599b09e17e668d3700247bc498638152521"}, } diff --git a/priv/endpoints.exs b/priv/endpoints.exs index 731f1d12f..2dd5e6b24 100644 --- a/priv/endpoints.exs +++ b/priv/endpoints.exs @@ -8,6 +8,7 @@ chime_identity_regions = [ chime_meeting_regions = [ "ap-south-1", + "ap-south-2", "ap-northeast-1", "ap-northeast-2", "ap-southeast-1", @@ -65,16 +66,19 @@ chime_voice_regions = [ "ap-northeast-2" => %{"description" => "Asia Pacific (Seoul)"}, "ap-east-1" => %{"description" => "Asia Pacific (Hong Kong)"}, "ap-south-1" => %{"description" => "Asia Pacific (Mumbai)"}, + "ap-south-2" => %{"description" => "Asia Pacific (Hyderabad)"}, "ap-southeast-1" => %{"description" => "Asia Pacific (Singapore)"}, "ap-southeast-2" => %{"description" => "Asia Pacific (Sydney)"}, "ap-southeast-3" => %{"description" => "Asia Pacific (Jakarta)"}, - "ca-central-1" => %{"description" => "Canada (Central)"}, + "ca-central-1" => %{"description" => "Canada (Montreal)"}, + "ca-west-1" => %{"description" => "Canada (Calgary)"}, "eu-central-1" => %{"description" => "EU (Frankfurt)"}, "eu-west-1" => %{"description" => "EU (Ireland)"}, "eu-west-2" => %{"description" => "EU (London)"}, "eu-west-3" => %{"description" => "EU (Paris)"}, "eu-north-1" => %{"description" => "EU (Stockholm)"}, "eu-south-1" => %{"description" => "EU (Milan)"}, + "eu-south-2" => %{"description" => "EU (Spain)"}, "me-south-1" => %{"description" => "Middle East (Bahrain)"}, "sa-east-1" => %{"description" => "South America (Sao Paulo)"}, "us-east-1" => %{"description" => "US East (N. Virginia)"}, @@ -91,6 +95,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -106,6 +111,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -121,6 +127,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -133,6 +140,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-southeast-1" => %{}, "eu-central-1" => %{}, + "eu-west-2" => %{}, "us-east-1" => %{}, "us-west-2" => %{} } @@ -143,6 +151,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-southeast-1" => %{}, "eu-central-1" => %{}, + "eu-west-2" => %{}, "us-east-1" => %{}, "us-west-2" => %{} } @@ -159,6 +168,23 @@ chime_voice_regions = [ "us-west-2" => %{} } }, + "codeartifact" => %{ + "endpoints" => %{ + "us-east-1" => %{}, + "us-east-2" => %{}, + "us-west-2" => %{}, + "eu-west-1" => %{}, + "eu-west-2" => %{}, + "eu-west-3" => %{}, + "eu-central-1" => %{}, + "eu-north-1" => %{}, + "eu-south-1" => %{}, + "ap-southeast-1" => %{}, + "ap-southeast-2" => %{}, + "ap-northeast-1" => %{}, + "ap-south-1" => %{} + } + }, "firehose" => %{ "endpoints" => %{ "af-south-1" => %{}, @@ -192,6 +218,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{"protocols" => ["https"]}, "ap-northeast-2" => %{"protocols" => ["https"]}, "ap-south-1" => %{"protocols" => ["https"]}, + "ap-south-2" => %{"protocols" => ["https"]}, "ap-southeast-1" => %{"protocols" => ["https"]}, "ap-southeast-2" => %{"protocols" => ["https"]}, "ca-central-1" => %{"protocols" => ["https"]}, @@ -211,10 +238,12 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-east-1" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -234,9 +263,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -249,9 +280,66 @@ chime_voice_regions = [ "us-west-2" => %{} } }, + "mobiletargeting" => %{ + "endpoints" => %{ + "us-east-1" => %{ + "hostname" => "pinpoint.us-east-1.amazonaws.com" + }, + "us-east-2" => %{ + "hostname" => "pinpoint.us-east-2.amazonaws.com" + }, + "us-west-2" => %{ + "hostname" => "pinpoint.us-west-1.amazonaws.com" + }, + "ap-south-1" => %{ + "hostname" => "pinpoint.ap-south-1.amazonaws.com" + }, + "ap-south-2" => %{ + "hostname" => "pinpoint.ap-south-2.amazonaws.com" + }, + "ap-northeast-1" => %{ + "hostname" => "pinpoint.ap-northeast-1.amazonaws.com" + }, + "ap-northeast-2" => %{ + "hostname" => "pinpoint.ap-northeast-2.amazonaws.com" + }, + "ap-southeast-1" => %{ + "hostname" => "pinpoint.ap-southeast-1.amazonaws.com" + }, + "ap-southeast-2" => %{ + "hostname" => "pinpoint.ap-southeast-2.amazonaws.com" + }, + "ca-central-1" => %{ + "hostname" => "pinpoint.ca-central-1.amazonaws.com" + }, + "eu-central-1" => %{ + "hostname" => "pinpoint.eu-central-1.amazonaws.com" + }, + "eu-west-1" => %{ + "hostname" => "pinpoint.eu-west-1.amazonaws.com" + }, + "eu-west-2" => %{ + "hostname" => "pinpoint.eu-west-2.amazonaws.com" + } + } + }, "pinpoint" => %{ "defaults" => %{"credentialScope" => %{"service" => "mobiletargeting"}}, - "endpoints" => %{"us-east-1" => %{}} + "endpoints" => %{ + "us-east-1" => %{}, + "us-east-2" => %{}, + "us-west-2" => %{}, + "ap-south-1" => %{}, + "ap-south-2" => %{}, + "ap-northeast-1" => %{}, + "ap-northeast-2" => %{}, + "ap-southeast-1" => %{}, + "ap-southeast-2" => %{}, + "ca-central-1" => %{}, + "eu-central-1" => %{}, + "eu-west-1" => %{}, + "eu-west-2" => %{} + } }, "iam" => %{ "endpoints" => %{ @@ -268,6 +356,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -286,6 +375,7 @@ chime_voice_regions = [ "af-south-1" => %{}, "ap-northeast-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -307,6 +397,7 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -353,9 +444,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -378,9 +471,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{"sslCommonName" => "{service}.{region}.{dnsSuffix}"}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -410,6 +505,7 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -432,9 +528,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -473,9 +571,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -494,9 +594,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -515,9 +617,11 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -560,9 +664,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -583,8 +689,11 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, + "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -598,6 +707,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -615,6 +725,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -637,9 +748,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -659,14 +772,17 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, "eu-west-3" => %{}, "eu-north-1" => %{}, + "eu-south-1" => %{}, "local" => %{ "credentialScope" => %{"region" => "us-east-1"}, "hostname" => "localhost:8000", @@ -688,9 +804,11 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -718,9 +836,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -739,9 +859,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -778,6 +900,7 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -828,9 +951,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -894,6 +1019,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -913,6 +1039,7 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -934,6 +1061,7 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -955,6 +1083,7 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -979,9 +1108,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -1046,9 +1177,11 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -1080,9 +1213,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -1112,15 +1247,21 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, + "ap-southeast-3" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-central-2" => %{}, + "eu-south-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, "eu-west-3" => %{}, "eu-north-1" => %{}, + "me-central-1" => %{}, + "me-south-1" => %{}, "sa-east-1" => %{}, "us-east-1" => %{}, "us-east-1-fips" => %{ @@ -1136,6 +1277,7 @@ chime_voice_regions = [ "endpoints" => %{ "ap-northeast-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "eu-west-1" => %{}, @@ -1154,6 +1296,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -1175,14 +1318,21 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, + "ap-southeast-3" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, + "eu-central-2" => %{}, + "eu-south-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, "eu-west-3" => %{}, "eu-north-1" => %{}, + "me-central-1" => %{}, + "me-south-1" => %{}, "sa-east-1" => %{}, "us-east-1" => %{"sslCommonName" => "{service}.{dnsSuffix}"}, "us-east-1-fips" => %{ @@ -1200,6 +1350,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "eu-central-1" => %{}, @@ -1225,6 +1376,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -1246,6 +1398,7 @@ chime_voice_regions = [ "us-east-1" => %{}, "us-west-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-northeast-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, @@ -1263,9 +1416,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -1283,6 +1438,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -1316,6 +1472,7 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -1338,6 +1495,7 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -1359,6 +1517,7 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -1379,9 +1538,11 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -1397,6 +1558,7 @@ chime_voice_regions = [ "endpoints" => %{ "ap-northeast-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "eu-west-1" => %{}, @@ -1413,9 +1575,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -1434,9 +1598,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -1454,9 +1620,11 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -1473,6 +1641,7 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -1496,6 +1665,7 @@ chime_voice_regions = [ "us-east-1" => %{}, "us-west-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-northeast-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, @@ -1527,6 +1697,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "eu-central-1" => %{}, @@ -1552,6 +1723,7 @@ chime_voice_regions = [ "rekognition" => %{ "endpoints" => %{ "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-southeast-1" => %{}, @@ -1632,6 +1804,7 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{ "hostname" => "s3.ap-southeast-1.amazonaws.com", "signatureVersions" => ["s3", "s3v4"] @@ -1649,6 +1822,7 @@ chime_voice_regions = [ "signatureVersions" => ["s3", "s3v4"] }, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-central-2" => %{}, "eu-west-1" => %{ @@ -1656,6 +1830,10 @@ chime_voice_regions = [ "signatureVersions" => ["s3", "s3v4"] }, "eu-south-1" => %{}, + "eu-south-2" => %{ + "hostname" => "s3.eu-south-2.amazonaws.com", + "signatureVersions" => ["s3", "s3v4"] + }, "eu-west-2" => %{}, "eu-west-3" => %{}, "eu-north-1" => %{}, @@ -1698,6 +1876,7 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -1725,6 +1904,7 @@ chime_voice_regions = [ "medialive" => %{ "endpoints" => %{ "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-southeast-1" => %{}, @@ -1752,9 +1932,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -1781,15 +1963,22 @@ chime_voice_regions = [ }, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, + "ap-southeast-3" => %{}, "aws-global" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, + "eu-central-2" => %{}, + "eu-south-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, "eu-west-3" => %{}, "eu-north-1" => %{}, + "me-central-1" => %{}, + "me-south-1" => %{}, "sa-east-1" => %{}, "us-east-1" => %{}, "us-east-1-fips" => %{ @@ -1825,9 +2014,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-central-2" => %{}, "eu-west-1" => %{}, @@ -1856,6 +2047,7 @@ chime_voice_regions = [ "us-east-2" => %{}, "us-west-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-northeast-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, @@ -1871,6 +2063,7 @@ chime_voice_regions = [ "us-east-1" => %{}, "us-west-1" => %{}, "us-west-2" => %{}, + "ca-central-1" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "eu-west-1" => %{}, @@ -1892,6 +2085,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -1917,9 +2111,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -1938,9 +2134,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -1959,6 +2157,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "eu-central-1" => %{}, @@ -1981,9 +2180,11 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -2006,9 +2207,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -2027,6 +2230,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -2061,6 +2265,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "eu-central-1" => %{}, @@ -2076,9 +2281,11 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -2107,6 +2314,7 @@ chime_voice_regions = [ "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "us-east-1" => %{}, @@ -2122,15 +2330,16 @@ chime_voice_regions = [ "us-west-2" => %{}, "af-south-1" => %{}, "ap-east-1" => %{}, - "ap-south-2" => %{}, "ap-southeast-3" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-northeast-3" => %{}, "ap-northeast-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ap-northeast-1" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -2150,6 +2359,8 @@ chime_voice_regions = [ "endpoints" => %{ "ap-northeast-2" => %{}, "ap-southeast-2" => %{}, + "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "us-east-1" => %{}, @@ -2163,9 +2374,11 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -2192,6 +2405,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -2212,9 +2426,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -2233,9 +2449,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -2273,6 +2491,7 @@ chime_voice_regions = [ "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -2288,9 +2507,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-central-2" => %{}, "eu-west-1" => %{}, @@ -2309,6 +2530,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "eu-central-1" => %{}, @@ -2324,9 +2546,11 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -2344,9 +2568,11 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -2364,6 +2590,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-2" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, @@ -2392,9 +2619,11 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -2411,9 +2640,11 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -2433,6 +2664,7 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -2474,9 +2706,11 @@ chime_voice_regions = [ "ap-northeast-1" => %{}, "ap-northeast-2" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, + "ca-west-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, "eu-west-2" => %{}, @@ -2528,65 +2762,95 @@ chime_voice_regions = [ "endpoints" => %{ "us-east-1" => %{}, "us-east-2" => %{}, - "us-west-1" => %{}, + "us-west-2" => %{}, "eu-north-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, + "eu-west-2" => %{}, "ap-northeast-1" => %{}, + "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, - "ap-southeast-2" => %{} + "ap-southeast-2" => %{}, + "ca-central-1" => %{}, + "sa-east-1" => %{}, + "us-gov-west-1" => %{} } }, "maps.geo" => %{ "endpoints" => %{ "us-east-1" => %{}, "us-east-2" => %{}, - "us-west-1" => %{}, + "us-west-2" => %{}, "eu-north-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, + "eu-west-2" => %{}, "ap-northeast-1" => %{}, + "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, - "ap-southeast-2" => %{} + "ap-southeast-2" => %{}, + "ca-central-1" => %{}, + "sa-east-1" => %{}, + "us-gov-west-1" => %{} } }, "geofencing.geo" => %{ "endpoints" => %{ "us-east-1" => %{}, "us-east-2" => %{}, - "us-west-1" => %{}, + "us-west-2" => %{}, "eu-north-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, + "eu-west-2" => %{}, "ap-northeast-1" => %{}, + "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, - "ap-southeast-2" => %{} + "ap-southeast-2" => %{}, + "ca-central-1" => %{}, + "sa-east-1" => %{}, + "us-gov-west-1" => %{} } }, "tracking.geo" => %{ "endpoints" => %{ "us-east-1" => %{}, "us-east-2" => %{}, - "us-west-1" => %{}, + "us-west-2" => %{}, "eu-north-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, + "eu-west-2" => %{}, "ap-northeast-1" => %{}, + "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, - "ap-southeast-2" => %{} + "ap-southeast-2" => %{}, + "ca-central-1" => %{}, + "sa-east-1" => %{}, + "us-gov-west-1" => %{} } }, "routes.geo" => %{ "endpoints" => %{ "us-east-1" => %{}, "us-east-2" => %{}, - "us-west-1" => %{}, + "us-west-2" => %{}, "eu-north-1" => %{}, "eu-central-1" => %{}, "eu-west-1" => %{}, + "eu-west-2" => %{}, "ap-northeast-1" => %{}, + "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, - "ap-southeast-2" => %{} + "ap-southeast-2" => %{}, + "ca-central-1" => %{}, + "sa-east-1" => %{}, + "us-gov-west-1" => %{} } }, "sso" => %{ @@ -2595,6 +2859,7 @@ chime_voice_regions = [ "ap-northeast-2" => %{}, "ap-east-1" => %{}, "ap-south-1" => %{}, + "ap-south-2" => %{}, "ap-southeast-1" => %{}, "ap-southeast-2" => %{}, "ca-central-1" => %{}, @@ -2609,6 +2874,32 @@ chime_voice_regions = [ "us-west-1" => %{}, "us-west-2" => %{} } + }, + "pipes" => %{ + "endpoints" => %{ + "af-south-1" => %{}, + "ap-northeast-1" => %{}, + "ap-northeast-2" => %{}, + "ap-east-1" => %{}, + "ap-south-1" => %{}, + "ap-south-2" => %{}, + "ap-southeast-1" => %{}, + "ap-southeast-2" => %{}, + "ap-southeast-3" => %{}, + "ca-central-1" => %{}, + "eu-central-1" => %{}, + "eu-west-1" => %{}, + "eu-west-2" => %{}, + "eu-west-3" => %{}, + "eu-north-1" => %{}, + "eu-south-1" => %{}, + "me-south-1" => %{}, + "sa-east-1" => %{}, + "us-east-1" => %{}, + "us-east-2" => %{}, + "us-west-1" => %{}, + "us-west-2" => %{} + } } } }, @@ -2852,7 +3143,10 @@ chime_voice_regions = [ "hostname" => "kms-fips.us-gov-east-1.amazonaws.com", "credentialScope" => %{"region" => "us-gov-east-1"} }, - "us-gov-west-1" => %{} + "us-gov-west-1" => %{ + "hostname" => "kms-fips.us-gov-west-1.amazonaws.com", + "credentialScope" => %{"region" => "us-gov-west-1"} + } } }, "sms" => %{"endpoints" => %{"us-gov-east-1" => %{}, "us-gov-west-1" => %{}}}, diff --git a/test/ex_aws/credentials_ini/file_test.exs b/test/ex_aws/credentials_ini/file_test.exs index 59073dd36..dc8d3fc5f 100644 --- a/test/ex_aws/credentials_ini/file_test.exs +++ b/test/ex_aws/credentials_ini/file_test.exs @@ -37,6 +37,52 @@ defmodule ExAws.CredentialsIni.File.FileTest do assert config.sso_role_name == "SomeRole" end + test "config file is parsed with sso config that uses sso_session" do + example_config = """ + [sso-session somecompany] + sso_start_url = https://start.us-gov-home.awsapps.com/directory/somecompany + sso_region = us-gov-west-1 + + [default] + sso_session = somecompany + sso_account_id = 123456789101 + sso_role_name = SomeRole + region = us-gov-west-1 + output = json + """ + + config = ExAws.CredentialsIni.File.parse_ini_file({:ok, example_config}, "default") + + assert config.sso_session == "somecompany" + assert config.sso_start_url == "https://start.us-gov-home.awsapps.com/directory/somecompany" + assert config.sso_region == "us-gov-west-1" + assert config.sso_account_id == "123456789101" + assert config.sso_role_name == "SomeRole" + end + + test "config file is parsed with non-default sso config profile that uses sso_session" do + example_config = """ + [sso-session somecompany] + sso_start_url = https://start.us-gov-home.awsapps.com/directory/somecompany + sso_region = us-gov-west-1 + + [profile somecompany] + sso_session = somecompany + sso_account_id = 123456789101 + sso_role_name = SomeRole + region = us-gov-west-1 + output = json + """ + + config = ExAws.CredentialsIni.File.parse_ini_file({:ok, example_config}, "somecompany") + + assert config.sso_session == "somecompany" + assert config.sso_start_url == "https://start.us-gov-home.awsapps.com/directory/somecompany" + assert config.sso_region == "us-gov-west-1" + assert config.sso_account_id == "123456789101" + assert config.sso_role_name == "SomeRole" + end + test "{:system} in profile name gets dynamic profile name" do System.put_env("AWS_PROFILE", "custom-profile") @@ -56,6 +102,36 @@ defmodule ExAws.CredentialsIni.File.FileTest do assert credentials.security_token == "TESTTOKEN" end + test "{:system} in profile name gets dynamic profile name using sso config" do + System.put_env("AWS_PROFILE", "custom-profile") + + example_credentials = """ + [sso-session somecompany] + sso_start_url = https://start.us-gov-home.awsapps.com/directory/somecompany + sso_region = us-gov-west-1 + + [profile custom-profile] + sso_session = somecompany + sso_account_id = 123456789101 + sso_role_name = SomeRole + region = us-gov-west-1 + output = json + """ + + credentials = + ExAws.CredentialsIni.File.parse_ini_file({:ok, example_credentials}, :system) + |> ExAws.CredentialsIni.File.replace_token_key() + + assert credentials.sso_session == "somecompany" + + assert credentials.sso_start_url == + "https://start.us-gov-home.awsapps.com/directory/somecompany" + + assert credentials.sso_region == "us-gov-west-1" + assert credentials.sso_account_id == "123456789101" + assert credentials.sso_role_name == "SomeRole" + end + test "config file is parsed" do example_config = """ [default]