import { type HostHeaderInputConfig, type HostHeaderResolvedConfig } from "@aws-sdk/middleware-host-header"; import { type UserAgentInputConfig, type UserAgentResolvedConfig } from "@aws-sdk/middleware-user-agent"; import { type RegionInputConfig, type RegionResolvedConfig } from "@smithy/config-resolver"; import { type EndpointInputConfig, type EndpointResolvedConfig } from "@smithy/middleware-endpoint"; import { type RetryInputConfig, type RetryResolvedConfig } from "@smithy/middleware-retry"; import type { HttpHandlerUserInput as __HttpHandlerUserInput } from "@smithy/protocol-http"; import { type DefaultsMode as __DefaultsMode, type SmithyConfiguration as __SmithyConfiguration, type SmithyResolvedConfiguration as __SmithyResolvedConfiguration, Client as __Client } from "@smithy/smithy-client"; import { type BodyLengthCalculator as __BodyLengthCalculator, type CheckOptionalClientConfig as __CheckOptionalClientConfig, type ChecksumConstructor as __ChecksumConstructor, type Decoder as __Decoder, type Encoder as __Encoder, type HashConstructor as __HashConstructor, type HttpHandlerOptions as __HttpHandlerOptions, type Logger as __Logger, type Provider as __Provider, type StreamCollector as __StreamCollector, type UrlParser as __UrlParser, AwsCredentialIdentityProvider, Provider, UserAgent as __UserAgent } from "@smithy/types"; import { type HttpAuthSchemeInputConfig, type HttpAuthSchemeResolvedConfig } from "./auth/httpAuthSchemeProvider"; import { CreateChatTokenCommandInput, CreateChatTokenCommandOutput } from "./commands/CreateChatTokenCommand"; import { CreateLoggingConfigurationCommandInput, CreateLoggingConfigurationCommandOutput } from "./commands/CreateLoggingConfigurationCommand"; import { CreateRoomCommandInput, CreateRoomCommandOutput } from "./commands/CreateRoomCommand"; import { DeleteLoggingConfigurationCommandInput, DeleteLoggingConfigurationCommandOutput } from "./commands/DeleteLoggingConfigurationCommand"; import { DeleteMessageCommandInput, DeleteMessageCommandOutput } from "./commands/DeleteMessageCommand"; import { DeleteRoomCommandInput, DeleteRoomCommandOutput } from "./commands/DeleteRoomCommand"; import { DisconnectUserCommandInput, DisconnectUserCommandOutput } from "./commands/DisconnectUserCommand"; import { GetLoggingConfigurationCommandInput, GetLoggingConfigurationCommandOutput } from "./commands/GetLoggingConfigurationCommand"; import { GetRoomCommandInput, GetRoomCommandOutput } from "./commands/GetRoomCommand"; import { ListLoggingConfigurationsCommandInput, ListLoggingConfigurationsCommandOutput } from "./commands/ListLoggingConfigurationsCommand"; import { ListRoomsCommandInput, ListRoomsCommandOutput } from "./commands/ListRoomsCommand"; import { ListTagsForResourceCommandInput, ListTagsForResourceCommandOutput } from "./commands/ListTagsForResourceCommand"; import { SendEventCommandInput, SendEventCommandOutput } from "./commands/SendEventCommand"; import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand"; import { UpdateLoggingConfigurationCommandInput, UpdateLoggingConfigurationCommandOutput } from "./commands/UpdateLoggingConfigurationCommand"; import { UpdateRoomCommandInput, UpdateRoomCommandOutput } from "./commands/UpdateRoomCommand"; import { ClientInputEndpointParameters, ClientResolvedEndpointParameters, EndpointParameters } from "./endpoint/EndpointParameters"; import { type RuntimeExtension, type RuntimeExtensionsConfig } from "./runtimeExtensions"; export { __Client }; /** * @public */ export type ServiceInputTypes = CreateChatTokenCommandInput | CreateLoggingConfigurationCommandInput | CreateRoomCommandInput | DeleteLoggingConfigurationCommandInput | DeleteMessageCommandInput | DeleteRoomCommandInput | DisconnectUserCommandInput | GetLoggingConfigurationCommandInput | GetRoomCommandInput | ListLoggingConfigurationsCommandInput | ListRoomsCommandInput | ListTagsForResourceCommandInput | SendEventCommandInput | TagResourceCommandInput | UntagResourceCommandInput | UpdateLoggingConfigurationCommandInput | UpdateRoomCommandInput; /** * @public */ export type ServiceOutputTypes = CreateChatTokenCommandOutput | CreateLoggingConfigurationCommandOutput | CreateRoomCommandOutput | DeleteLoggingConfigurationCommandOutput | DeleteMessageCommandOutput | DeleteRoomCommandOutput | DisconnectUserCommandOutput | GetLoggingConfigurationCommandOutput | GetRoomCommandOutput | ListLoggingConfigurationsCommandOutput | ListRoomsCommandOutput | ListTagsForResourceCommandOutput | SendEventCommandOutput | TagResourceCommandOutput | UntagResourceCommandOutput | UpdateLoggingConfigurationCommandOutput | UpdateRoomCommandOutput; /** * @public */ export interface ClientDefaults extends Partial<__SmithyConfiguration<__HttpHandlerOptions>> { /** * The HTTP handler to use or its constructor options. Fetch in browser and Https in Nodejs. */ requestHandler?: __HttpHandlerUserInput; /** * A constructor for a class implementing the {@link @smithy/types#ChecksumConstructor} interface * that computes the SHA-256 HMAC or checksum of a string or binary buffer. * @internal */ sha256?: __ChecksumConstructor | __HashConstructor; /** * The function that will be used to convert strings into HTTP endpoints. * @internal */ urlParser?: __UrlParser; /** * A function that can calculate the length of a request body. * @internal */ bodyLengthChecker?: __BodyLengthCalculator; /** * A function that converts a stream into an array of bytes. * @internal */ streamCollector?: __StreamCollector; /** * The function that will be used to convert a base64-encoded string to a byte array. * @internal */ base64Decoder?: __Decoder; /** * The function that will be used to convert binary data to a base64-encoded string. * @internal */ base64Encoder?: __Encoder; /** * The function that will be used to convert a UTF8-encoded string to a byte array. * @internal */ utf8Decoder?: __Decoder; /** * The function that will be used to convert binary data to a UTF-8 encoded string. * @internal */ utf8Encoder?: __Encoder; /** * The runtime environment. * @internal */ runtime?: string; /** * Disable dynamically changing the endpoint of the client based on the hostPrefix * trait of an operation. */ disableHostPrefix?: boolean; /** * Unique service identifier. * @internal */ serviceId?: string; /** * Enables IPv6/IPv4 dualstack endpoint. */ useDualstackEndpoint?: boolean | __Provider; /** * Enables FIPS compatible endpoints. */ useFipsEndpoint?: boolean | __Provider; /** * The AWS region to which this client will send requests */ region?: string | __Provider; /** * Setting a client profile is similar to setting a value for the * AWS_PROFILE environment variable. Setting a profile on a client * in code only affects the single client instance, unlike AWS_PROFILE. * * When set, and only for environments where an AWS configuration * file exists, fields configurable by this file will be retrieved * from the specified profile within that file. * Conflicting code configuration and environment variables will * still have higher priority. * * For client credential resolution that involves checking the AWS * configuration file, the client's profile (this value) will be * used unless a different profile is set in the credential * provider options. * */ profile?: string; /** * The provider populating default tracking information to be sent with `user-agent`, `x-amz-user-agent` header * @internal */ defaultUserAgentProvider?: Provider<__UserAgent>; /** * Default credentials provider; Not available in browser runtime. * @deprecated * @internal */ credentialDefaultProvider?: (input: any) => AwsCredentialIdentityProvider; /** * Value for how many times a request will be made at most in case of retry. */ maxAttempts?: number | __Provider; /** * Specifies which retry algorithm to use. * @see https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-smithy-util-retry/Enum/RETRY_MODES/ * */ retryMode?: string | __Provider; /** * Optional logger for logging debug/info/warn/error. */ logger?: __Logger; /** * Optional extensions */ extensions?: RuntimeExtension[]; /** * The {@link @smithy/smithy-client#DefaultsMode} that will be used to determine how certain default configuration options are resolved in the SDK. */ defaultsMode?: __DefaultsMode | __Provider<__DefaultsMode>; } /** * @public */ export type IvschatClientConfigType = Partial<__SmithyConfiguration<__HttpHandlerOptions>> & ClientDefaults & UserAgentInputConfig & RetryInputConfig & RegionInputConfig & HostHeaderInputConfig & EndpointInputConfig & HttpAuthSchemeInputConfig & ClientInputEndpointParameters; /** * @public * * The configuration interface of IvschatClient class constructor that set the region, credentials and other options. */ export interface IvschatClientConfig extends IvschatClientConfigType { } /** * @public */ export type IvschatClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHandlerOptions> & Required & RuntimeExtensionsConfig & UserAgentResolvedConfig & RetryResolvedConfig & RegionResolvedConfig & HostHeaderResolvedConfig & EndpointResolvedConfig & HttpAuthSchemeResolvedConfig & ClientResolvedEndpointParameters; /** * @public * * The resolved configuration interface of IvschatClient class. This is resolved and normalized from the {@link IvschatClientConfig | constructor configuration interface}. */ export interface IvschatClientResolvedConfig extends IvschatClientResolvedConfigType { } /** *

