diff --git a/.latest-tag-aws-sdk-go b/.latest-tag-aws-sdk-go index f227bd4c..43d34a80 100644 --- a/.latest-tag-aws-sdk-go +++ b/.latest-tag-aws-sdk-go @@ -1 +1 @@ -release-2024-09-06 +release-2024-09-09 diff --git a/lib/aws/generated/dynamodb.ex b/lib/aws/generated/dynamodb.ex index 32b10859..af682548 100644 --- a/lib/aws/generated/dynamodb.ex +++ b/lib/aws/generated/dynamodb.ex @@ -5169,6 +5169,20 @@ defmodule AWS.DynamoDB do per account. + * + + `TagResource` is an asynchronous operation. If you issue a `ListTagsOfResource` + request immediately after a `TagResource` request, DynamoDB might return your + previous tag set, if there was one, or an empty tag set. This is because + `ListTagsOfResource` uses an eventually consistent query, and the metadata for + your tags or table might not be available at that moment. Wait for a few + seconds, and then try the `ListTagsOfResource` request again. + + * + The application or removal of tags using `TagResource` and `UntagResource` APIs + is eventually consistent. `ListTagsOfResource` API will only reflect the changes + after a few seconds. + For an overview on tagging DynamoDB resources, see [Tagging for DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html) in the *Amazon DynamoDB Developer Guide*. """ @@ -5318,6 +5332,20 @@ defmodule AWS.DynamoDB do You can call `UntagResource` up to five times per second, per account. + * + + `UntagResource` is an asynchronous operation. If you issue a + `ListTagsOfResource` request immediately after an `UntagResource` request, + DynamoDB might return your previous tag set, if there was one, or an empty tag + set. This is because `ListTagsOfResource` uses an eventually consistent query, + and the metadata for your tags or table might not be available at that moment. + Wait for a few seconds, and then try the `ListTagsOfResource` request again. + + * + The application or removal of tags using `TagResource` and `UntagResource` APIs + is eventually consistent. `ListTagsOfResource` API will only reflect the changes + after a few seconds. + For an overview on tagging DynamoDB resources, see [Tagging for DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html) in the *Amazon DynamoDB Developer Guide*. """ diff --git a/lib/aws/generated/ivs_real_time.ex b/lib/aws/generated/ivs_real_time.ex index 2dc6144e..5a1db00f 100644 --- a/lib/aws/generated/ivs_real_time.ex +++ b/lib/aws/generated/ivs_real_time.ex @@ -38,7 +38,7 @@ defmodule AWS.IVSRealTime do **Composition process** — Composites participants of a stage into a single video and forwards it to a set of outputs (e.g., IVS channels). - Composition endpoints support this process. + Composition operations support this process. * @@ -53,11 +53,11 @@ defmodule AWS.IVSRealTime do A *tag* is a metadata label that you assign to an AWS resource. A tag comprises a *key* and a *value*, both set by you. For example, you might set a tag as `topic:nature` to label a particular video - category. See [Tagging AWS Resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) for - more information, including restrictions that apply to - tags and "Tag naming limits and requirements"; Amazon IVS stages has no - service-specific - constraints beyond what is documented there. + category. See [Best practices and strategies](https://docs.aws.amazon.com/tag-editor/latest/userguide/best-practices-and-strats.html) + in *Tagging AWS Resources and Tag Editor* for details, including restrictions + that apply to tags and "Tag naming + limits and requirements"; Amazon IVS stages has no service-specific constraints + beyond what is documented there. Tags can help you identify and organize your AWS resources. For example, you can use the @@ -65,7 +65,7 @@ defmodule AWS.IVSRealTime do use tags to manage access (see [Access Tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)). - The Amazon IVS real-time API has these tag-related endpoints: `TagResource`, + The Amazon IVS real-time API has these tag-related operations: `TagResource`, `UntagResource`, and `ListTagsForResource`. The following resource supports tagging: Stage. @@ -104,6 +104,26 @@ defmodule AWS.IVSRealTime do @typedoc """ + ## Example: + + ingest_configuration() :: %{ + "arn" => String.t(), + "attributes" => map(), + "ingestProtocol" => list(any()), + "name" => String.t(), + "participantId" => String.t(), + "stageArn" => String.t(), + "state" => String.t(), + "streamKey" => String.t(), + "tags" => map(), + "userId" => String.t() + } + + """ + @type ingest_configuration() :: %{String.t() => any()} + + @typedoc """ + ## Example: get_composition_response() :: %{ @@ -217,6 +237,7 @@ defmodule AWS.IVSRealTime do "osName" => String.t(), "osVersion" => String.t(), "participantId" => String.t(), + "protocol" => list(any()), "published" => boolean(), "recordingS3BucketName" => String.t(), "recordingS3Prefix" => String.t(), @@ -231,6 +252,17 @@ defmodule AWS.IVSRealTime do @typedoc """ + ## Example: + + create_ingest_configuration_response() :: %{ + "ingestConfiguration" => ingest_configuration() + } + + """ + @type create_ingest_configuration_response() :: %{String.t() => any()} + + @typedoc """ + ## Example: get_stage_response() :: %{ @@ -253,6 +285,23 @@ defmodule AWS.IVSRealTime do @typedoc """ + ## Example: + + create_ingest_configuration_request() :: %{ + optional("attributes") => map(), + optional("insecureIngest") => boolean(), + optional("name") => String.t(), + optional("stageArn") => String.t(), + optional("tags") => map(), + optional("userId") => String.t(), + required("ingestProtocol") => list(any()) + } + + """ + @type create_ingest_configuration_request() :: %{String.t() => any()} + + @typedoc """ + ## Example: untag_resource_response() :: %{} @@ -328,6 +377,17 @@ defmodule AWS.IVSRealTime do @typedoc """ + ## Example: + + get_ingest_configuration_response() :: %{ + "ingestConfiguration" => ingest_configuration() + } + + """ + @type get_ingest_configuration_response() :: %{String.t() => any()} + + @typedoc """ + ## Example: list_compositions_request() :: %{ @@ -358,6 +418,18 @@ defmodule AWS.IVSRealTime do @typedoc """ + ## Example: + + list_ingest_configurations_response() :: %{ + "ingestConfigurations" => list(ingest_configuration_summary()()), + "nextToken" => String.t() + } + + """ + @type list_ingest_configurations_response() :: %{String.t() => any()} + + @typedoc """ + ## Example: disconnect_participant_response() :: %{} @@ -371,6 +443,8 @@ defmodule AWS.IVSRealTime do stage_endpoints() :: %{ "events" => String.t(), + "rtmp" => String.t(), + "rtmps" => String.t(), "whip" => String.t() } @@ -427,6 +501,18 @@ defmodule AWS.IVSRealTime do @typedoc """ + ## Example: + + update_ingest_configuration_request() :: %{ + optional("stageArn") => String.t(), + required("arn") => String.t() + } + + """ + @type update_ingest_configuration_request() :: %{String.t() => any()} + + @typedoc """ + ## Example: storage_configuration_summary() :: %{ @@ -627,6 +713,18 @@ defmodule AWS.IVSRealTime do @typedoc """ + ## Example: + + delete_ingest_configuration_request() :: %{ + optional("force") => boolean(), + required("arn") => String.t() + } + + """ + @type delete_ingest_configuration_request() :: %{String.t() => any()} + + @typedoc """ + ## Example: list_participants_response() :: %{ @@ -639,6 +737,20 @@ defmodule AWS.IVSRealTime do @typedoc """ + ## Example: + + list_ingest_configurations_request() :: %{ + optional("filterByStageArn") => String.t(), + optional("filterByState") => String.t(), + optional("maxResults") => integer(), + optional("nextToken") => String.t() + } + + """ + @type list_ingest_configurations_request() :: %{String.t() => any()} + + @typedoc """ + ## Example: channel_destination_configuration() :: %{ @@ -844,6 +956,17 @@ defmodule AWS.IVSRealTime do @typedoc """ + ## Example: + + update_ingest_configuration_response() :: %{ + "ingestConfiguration" => ingest_configuration() + } + + """ + @type update_ingest_configuration_response() :: %{String.t() => any()} + + @typedoc """ + ## Example: stage_session_summary() :: %{ @@ -930,6 +1053,23 @@ defmodule AWS.IVSRealTime do @typedoc """ + ## Example: + + ingest_configuration_summary() :: %{ + "arn" => String.t(), + "ingestProtocol" => list(any()), + "name" => String.t(), + "participantId" => String.t(), + "stageArn" => String.t(), + "state" => String.t(), + "userId" => String.t() + } + + """ + @type ingest_configuration_summary() :: %{String.t() => any()} + + @typedoc """ + ## Example: delete_public_key_response() :: %{} @@ -954,7 +1094,7 @@ defmodule AWS.IVSRealTime do ## Example: event() :: %{ - "errorCode" => String.t(), + "errorCode" => list(any()), "eventTime" => non_neg_integer(), "name" => String.t(), "participantId" => String.t(), @@ -1072,6 +1212,17 @@ defmodule AWS.IVSRealTime do @typedoc """ + ## Example: + + get_ingest_configuration_request() :: %{ + required("arn") => String.t() + } + + """ + @type get_ingest_configuration_request() :: %{String.t() => any()} + + @typedoc """ + ## Example: validation_exception() :: %{ @@ -1327,6 +1478,15 @@ defmodule AWS.IVSRealTime do """ @type list_participant_events_response() :: %{String.t() => any()} + @typedoc """ + + ## Example: + + delete_ingest_configuration_response() :: %{} + + """ + @type delete_ingest_configuration_response() :: %{} + @type create_encoder_configuration_errors() :: pending_verification() | validation_exception() @@ -1336,6 +1496,12 @@ defmodule AWS.IVSRealTime do | resource_not_found_exception() | conflict_exception() + @type create_ingest_configuration_errors() :: + pending_verification() + | validation_exception() + | access_denied_exception() + | service_quota_exceeded_exception() + @type create_participant_token_errors() :: pending_verification() | validation_exception() @@ -1366,6 +1532,13 @@ defmodule AWS.IVSRealTime do | resource_not_found_exception() | conflict_exception() + @type delete_ingest_configuration_errors() :: + pending_verification() + | validation_exception() + | access_denied_exception() + | resource_not_found_exception() + | conflict_exception() + @type delete_public_key_errors() :: pending_verification() | validation_exception() @@ -1410,6 +1583,9 @@ defmodule AWS.IVSRealTime do | resource_not_found_exception() | conflict_exception() + @type get_ingest_configuration_errors() :: + validation_exception() | access_denied_exception() | resource_not_found_exception() + @type get_participant_errors() :: validation_exception() | access_denied_exception() | resource_not_found_exception() @@ -1451,6 +1627,8 @@ defmodule AWS.IVSRealTime do | service_quota_exceeded_exception() | conflict_exception() + @type list_ingest_configurations_errors() :: validation_exception() | access_denied_exception() + @type list_participant_events_errors() :: validation_exception() | access_denied_exception() @type list_participants_errors() :: validation_exception() | access_denied_exception() @@ -1495,6 +1673,13 @@ defmodule AWS.IVSRealTime do @type untag_resource_errors() :: validation_exception() | internal_server_exception() | resource_not_found_exception() + @type update_ingest_configuration_errors() :: + pending_verification() + | validation_exception() + | access_denied_exception() + | resource_not_found_exception() + | conflict_exception() + @type update_stage_errors() :: pending_verification() | validation_exception() @@ -1546,6 +1731,34 @@ defmodule AWS.IVSRealTime do ) end + @doc """ + Creates a new IngestConfiguration resource, used to specify the ingest protocol + for a stage. + """ + @spec create_ingest_configuration(map(), create_ingest_configuration_request(), list()) :: + {:ok, create_ingest_configuration_response(), any()} + | {:error, {:unexpected_response, any()}} + | {:error, create_ingest_configuration_errors()} + def create_ingest_configuration(%Client{} = client, input, options \\ []) do + url_path = "/CreateIngestConfiguration" + headers = [] + query_params = [] + + meta = metadata() + + Request.request_rest( + client, + meta, + :post, + url_path, + query_params, + headers, + input, + options, + 200 + ) + end + @doc """ Creates an additional token for a specified stage. @@ -1669,6 +1882,37 @@ defmodule AWS.IVSRealTime do ) end + @doc """ + Deletes a specified IngestConfiguration, so it can no longer be used to + broadcast. + + An IngestConfiguration cannot be deleted if the publisher is actively streaming + to a stage, unless `force` is set to `true`. + """ + @spec delete_ingest_configuration(map(), delete_ingest_configuration_request(), list()) :: + {:ok, delete_ingest_configuration_response(), any()} + | {:error, {:unexpected_response, any()}} + | {:error, delete_ingest_configuration_errors()} + def delete_ingest_configuration(%Client{} = client, input, options \\ []) do + url_path = "/DeleteIngestConfiguration" + headers = [] + query_params = [] + + meta = metadata() + + Request.request_rest( + client, + meta, + :post, + url_path, + query_params, + headers, + input, + options, + 200 + ) + end + @doc """ Deletes the specified public key used to sign stage participant tokens. @@ -1701,6 +1945,11 @@ defmodule AWS.IVSRealTime do @doc """ Shuts down and deletes the specified stage (disconnecting all participants). + + This operation also + removes the `stageArn` from the associated `IngestConfiguration`, if there are + participants + using the IngestConfiguration to publish to the stage. """ @spec delete_stage(map(), delete_stage_request(), list()) :: {:ok, delete_stage_response(), any()} @@ -1760,9 +2009,11 @@ defmodule AWS.IVSRealTime do end @doc """ - Disconnects a specified participant and revokes the participant permanently from - a - specified stage. + Disconnects a specified participant from a specified stage. + + If the participant is publishing using + an `IngestConfiguration`, DisconnectParticipant also updates the `stageArn` + in the IngestConfiguration to be an empty string. """ @spec disconnect_participant(map(), disconnect_participant_request(), list()) :: {:ok, disconnect_participant_response(), any()} @@ -1842,6 +2093,33 @@ defmodule AWS.IVSRealTime do ) end + @doc """ + Gets information about the specified IngestConfiguration. + """ + @spec get_ingest_configuration(map(), get_ingest_configuration_request(), list()) :: + {:ok, get_ingest_configuration_response(), any()} + | {:error, {:unexpected_response, any()}} + | {:error, get_ingest_configuration_errors()} + def get_ingest_configuration(%Client{} = client, input, options \\ []) do + url_path = "/GetIngestConfiguration" + headers = [] + query_params = [] + + meta = metadata() + + Request.request_rest( + client, + meta, + :post, + url_path, + query_params, + headers, + input, + options, + 200 + ) + end + @doc """ Gets information about the specified participant token. """ @@ -2062,6 +2340,34 @@ defmodule AWS.IVSRealTime do ) end + @doc """ + Lists all IngestConfigurations in your account, in the AWS region where the API + request is processed. + """ + @spec list_ingest_configurations(map(), list_ingest_configurations_request(), list()) :: + {:ok, list_ingest_configurations_response(), any()} + | {:error, {:unexpected_response, any()}} + | {:error, list_ingest_configurations_errors()} + def list_ingest_configurations(%Client{} = client, input, options \\ []) do + url_path = "/ListIngestConfigurations" + headers = [] + query_params = [] + + meta = metadata() + + Request.request_rest( + client, + meta, + :post, + url_path, + query_params, + headers, + input, + options, + 200 + ) + end + @doc """ Lists events for a specified participant that occurred during a specified stage session. @@ -2250,7 +2556,7 @@ defmodule AWS.IVSRealTime do Starts a Composition from a stage based on the configuration provided in the request. - A Composition is an ephemeral resource that exists after this endpoint returns + A Composition is an ephemeral resource that exists after this operation returns successfully. Composition stops and the resource is deleted: * @@ -2384,6 +2690,36 @@ defmodule AWS.IVSRealTime do ) end + @doc """ + Updates a specified IngestConfiguration. + + Only the stage ARN attached to the IngestConfiguration can be updated. An + IngestConfiguration that is active cannot be updated. + """ + @spec update_ingest_configuration(map(), update_ingest_configuration_request(), list()) :: + {:ok, update_ingest_configuration_response(), any()} + | {:error, {:unexpected_response, any()}} + | {:error, update_ingest_configuration_errors()} + def update_ingest_configuration(%Client{} = client, input, options \\ []) do + url_path = "/UpdateIngestConfiguration" + headers = [] + query_params = [] + + meta = metadata() + + Request.request_rest( + client, + meta, + :post, + url_path, + query_params, + headers, + input, + options, + 200 + ) + end + @doc """ Updates a stage’s configuration. """ diff --git a/lib/aws/generated/kafka.ex b/lib/aws/generated/kafka.ex index 98a45648..2e785374 100644 --- a/lib/aws/generated/kafka.ex +++ b/lib/aws/generated/kafka.ex @@ -920,6 +920,7 @@ defmodule AWS.Kafka do "CopyTopicConfigurations" => boolean(), "DetectAndCopyNewTopics" => boolean(), "StartingPosition" => replication_starting_position(), + "TopicNameConfiguration" => replication_topic_name_configuration(), "TopicsToExclude" => list(String.t()()), "TopicsToReplicate" => list(String.t()()) } @@ -1415,6 +1416,17 @@ defmodule AWS.Kafka do @typedoc """ + ## Example: + + replication_topic_name_configuration() :: %{ + "Type" => list(any()) + } + + """ + @type replication_topic_name_configuration() :: %{String.t() => any()} + + @typedoc """ + ## Example: vpc_connectivity_client_authentication() :: %{ @@ -3390,6 +3402,12 @@ defmodule AWS.Kafka do @doc """ A list of brokers that a client application can use to bootstrap. + + This list doesn't necessarily include all of the brokers in the cluster. The + following Python 3.6 example shows how you can use the Amazon Resource Name + (ARN) of a cluster to get its bootstrap brokers. If you don't know the ARN of + your cluster, you can use the `ListClusters` operation to get the ARNs of all + the clusters in this account and Region. """ @spec get_bootstrap_brokers(map(), String.t(), list()) :: {:ok, get_bootstrap_brokers_response(), any()} diff --git a/lib/aws/generated/sage_maker.ex b/lib/aws/generated/sage_maker.ex index a46aafc6..bc8f4797 100644 --- a/lib/aws/generated/sage_maker.ex +++ b/lib/aws/generated/sage_maker.ex @@ -1537,6 +1537,8 @@ defmodule AWS.SageMaker do "CreationTime" => non_neg_integer(), "FailureMessage" => String.t(), "InstanceGroups" => list(cluster_instance_group_details()()), + "NodeRecovery" => list(any()), + "Orchestrator" => cluster_orchestrator(), "VpcConfig" => vpc_config() } @@ -4406,6 +4408,17 @@ defmodule AWS.SageMaker do @typedoc """ + ## Example: + + cluster_orchestrator() :: %{ + "Eks" => cluster_orchestrator_eks_config() + } + + """ + @type cluster_orchestrator() :: %{String.t() => any()} + + @typedoc """ + ## Example: describe_feature_metadata_request() :: %{ @@ -4914,6 +4927,7 @@ defmodule AWS.SageMaker do ## Example: update_cluster_request() :: %{ + optional("NodeRecovery") => list(any()), required("ClusterName") => String.t(), required("InstanceGroups") => list(cluster_instance_group_specification()()) } @@ -6469,6 +6483,8 @@ defmodule AWS.SageMaker do ## Example: create_cluster_request() :: %{ + optional("NodeRecovery") => list(any()), + optional("Orchestrator") => cluster_orchestrator(), optional("Tags") => list(tag()()), optional("VpcConfig") => vpc_config(), required("ClusterName") => String.t(), @@ -7725,6 +7741,17 @@ defmodule AWS.SageMaker do @typedoc """ + ## Example: + + cluster_orchestrator_eks_config() :: %{ + "ClusterArn" => String.t() + } + + """ + @type cluster_orchestrator_eks_config() :: %{String.t() => any()} + + @typedoc """ + ## Example: list_images_request() :: %{ @@ -14202,6 +14229,7 @@ defmodule AWS.SageMaker do "InstanceStorageConfigs" => list(list()()), "InstanceType" => list(any()), "LifeCycleConfig" => cluster_life_cycle_config(), + "OnStartDeepHealthChecks" => list(list(any())()), "ThreadsPerCore" => integer() } @@ -16378,6 +16406,7 @@ defmodule AWS.SageMaker do "InstanceStorageConfigs" => list(list()()), "InstanceType" => list(any()), "LifeCycleConfig" => cluster_life_cycle_config(), + "OnStartDeepHealthChecks" => list(list(any())()), "TargetCount" => integer(), "ThreadsPerCore" => integer() } diff --git a/lib/aws/generated/sage_maker_runtime.ex b/lib/aws/generated/sage_maker_runtime.ex index e1ac14ae..a8005139 100644 --- a/lib/aws/generated/sage_maker_runtime.ex +++ b/lib/aws/generated/sage_maker_runtime.ex @@ -83,6 +83,7 @@ defmodule AWS.SageMakerRuntime do optional("EnableExplanations") => String.t(), optional("InferenceComponentName") => String.t(), optional("InferenceId") => String.t(), + optional("SessionId") => String.t(), optional("TargetContainerHostname") => String.t(), optional("TargetModel") => String.t(), optional("TargetVariant") => String.t(), @@ -98,9 +99,11 @@ defmodule AWS.SageMakerRuntime do invoke_endpoint_output() :: %{ "Body" => binary(), + "ClosedSessionId" => String.t(), "ContentType" => String.t(), "CustomAttributes" => String.t(), - "InvokedProductionVariant" => String.t() + "InvokedProductionVariant" => String.t(), + "NewSessionId" => String.t() } """ @@ -116,6 +119,7 @@ defmodule AWS.SageMakerRuntime do optional("CustomAttributes") => String.t(), optional("InferenceComponentName") => String.t(), optional("InferenceId") => String.t(), + optional("SessionId") => String.t(), optional("TargetContainerHostname") => String.t(), optional("TargetVariant") => String.t(), required("Body") => binary() @@ -288,6 +292,7 @@ defmodule AWS.SageMakerRuntime do {"EnableExplanations", "X-Amzn-SageMaker-Enable-Explanations"}, {"InferenceComponentName", "X-Amzn-SageMaker-Inference-Component"}, {"InferenceId", "X-Amzn-SageMaker-Inference-Id"}, + {"SessionId", "X-Amzn-SageMaker-Session-Id"}, {"TargetContainerHostname", "X-Amzn-SageMaker-Target-Container-Hostname"}, {"TargetModel", "X-Amzn-SageMaker-Target-Model"}, {"TargetVariant", "X-Amzn-SageMaker-Target-Variant"} @@ -301,9 +306,11 @@ defmodule AWS.SageMakerRuntime do options, :response_header_parameters, [ + {"X-Amzn-SageMaker-Closed-Session-Id", "ClosedSessionId"}, {"Content-Type", "ContentType"}, {"X-Amzn-SageMaker-Custom-Attributes", "CustomAttributes"}, - {"x-Amzn-Invoked-Production-Variant", "InvokedProductionVariant"} + {"x-Amzn-Invoked-Production-Variant", "InvokedProductionVariant"}, + {"X-Amzn-SageMaker-New-Session-Id", "NewSessionId"} ] ) @@ -470,6 +477,7 @@ defmodule AWS.SageMakerRuntime do {"CustomAttributes", "X-Amzn-SageMaker-Custom-Attributes"}, {"InferenceComponentName", "X-Amzn-SageMaker-Inference-Component"}, {"InferenceId", "X-Amzn-SageMaker-Inference-Id"}, + {"SessionId", "X-Amzn-SageMaker-Session-Id"}, {"TargetContainerHostname", "X-Amzn-SageMaker-Target-Container-Hostname"}, {"TargetVariant", "X-Amzn-SageMaker-Target-Variant"} ]