// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.

// Package ivs provides the client and types for making API
// requests to Amazon Interactive Video Service.
//
// # Introduction
//
// The Amazon Interactive Video Service (IVS) API is REST compatible, using
// a standard HTTP API and an Amazon Web Services EventBridge event stream for
// responses. JSON is used for both requests and responses, including errors.
//
// The API is an Amazon Web Services regional service. For a list of supported
// regions and Amazon IVS HTTPS service endpoints, see the Amazon IVS page (https://docs.aws.amazon.com/general/latest/gr/ivs.html)
// in the Amazon Web Services General Reference.
//
//	All API request parameters and URLs are case sensitive.
//
// For a summary of notable documentation changes in each release, see Document
// History (https://docs.aws.amazon.com/ivs/latest/userguide/doc-history.html).
//
// Allowed Header Values
//
//   - Accept: application/json
//
//   - Accept-Encoding: gzip, deflate
//
//   - Content-Type: application/json
//
// # Resources
//
// The following resources contain information about your IVS live stream (see
// Getting Started with Amazon IVS (https://docs.aws.amazon.com/ivs/latest/userguide/getting-started.html)):
//
//   - Channel — Stores configuration data related to your live stream. You
//     first create a channel and then use the channel’s stream key to start
//     your live stream. See the Channel endpoints for more information.
//
//   - Stream key — An identifier assigned by Amazon IVS when you create
//     a channel, which is then used to authorize streaming. See the StreamKey
//     endpoints for more information. Treat the stream key like a secret, since
//     it allows anyone to stream to the channel.
//
//   - Playback key pair — Video playback may be restricted using playback-authorization
//     tokens, which use public-key encryption. A playback key pair is the public-private
//     pair of keys used to sign and validate the playback-authorization token.
//     See the PlaybackKeyPair endpoints for more information.
//
//   - Recording configuration — Stores configuration related to recording
//     a live stream and where to store the recorded content. Multiple channels
//     can reference the same recording configuration. See the Recording Configuration
//     endpoints for more information.
//
// # Tagging
//
// A tag is a metadata label that you assign to an Amazon Web Services 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
// Amazon Web Services 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 has no service-specific constraints
// beyond what is documented there.
//
// Tags can help you identify and organize your Amazon Web Services 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 (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)).
//
// The Amazon IVS API has these tag-related endpoints: TagResource, UntagResource,
// and ListTagsForResource. The following resources support tagging: Channels,
// Stream Keys, Playback Key Pairs, and Recording Configurations.
//
// At most 50 tags can be applied to a resource.
//
// # Authentication versus Authorization
//
// Note the differences between these concepts:
//
//   - Authentication is about verifying identity. You need to be authenticated
//     to sign Amazon IVS API requests.
//
//   - Authorization is about granting permissions. Your IAM roles need to
//     have permissions for Amazon IVS API requests. In addition, authorization
//     is needed to view Amazon IVS private channels (https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html).
//     (Private channels are channels that are enabled for "playback authorization.")
//
// # Authentication
//
// All Amazon IVS API requests must be authenticated with a signature. The Amazon
// Web Services Command-Line Interface (CLI) and Amazon IVS Player SDKs take
// care of signing the underlying API calls for you. However, if your application
// calls the Amazon IVS API directly, it’s your responsibility to sign the
// requests.
//
// You generate a signature using valid Amazon Web Services credentials that
// have permission to perform the requested action. For example, you must sign
// PutMetadata requests with a signature generated from a user account that
// has the ivs:PutMetadata permission.
//
// For more information:
//
//   - Authentication and generating signatures — See Authenticating Requests
//     (Amazon Web Services Signature Version 4) (https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html)
//     in the Amazon Web Services General Reference.
//
//   - Managing Amazon IVS permissions — See Identity and Access Management
//     (https://docs.aws.amazon.com/ivs/latest/userguide/security-iam.html) on
//     the Security page of the Amazon IVS User Guide.
//
// 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 (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
// in the AWS General Reference.
//
// Channel Endpoints
//
//   - CreateChannel — Creates a new channel and an associated stream key
//     to start streaming.
//
//   - GetChannel — Gets the channel configuration for the specified channel
//     ARN.
//
//   - BatchGetChannel — Performs GetChannel on multiple ARNs simultaneously.
//
//   - ListChannels — Gets summary information about all channels in your
//     account, in the Amazon Web Services region where the API request is processed.
//     This list can be filtered to match a specified name or recording-configuration
//     ARN. Filters are mutually exclusive and cannot be used together. If you
//     try to use both filters, you will get an error (409 Conflict Exception).
//
//   - UpdateChannel — Updates a channel's configuration. This does not affect
//     an ongoing stream of this channel. You must stop and restart the stream
//     for the changes to take effect.
//
//   - DeleteChannel — Deletes the specified channel.
//
// StreamKey Endpoints
//
//   - CreateStreamKey — Creates a stream key, used to initiate a stream,
//     for the specified channel ARN.
//
//   - GetStreamKey — Gets stream key information for the specified ARN.
//
//   - BatchGetStreamKey — Performs GetStreamKey on multiple ARNs simultaneously.
//
//   - ListStreamKeys — Gets summary information about stream keys for the
//     specified channel.
//
//   - DeleteStreamKey — Deletes the stream key for the specified ARN, so
//     it can no longer be used to stream.
//
// Stream Endpoints
//
//   - GetStream — Gets information about the active (live) stream on a specified
//     channel.
//
//   - GetStreamSession — Gets metadata on a specified stream.
//
//   - ListStreams — Gets summary information about live streams in your
//     account, in the Amazon Web Services region where the API request is processed.
//
//   - ListStreamSessions — Gets a summary of current and previous streams
//     for a specified channel in your account, in the AWS region where the API
//     request is processed.
//
//   - StopStream — Disconnects the incoming RTMPS stream for the specified
//     channel. Can be used in conjunction with DeleteStreamKey to prevent further
//     streaming to a channel.
//
//   - PutMetadata — Inserts metadata into the active stream of the specified
//     channel. At most 5 requests per second per channel are allowed, each with
//     a maximum 1 KB payload. (If 5 TPS is not sufficient for your needs, we
//     recommend batching your data into a single PutMetadata call.) At most
//     155 requests per second per account are allowed.
//
// # Private Channel Endpoints
//
// For more information, see Setting Up Private Channels (https://docs.aws.amazon.com/ivs/latest/userguide/private-channels.html)
// in the Amazon IVS User Guide.
//
//   - ImportPlaybackKeyPair — Imports the public portion of a new key pair
//     and returns its arn and fingerprint. The privateKey can then be used to
//     generate viewer authorization tokens, to grant viewers access to private
//     channels (channels enabled for playback authorization).
//
//   - GetPlaybackKeyPair — Gets a specified playback authorization key pair
//     and returns the arn and fingerprint. The privateKey held by the caller
//     can be used to generate viewer authorization tokens, to grant viewers
//     access to private channels.
//
//   - ListPlaybackKeyPairs — Gets summary information about playback key
//     pairs.
//
//   - DeletePlaybackKeyPair — Deletes a specified authorization key pair.
//     This invalidates future viewer tokens generated using the key pair’s
//     privateKey.
//
//   - StartViewerSessionRevocation — Starts the process of revoking the
//     viewer session associated with a specified channel ARN and viewer ID.
//     Optionally, you can provide a version to revoke viewer sessions less than
//     and including that version.
//
//   - BatchStartViewerSessionRevocation — Performs StartViewerSessionRevocation
//     on multiple channel ARN and viewer ID pairs simultaneously.
//
// RecordingConfiguration Endpoints
//
//   - CreateRecordingConfiguration — Creates a new recording configuration,
//     used to enable recording to Amazon S3.
//
//   - GetRecordingConfiguration — Gets the recording-configuration metadata
//     for the specified ARN.
//
//   - ListRecordingConfigurations — Gets summary information about all recording
//     configurations in your account, in the Amazon Web Services region where
//     the API request is processed.
//
//   - DeleteRecordingConfiguration — Deletes the recording configuration
//     for the specified ARN.
//
// Amazon Web Services Tags Endpoints
//
//   - TagResource — Adds or updates tags for the Amazon Web Services resource
//     with the specified ARN.
//
//   - UntagResource — Removes tags from the resource with the specified
//     ARN.
//
//   - ListTagsForResource — Gets information about Amazon Web Services tags
//     for the specified ARN.
//
// See https://docs.aws.amazon.com/goto/WebAPI/ivs-2020-07-14 for more information on this service.
//
// See ivs package documentation for more information.
// https://docs.aws.amazon.com/sdk-for-go/api/service/ivs/
//
// # Using the Client
//
// To contact Amazon Interactive Video Service with the SDK use the New function to create
// a new service client. With that client you can make API requests to the service.
// These clients are safe to use concurrently.
//
// See the SDK's documentation for more information on how to use the SDK.
// https://docs.aws.amazon.com/sdk-for-go/api/
//
// See aws.Config documentation for more information on configuring SDK clients.
// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config
//
// See the Amazon Interactive Video Service client IVS for more
// information on creating client for this service.
// https://docs.aws.amazon.com/sdk-for-go/api/service/ivs/#New
package ivs