* Introduction *

*

The Amazon IVS Chat control-plane API enables you to create and manage Amazon IVS Chat * resources. You also need to integrate with the Amazon IVS Chat Messaging * API, to enable users to interact with chat rooms in real time.

*

The API is an AWS regional service. For a list of supported regions and Amazon IVS Chat * HTTPS service endpoints, see the Amazon IVS Chat information on the Amazon IVS page in the * AWS General Reference.

*

This document describes HTTP operations. There is a separate messaging API * for managing Chat resources; see the Amazon IVS Chat Messaging API * Reference.

*

* Notes on terminology: *

*
    *
  • *

    You create service applications using the Amazon IVS Chat API. We refer to these as * applications.

    *
  • *
  • *

    You create front-end client applications (browser and Android/iOS apps) using the * Amazon IVS Chat Messaging API. We refer to these as clients.

    *
  • *
*

* Resources *

*

The following resources are part of Amazon IVS Chat:

*
    *
  • *

    * LoggingConfiguration — A configuration that allows customers to store and record sent messages in a chat room. See the Logging Configuration endpoints for more information.

    *
  • *
  • *

    * Room — The central Amazon IVS Chat resource through * which clients connect to and exchange chat messages. See the Room endpoints for more * information.

    *
  • *
*

* Tagging *

*

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 Best practices and strategies in Tagging Amazon Web Services Resources and Tag Editor for details, including restrictions that apply to tags and "Tag naming limits and requirements"; Amazon IVS Chat 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 * same tag for different resources to indicate that they are related. You can also use tags to * manage access (see Access Tags).

*

The Amazon IVS Chat API has these tag-related operations: TagResource, UntagResource, and * ListTagsForResource. The following resource supports tagging: Room.

*

At most 50 tags can be applied to a resource.

*

* API Access Security *

*

Your Amazon IVS Chat applications (service applications and clients) must be authenticated * and authorized to access Amazon IVS Chat resources. Note the differences between these * concepts:

*
    *
  • *

    * Authentication is about verifying identity. Requests to the * Amazon IVS Chat API must be signed to verify your identity.

    *
  • *
  • *

    * Authorization is about granting permissions. Your IAM roles need * to have permissions for Amazon IVS Chat API requests.

    *
  • *
*

Users (viewers) connect to a room using secure access tokens that you create using the * CreateChatToken operation through the AWS SDK. You call CreateChatToken for * every user’s chat session, passing identity and authorization information about the * user.

*

* Signing API Requests *

*

HTTP API requests must be signed with an AWS SigV4 signature using your AWS security * credentials. The AWS Command Line Interface (CLI) and the AWS SDKs take care of signing the * underlying API calls for you. However, if your application calls the Amazon IVS Chat HTTP API * directly, it’s your responsibility to sign the requests.

*

You generate a signature using valid AWS credentials for an IAM role that has permission * to perform the requested action. For example, DeleteMessage requests must be made using an IAM * role that has the ivschat:DeleteMessage permission.

*

For more information:

* *

* Amazon Resource Names (ARNs) *

*

ARNs uniquely identify AWS resources. An ARN is required when you need to specify a * resource unambiguously across all of AWS, such as in IAM policies and API calls. For more * information, see Amazon Resource Names in the AWS General * Reference.

* @public */ export declare class IvschatClient extends __Client<__HttpHandlerOptions, ServiceInputTypes, ServiceOutputTypes, IvschatClientResolvedConfig> { /** * The resolved configuration of IvschatClient class. This is resolved and normalized from the {@link IvschatClientConfig | constructor configuration interface}. */ readonly config: IvschatClientResolvedConfig; constructor(...[configuration]: __CheckOptionalClientConfig); /** * Destroy underlying resources, like sockets. It's usually not necessary to do this. * However in Node.js, it's best to explicitly shut down the client's agent when it is no longer needed. * Otherwise, sockets might stay open for quite a long time before the server terminates them. */ destroy(): void; }