// // Copyright 2010-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"). // You may not use this file except in compliance with the License. // A copy of the License is located at // // http://aws.amazon.com/apache2.0 // // or in the "license" file accompanying this file. This file is distributed // on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either // express or implied. See the License for the specific language governing // permissions and limitations under the License. // #import #import #import NS_ASSUME_NONNULL_BEGIN FOUNDATION_EXPORT NSString *const AWSKinesisVideoErrorDomain; typedef NS_ENUM(NSInteger, AWSKinesisVideoErrorType) { AWSKinesisVideoErrorUnknown, AWSKinesisVideoErrorAccessDenied, AWSKinesisVideoErrorAccountChannelLimitExceeded, AWSKinesisVideoErrorAccountStreamLimitExceeded, AWSKinesisVideoErrorClientLimitExceeded, AWSKinesisVideoErrorDeviceStreamLimitExceeded, AWSKinesisVideoErrorInvalidArgument, AWSKinesisVideoErrorInvalidDevice, AWSKinesisVideoErrorInvalidResourceFormat, AWSKinesisVideoErrorNoDataRetention, AWSKinesisVideoErrorNotAuthorized, AWSKinesisVideoErrorResourceInUse, AWSKinesisVideoErrorResourceNotFound, AWSKinesisVideoErrorStreamEdgeConfigurationNotFound, AWSKinesisVideoErrorTagsPerResourceExceededLimit, AWSKinesisVideoErrorVersionMismatch, }; typedef NS_ENUM(NSInteger, AWSKinesisVideoAPIName) { AWSKinesisVideoAPINameUnknown, AWSKinesisVideoAPINamePutMedia, AWSKinesisVideoAPINameGetMedia, AWSKinesisVideoAPINameListFragments, AWSKinesisVideoAPINameGetMediaForFragmentList, AWSKinesisVideoAPINameGetHlsStreamingSessionUrl, AWSKinesisVideoAPINameGetDashStreamingSessionUrl, AWSKinesisVideoAPINameGetClip, AWSKinesisVideoAPINameGetImages, }; typedef NS_ENUM(NSInteger, AWSKinesisVideoChannelProtocol) { AWSKinesisVideoChannelProtocolUnknown, AWSKinesisVideoChannelProtocolWss, AWSKinesisVideoChannelProtocolHttps, AWSKinesisVideoChannelProtocolWebrtc, }; typedef NS_ENUM(NSInteger, AWSKinesisVideoChannelRole) { AWSKinesisVideoChannelRoleUnknown, AWSKinesisVideoChannelRoleMaster, AWSKinesisVideoChannelRoleViewer, }; typedef NS_ENUM(NSInteger, AWSKinesisVideoChannelType) { AWSKinesisVideoChannelTypeUnknown, AWSKinesisVideoChannelTypeSingleMaster, AWSKinesisVideoChannelTypeFullMesh, }; typedef NS_ENUM(NSInteger, AWSKinesisVideoComparisonOperator) { AWSKinesisVideoComparisonOperatorUnknown, AWSKinesisVideoComparisonOperatorBeginsWith, }; typedef NS_ENUM(NSInteger, AWSKinesisVideoConfigurationStatus) { AWSKinesisVideoConfigurationStatusUnknown, AWSKinesisVideoConfigurationStatusEnabled, AWSKinesisVideoConfigurationStatusDisabled, }; typedef NS_ENUM(NSInteger, AWSKinesisVideoFormat) { AWSKinesisVideoFormatUnknown, AWSKinesisVideoFormatJpeg, AWSKinesisVideoFormatPng, }; typedef NS_ENUM(NSInteger, AWSKinesisVideoFormatConfigKey) { AWSKinesisVideoFormatConfigKeyUnknown, AWSKinesisVideoFormatConfigKeyJPEGQuality, }; typedef NS_ENUM(NSInteger, AWSKinesisVideoImageSelectorType) { AWSKinesisVideoImageSelectorTypeUnknown, AWSKinesisVideoImageSelectorTypeServerTimestamp, AWSKinesisVideoImageSelectorTypeProducerTimestamp, }; typedef NS_ENUM(NSInteger, AWSKinesisVideoMediaStorageConfigurationStatus) { AWSKinesisVideoMediaStorageConfigurationStatusUnknown, AWSKinesisVideoMediaStorageConfigurationStatusEnabled, AWSKinesisVideoMediaStorageConfigurationStatusDisabled, }; typedef NS_ENUM(NSInteger, AWSKinesisVideoMediaUriType) { AWSKinesisVideoMediaUriTypeUnknown, AWSKinesisVideoMediaUriTypeRtspUri, AWSKinesisVideoMediaUriTypeFileUri, }; typedef NS_ENUM(NSInteger, AWSKinesisVideoRecorderStatus) { AWSKinesisVideoRecorderStatusUnknown, AWSKinesisVideoRecorderStatusSuccess, AWSKinesisVideoRecorderStatusUserError, AWSKinesisVideoRecorderStatusSystemError, }; typedef NS_ENUM(NSInteger, AWSKinesisVideoStatus) { AWSKinesisVideoStatusUnknown, AWSKinesisVideoStatusCreating, AWSKinesisVideoStatusActive, AWSKinesisVideoStatusUpdating, AWSKinesisVideoStatusDeleting, }; typedef NS_ENUM(NSInteger, AWSKinesisVideoStrategyOnFullSize) { AWSKinesisVideoStrategyOnFullSizeUnknown, AWSKinesisVideoStrategyOnFullSizeDeleteOldestMedia, AWSKinesisVideoStrategyOnFullSizeDenyNewMedia, }; typedef NS_ENUM(NSInteger, AWSKinesisVideoSyncStatus) { AWSKinesisVideoSyncStatusUnknown, AWSKinesisVideoSyncStatusSyncing, AWSKinesisVideoSyncStatusAcknowledged, AWSKinesisVideoSyncStatusInSync, AWSKinesisVideoSyncStatusSyncFailed, AWSKinesisVideoSyncStatusDeleting, AWSKinesisVideoSyncStatusDeleteFailed, AWSKinesisVideoSyncStatusDeletingAcknowledged, }; typedef NS_ENUM(NSInteger, AWSKinesisVideoUpdateDataRetentionOperation) { AWSKinesisVideoUpdateDataRetentionOperationUnknown, AWSKinesisVideoUpdateDataRetentionOperationIncreaseDataRetention, AWSKinesisVideoUpdateDataRetentionOperationDecreaseDataRetention, }; typedef NS_ENUM(NSInteger, AWSKinesisVideoUploaderStatus) { AWSKinesisVideoUploaderStatusUnknown, AWSKinesisVideoUploaderStatusSuccess, AWSKinesisVideoUploaderStatusUserError, AWSKinesisVideoUploaderStatusSystemError, }; @class AWSKinesisVideoChannelInfo; @class AWSKinesisVideoChannelNameCondition; @class AWSKinesisVideoCreateSignalingChannelInput; @class AWSKinesisVideoCreateSignalingChannelOutput; @class AWSKinesisVideoCreateStreamInput; @class AWSKinesisVideoCreateStreamOutput; @class AWSKinesisVideoDeleteEdgeConfigurationInput; @class AWSKinesisVideoDeleteEdgeConfigurationOutput; @class AWSKinesisVideoDeleteSignalingChannelInput; @class AWSKinesisVideoDeleteSignalingChannelOutput; @class AWSKinesisVideoDeleteStreamInput; @class AWSKinesisVideoDeleteStreamOutput; @class AWSKinesisVideoDeletionConfig; @class AWSKinesisVideoDescribeEdgeConfigurationInput; @class AWSKinesisVideoDescribeEdgeConfigurationOutput; @class AWSKinesisVideoDescribeImageGenerationConfigurationInput; @class AWSKinesisVideoDescribeImageGenerationConfigurationOutput; @class AWSKinesisVideoDescribeMappedResourceConfigurationInput; @class AWSKinesisVideoDescribeMappedResourceConfigurationOutput; @class AWSKinesisVideoDescribeMediaStorageConfigurationInput; @class AWSKinesisVideoDescribeMediaStorageConfigurationOutput; @class AWSKinesisVideoDescribeNotificationConfigurationInput; @class AWSKinesisVideoDescribeNotificationConfigurationOutput; @class AWSKinesisVideoDescribeSignalingChannelInput; @class AWSKinesisVideoDescribeSignalingChannelOutput; @class AWSKinesisVideoDescribeStreamInput; @class AWSKinesisVideoDescribeStreamOutput; @class AWSKinesisVideoEdgeAgentStatus; @class AWSKinesisVideoEdgeConfig; @class AWSKinesisVideoGetDataEndpointInput; @class AWSKinesisVideoGetDataEndpointOutput; @class AWSKinesisVideoGetSignalingChannelEndpointInput; @class AWSKinesisVideoGetSignalingChannelEndpointOutput; @class AWSKinesisVideoImageGenerationConfiguration; @class AWSKinesisVideoImageGenerationDestinationConfig; @class AWSKinesisVideoLastRecorderStatus; @class AWSKinesisVideoLastUploaderStatus; @class AWSKinesisVideoListEdgeAgentConfigurationsEdgeConfig; @class AWSKinesisVideoListEdgeAgentConfigurationsInput; @class AWSKinesisVideoListEdgeAgentConfigurationsOutput; @class AWSKinesisVideoListSignalingChannelsInput; @class AWSKinesisVideoListSignalingChannelsOutput; @class AWSKinesisVideoListStreamsInput; @class AWSKinesisVideoListStreamsOutput; @class AWSKinesisVideoListTagsForResourceInput; @class AWSKinesisVideoListTagsForResourceOutput; @class AWSKinesisVideoListTagsForStreamInput; @class AWSKinesisVideoListTagsForStreamOutput; @class AWSKinesisVideoLocalSizeConfig; @class AWSKinesisVideoMappedResourceConfigurationListItem; @class AWSKinesisVideoMediaSourceConfig; @class AWSKinesisVideoMediaStorageConfiguration; @class AWSKinesisVideoNotificationConfiguration; @class AWSKinesisVideoNotificationDestinationConfig; @class AWSKinesisVideoRecorderConfig; @class AWSKinesisVideoResourceEndpointListItem; @class AWSKinesisVideoScheduleConfig; @class AWSKinesisVideoSingleMasterChannelEndpointConfiguration; @class AWSKinesisVideoSingleMasterConfiguration; @class AWSKinesisVideoStartEdgeConfigurationUpdateInput; @class AWSKinesisVideoStartEdgeConfigurationUpdateOutput; @class AWSKinesisVideoStreamInfo; @class AWSKinesisVideoStreamNameCondition; @class AWSKinesisVideoTag; @class AWSKinesisVideoTagResourceInput; @class AWSKinesisVideoTagResourceOutput; @class AWSKinesisVideoTagStreamInput; @class AWSKinesisVideoTagStreamOutput; @class AWSKinesisVideoUntagResourceInput; @class AWSKinesisVideoUntagResourceOutput; @class AWSKinesisVideoUntagStreamInput; @class AWSKinesisVideoUntagStreamOutput; @class AWSKinesisVideoUpdateDataRetentionInput; @class AWSKinesisVideoUpdateDataRetentionOutput; @class AWSKinesisVideoUpdateImageGenerationConfigurationInput; @class AWSKinesisVideoUpdateImageGenerationConfigurationOutput; @class AWSKinesisVideoUpdateMediaStorageConfigurationInput; @class AWSKinesisVideoUpdateMediaStorageConfigurationOutput; @class AWSKinesisVideoUpdateNotificationConfigurationInput; @class AWSKinesisVideoUpdateNotificationConfigurationOutput; @class AWSKinesisVideoUpdateSignalingChannelInput; @class AWSKinesisVideoUpdateSignalingChannelOutput; @class AWSKinesisVideoUpdateStreamInput; @class AWSKinesisVideoUpdateStreamOutput; @class AWSKinesisVideoUploaderConfig; /**

A structure that encapsulates a signaling channel's metadata and properties.

*/ @interface AWSKinesisVideoChannelInfo : AWSModel /**

The Amazon Resource Name (ARN) of the signaling channel.

*/ @property (nonatomic, strong) NSString * _Nullable channelARN; /**

The name of the signaling channel.

*/ @property (nonatomic, strong) NSString * _Nullable channelName; /**

Current status of the signaling channel.

*/ @property (nonatomic, assign) AWSKinesisVideoStatus channelStatus; /**

The type of the signaling channel.

*/ @property (nonatomic, assign) AWSKinesisVideoChannelType channelType; /**

The time at which the signaling channel was created.

*/ @property (nonatomic, strong) NSDate * _Nullable creationTime; /**

A structure that contains the configuration for the SINGLE_MASTER channel type.

*/ @property (nonatomic, strong) AWSKinesisVideoSingleMasterConfiguration * _Nullable singleMasterConfiguration; /**

The current version of the signaling channel.

*/ @property (nonatomic, strong) NSString * _Nullable version; @end /**

An optional input parameter for the ListSignalingChannels API. When this parameter is specified while invoking ListSignalingChannels, the API returns only the channels that satisfy a condition specified in ChannelNameCondition.

*/ @interface AWSKinesisVideoChannelNameCondition : AWSModel /**

A comparison operator. Currently, you can only specify the BEGINS_WITH operator, which finds signaling channels whose names begin with a given prefix.

*/ @property (nonatomic, assign) AWSKinesisVideoComparisonOperator comparisonOperator; /**

A value to compare.

*/ @property (nonatomic, strong) NSString * _Nullable comparisonValue; @end /** */ @interface AWSKinesisVideoCreateSignalingChannelInput : AWSRequest /**

A name for the signaling channel that you are creating. It must be unique for each Amazon Web Services account and Amazon Web Services Region.

*/ @property (nonatomic, strong) NSString * _Nullable channelName; /**

A type of the signaling channel that you are creating. Currently, SINGLE_MASTER is the only supported channel type.

*/ @property (nonatomic, assign) AWSKinesisVideoChannelType channelType; /**

A structure containing the configuration for the SINGLE_MASTER channel type.

*/ @property (nonatomic, strong) AWSKinesisVideoSingleMasterConfiguration * _Nullable singleMasterConfiguration; /**

A set of tags (key-value pairs) that you want to associate with this channel.

*/ @property (nonatomic, strong) NSArray * _Nullable tags; @end /** */ @interface AWSKinesisVideoCreateSignalingChannelOutput : AWSModel /**

The Amazon Resource Name (ARN) of the created channel.

*/ @property (nonatomic, strong) NSString * _Nullable channelARN; @end /** */ @interface AWSKinesisVideoCreateStreamInput : AWSRequest /**

The number of hours that you want to retain the data in the stream. Kinesis Video Streams retains the data in a data store that is associated with the stream.

The default value is 0, indicating that the stream does not persist data.

When the DataRetentionInHours value is 0, consumers can still consume the fragments that remain in the service host buffer, which has a retention time limit of 5 minutes and a retention memory limit of 200 MB. Fragments are removed from the buffer when either limit is reached.

*/ @property (nonatomic, strong) NSNumber * _Nullable dataRetentionInHours; /**

The name of the device that is writing to the stream.

In the current implementation, Kinesis Video Streams does not use this name.

*/ @property (nonatomic, strong) NSString * _Nullable deviceName; /**

The ID of the Key Management Service (KMS) key that you want Kinesis Video Streams to use to encrypt stream data.

If no key ID is specified, the default, Kinesis Video-managed key (Amazon Web Services/kinesisvideo) is used.

For more information, see DescribeKey.

*/ @property (nonatomic, strong) NSString * _Nullable kmsKeyId; /**

The media type of the stream. Consumers of the stream can use this information when processing the stream. For more information about media types, see Media Types. If you choose to specify the MediaType, see Naming Requirements for guidelines.

Example valid values include "video/h264" and "video/h264,audio/aac".

This parameter is optional; the default value is null (or empty in JSON).

*/ @property (nonatomic, strong) NSString * _Nullable mediaType; /**

A name for the stream that you are creating.

The stream name is an identifier for the stream, and must be unique for each account and region.

*/ @property (nonatomic, strong) NSString * _Nullable streamName; /**

A list of tags to associate with the specified stream. Each tag is a key-value pair (the value is optional).

*/ @property (nonatomic, strong) NSDictionary * _Nullable tags; @end /** */ @interface AWSKinesisVideoCreateStreamOutput : AWSModel /**

The Amazon Resource Name (ARN) of the stream.

*/ @property (nonatomic, strong) NSString * _Nullable streamARN; @end /** */ @interface AWSKinesisVideoDeleteEdgeConfigurationInput : AWSRequest /**

The Amazon Resource Name (ARN) of the stream. Specify either the StreamName or the StreamARN.

*/ @property (nonatomic, strong) NSString * _Nullable streamARN; /**

The name of the stream from which to delete the edge configuration. Specify either the StreamName or the StreamARN.

*/ @property (nonatomic, strong) NSString * _Nullable streamName; @end /** */ @interface AWSKinesisVideoDeleteEdgeConfigurationOutput : AWSModel @end /** */ @interface AWSKinesisVideoDeleteSignalingChannelInput : AWSRequest /**

The Amazon Resource Name (ARN) of the signaling channel that you want to delete.

*/ @property (nonatomic, strong) NSString * _Nullable channelARN; /**

The current version of the signaling channel that you want to delete. You can obtain the current version by invoking the DescribeSignalingChannel or ListSignalingChannels API operations.

*/ @property (nonatomic, strong) NSString * _Nullable currentVersion; @end /** */ @interface AWSKinesisVideoDeleteSignalingChannelOutput : AWSModel @end /** */ @interface AWSKinesisVideoDeleteStreamInput : AWSRequest /**

Optional: The version of the stream that you want to delete.

Specify the version as a safeguard to ensure that your are deleting the correct stream. To get the stream version, use the DescribeStream API.

If not specified, only the CreationTime is checked before deleting the stream.

*/ @property (nonatomic, strong) NSString * _Nullable currentVersion; /**

The Amazon Resource Name (ARN) of the stream that you want to delete.

*/ @property (nonatomic, strong) NSString * _Nullable streamARN; @end /** */ @interface AWSKinesisVideoDeleteStreamOutput : AWSModel @end /**

The configuration details required to delete the connection of the stream from the Edge Agent.

*/ @interface AWSKinesisVideoDeletionConfig : AWSModel /**

The boolean value used to indicate whether or not you want to mark the media for deletion, once it has been uploaded to the Kinesis Video Stream cloud. The media files can be deleted if any of the deletion configuration values are set to true, such as when the limit for the EdgeRetentionInHours, or the MaxLocalMediaSizeInMB, has been reached.

Since the default value is set to true, configure the uploader schedule such that the media files are not being deleted before they are initially uploaded to the Amazon Web Services cloud.

*/ @property (nonatomic, strong) NSNumber * _Nullable deleteAfterUpload; /**

The number of hours that you want to retain the data in the stream on the Edge Agent. The default value of the retention time is 720 hours, which translates to 30 days.

*/ @property (nonatomic, strong) NSNumber * _Nullable edgeRetentionInHours; /**

The value of the local size required in order to delete the edge configuration.

*/ @property (nonatomic, strong) AWSKinesisVideoLocalSizeConfig * _Nullable localSizeConfig; @end /** */ @interface AWSKinesisVideoDescribeEdgeConfigurationInput : AWSRequest /**

The Amazon Resource Name (ARN) of the stream. Specify either the StreamNameor the StreamARN.

*/ @property (nonatomic, strong) NSString * _Nullable streamARN; /**

The name of the stream whose edge configuration you want to update. Specify either the StreamName or the StreamARN.

*/ @property (nonatomic, strong) NSString * _Nullable streamName; @end /** */ @interface AWSKinesisVideoDescribeEdgeConfigurationOutput : AWSModel /**

The timestamp at which a stream’s edge configuration was first created.

*/ @property (nonatomic, strong) NSDate * _Nullable creationTime; /**

An object that contains the latest status details for an edge agent's recorder and uploader jobs. Use this information to determine the current health of an edge agent.

*/ @property (nonatomic, strong) AWSKinesisVideoEdgeAgentStatus * _Nullable edgeAgentStatus; /**

A description of the stream's edge configuration that will be used to sync with the Edge Agent IoT Greengrass component. The Edge Agent component will run on an IoT Hub Device setup at your premise.

*/ @property (nonatomic, strong) AWSKinesisVideoEdgeConfig * _Nullable edgeConfig; /**

A description of the generated failure status.

*/ @property (nonatomic, strong) NSString * _Nullable failedStatusDetails; /**

The timestamp at which a stream’s edge configuration was last updated.

*/ @property (nonatomic, strong) NSDate * _Nullable lastUpdatedTime; /**

The Amazon Resource Name (ARN) of the stream.

*/ @property (nonatomic, strong) NSString * _Nullable streamARN; /**

The name of the stream from which the edge configuration was updated.

*/ @property (nonatomic, strong) NSString * _Nullable streamName; /**

The latest status of the edge configuration update.

*/ @property (nonatomic, assign) AWSKinesisVideoSyncStatus syncStatus; @end /** */ @interface AWSKinesisVideoDescribeImageGenerationConfigurationInput : AWSRequest /**

The Amazon Resource Name (ARN) of the Kinesis video stream from which to retrieve the image generation configuration. You must specify either the StreamName or the StreamARN.

*/ @property (nonatomic, strong) NSString * _Nullable streamARN; /**

The name of the stream from which to retrieve the image generation configuration. You must specify either the StreamName or the StreamARN.

*/ @property (nonatomic, strong) NSString * _Nullable streamName; @end /** */ @interface AWSKinesisVideoDescribeImageGenerationConfigurationOutput : AWSModel /**

The structure that contains the information required for the Kinesis video stream (KVS) images delivery. If this structure is null, the configuration will be deleted from the stream.

*/ @property (nonatomic, strong) AWSKinesisVideoImageGenerationConfiguration * _Nullable imageGenerationConfiguration; @end /** */ @interface AWSKinesisVideoDescribeMappedResourceConfigurationInput : AWSRequest /**

The maximum number of results to return in the response.

*/ @property (nonatomic, strong) NSNumber * _Nullable maxResults; /**

The token to provide in your next request, to get another batch of results.

*/ @property (nonatomic, strong) NSString * _Nullable nextToken; /**

The Amazon Resource Name (ARN) of the stream.

*/ @property (nonatomic, strong) NSString * _Nullable streamARN; /**

The name of the stream.

*/ @property (nonatomic, strong) NSString * _Nullable streamName; @end /** */ @interface AWSKinesisVideoDescribeMappedResourceConfigurationOutput : AWSModel /**

A structure that encapsulates, or contains, the media storage configuration properties.

*/ @property (nonatomic, strong) NSArray * _Nullable mappedResourceConfigurationList; /**

The token that was used in the NextTokenrequest to fetch the next set of results.

*/ @property (nonatomic, strong) NSString * _Nullable nextToken; @end /** */ @interface AWSKinesisVideoDescribeMediaStorageConfigurationInput : AWSRequest /**

The Amazon Resource Name (ARN) of the channel.

*/ @property (nonatomic, strong) NSString * _Nullable channelARN; /**

The name of the channel.

*/ @property (nonatomic, strong) NSString * _Nullable channelName; @end /** */ @interface AWSKinesisVideoDescribeMediaStorageConfigurationOutput : AWSModel /**

A structure that encapsulates, or contains, the media storage configuration properties.

*/ @property (nonatomic, strong) AWSKinesisVideoMediaStorageConfiguration * _Nullable mediaStorageConfiguration; @end /** */ @interface AWSKinesisVideoDescribeNotificationConfigurationInput : AWSRequest /**

The Amazon Resource Name (ARN) of the Kinesis video stream from where you want to retrieve the notification configuration. You must specify either the StreamName or the StreamARN.

*/ @property (nonatomic, strong) NSString * _Nullable streamARN; /**

The name of the stream from which to retrieve the notification configuration. You must specify either the StreamName or the StreamARN.

*/ @property (nonatomic, strong) NSString * _Nullable streamName; @end /** */ @interface AWSKinesisVideoDescribeNotificationConfigurationOutput : AWSModel /**

The structure that contains the information required for notifications. If the structure is null, the configuration will be deleted from the stream.

*/ @property (nonatomic, strong) AWSKinesisVideoNotificationConfiguration * _Nullable notificationConfiguration; @end /** */ @interface AWSKinesisVideoDescribeSignalingChannelInput : AWSRequest /**

The ARN of the signaling channel that you want to describe.

*/ @property (nonatomic, strong) NSString * _Nullable channelARN; /**

The name of the signaling channel that you want to describe.

*/ @property (nonatomic, strong) NSString * _Nullable channelName; @end /** */ @interface AWSKinesisVideoDescribeSignalingChannelOutput : AWSModel /**

A structure that encapsulates the specified signaling channel's metadata and properties.

*/ @property (nonatomic, strong) AWSKinesisVideoChannelInfo * _Nullable channelInfo; @end /** */ @interface AWSKinesisVideoDescribeStreamInput : AWSRequest /**

The Amazon Resource Name (ARN) of the stream.

*/ @property (nonatomic, strong) NSString * _Nullable streamARN; /**

The name of the stream.

*/ @property (nonatomic, strong) NSString * _Nullable streamName; @end /** */ @interface AWSKinesisVideoDescribeStreamOutput : AWSModel /**

An object that describes the stream.

*/ @property (nonatomic, strong) AWSKinesisVideoStreamInfo * _Nullable streamInfo; @end /**

An object that contains the latest status details for an edge agent's recorder and uploader jobs. Use this information to determine the current health of an edge agent.

*/ @interface AWSKinesisVideoEdgeAgentStatus : AWSModel /**

The latest status of a stream’s edge recording job.

*/ @property (nonatomic, strong) AWSKinesisVideoLastRecorderStatus * _Nullable lastRecorderStatus; /**

The latest status of a stream’s edge to cloud uploader job.

*/ @property (nonatomic, strong) AWSKinesisVideoLastUploaderStatus * _Nullable lastUploaderStatus; @end /**

A description of the stream's edge configuration that will be used to sync with the Edge Agent IoT Greengrass component. The Edge Agent component will run on an IoT Hub Device setup at your premise.

Required parameters: [HubDeviceArn, RecorderConfig] */ @interface AWSKinesisVideoEdgeConfig : AWSModel /**

The deletion configuration is made up of the retention time (EdgeRetentionInHours) and local size configuration (LocalSizeConfig) details that are used to make the deletion.

*/ @property (nonatomic, strong) AWSKinesisVideoDeletionConfig * _Nullable deletionConfig; /**

The "Internet of Things (IoT) Thing" Arn of the stream.

*/ @property (nonatomic, strong) NSString * _Nullable hubDeviceArn; /**

The recorder configuration consists of the local MediaSourceConfig details, that are used as credentials to access the local media files streamed on the camera.

*/ @property (nonatomic, strong) AWSKinesisVideoRecorderConfig * _Nullable recorderConfig; /**

The uploader configuration contains the ScheduleExpression details that are used to schedule upload jobs for the recorded media files from the Edge Agent to a Kinesis Video Stream.

*/ @property (nonatomic, strong) AWSKinesisVideoUploaderConfig * _Nullable uploaderConfig; @end /** */ @interface AWSKinesisVideoGetDataEndpointInput : AWSRequest /**

The name of the API action for which to get an endpoint.

*/ @property (nonatomic, assign) AWSKinesisVideoAPIName APIName; /**

The Amazon Resource Name (ARN) of the stream that you want to get the endpoint for. You must specify either this parameter or a StreamName in the request.

*/ @property (nonatomic, strong) NSString * _Nullable streamARN; /**

The name of the stream that you want to get the endpoint for. You must specify either this parameter or a StreamARN in the request.

*/ @property (nonatomic, strong) NSString * _Nullable streamName; @end /** */ @interface AWSKinesisVideoGetDataEndpointOutput : AWSModel /**

The endpoint value. To read data from the stream or to write data to it, specify this endpoint in your application.

*/ @property (nonatomic, strong) NSString * _Nullable dataEndpoint; @end /** */ @interface AWSKinesisVideoGetSignalingChannelEndpointInput : AWSRequest /**

The Amazon Resource Name (ARN) of the signalling channel for which you want to get an endpoint.

*/ @property (nonatomic, strong) NSString * _Nullable channelARN; /**

A structure containing the endpoint configuration for the SINGLE_MASTER channel type.

*/ @property (nonatomic, strong) AWSKinesisVideoSingleMasterChannelEndpointConfiguration * _Nullable singleMasterChannelEndpointConfiguration; @end /** */ @interface AWSKinesisVideoGetSignalingChannelEndpointOutput : AWSModel /**

A list of endpoints for the specified signaling channel.

*/ @property (nonatomic, strong) NSArray * _Nullable resourceEndpointList; @end /**

The structure that contains the information required for the KVS images delivery. If null, the configuration will be deleted from the stream.

Required parameters: [Status, ImageSelectorType, DestinationConfig, SamplingInterval, Format] */ @interface AWSKinesisVideoImageGenerationConfiguration : AWSModel /**

The structure that contains the information required to deliver images to a customer.

*/ @property (nonatomic, strong) AWSKinesisVideoImageGenerationDestinationConfig * _Nullable destinationConfig; /**

The accepted image format.

*/ @property (nonatomic, assign) AWSKinesisVideoFormat format; /**

The list of a key-value pair structure that contains extra parameters that can be applied when the image is generated. The FormatConfig key is the JPEGQuality, which indicates the JPEG quality key to be used to generate the image. The FormatConfig value accepts ints from 1 to 100. If the value is 1, the image will be generated with less quality and the best compression. If the value is 100, the image will be generated with the best quality and less compression. If no value is provided, the default value of the JPEGQuality key will be set to 80.

*/ @property (nonatomic, strong) NSDictionary * _Nullable formatConfig; /**

The height of the output image that is used in conjunction with the WidthPixels parameter. When both HeightPixels and WidthPixels parameters are provided, the image will be stretched to fit the specified aspect ratio. If only the HeightPixels parameter is provided, its original aspect ratio will be used to calculate the WidthPixels ratio. If neither parameter is provided, the original image size will be returned.

*/ @property (nonatomic, strong) NSNumber * _Nullable heightPixels; /**

The origin of the Server or Producer timestamps to use to generate the images.

*/ @property (nonatomic, assign) AWSKinesisVideoImageSelectorType imageSelectorType; /**

The time interval in milliseconds (ms) at which the images need to be generated from the stream. The minimum value that can be provided is 33 ms, because a camera that generates content at 30 FPS would create a frame every 33.3 ms. If the timestamp range is less than the sampling interval, the Image from the StartTimestamp will be returned if available.

*/ @property (nonatomic, strong) NSNumber * _Nullable samplingInterval; /**

Indicates whether the ContinuousImageGenerationConfigurations API is enabled or disabled.

*/ @property (nonatomic, assign) AWSKinesisVideoConfigurationStatus status; /**

The width of the output image that is used in conjunction with the HeightPixels parameter. When both WidthPixels and HeightPixels parameters are provided, the image will be stretched to fit the specified aspect ratio. If only the WidthPixels parameter is provided, its original aspect ratio will be used to calculate the HeightPixels ratio. If neither parameter is provided, the original image size will be returned.

*/ @property (nonatomic, strong) NSNumber * _Nullable widthPixels; @end /**

The structure that contains the information required to deliver images to a customer.

Required parameters: [Uri, DestinationRegion] */ @interface AWSKinesisVideoImageGenerationDestinationConfig : AWSModel /**

The Amazon Web Services Region of the S3 bucket where images will be delivered. This DestinationRegion must match the Region where the stream is located.

*/ @property (nonatomic, strong) NSString * _Nullable destinationRegion; /**

The Uniform Resource Identifier (URI) that identifies where the images will be delivered.

*/ @property (nonatomic, strong) NSString * _Nullable uri; @end /**

The latest status of a stream's edge recording job.

*/ @interface AWSKinesisVideoLastRecorderStatus : AWSModel /**

A description of a recorder job’s latest status.

*/ @property (nonatomic, strong) NSString * _Nullable jobStatusDetails; /**

The timestamp at which the recorder job was last executed and media stored to local disk.

*/ @property (nonatomic, strong) NSDate * _Nullable lastCollectedTime; /**

The timestamp at which the recorder status was last updated.

*/ @property (nonatomic, strong) NSDate * _Nullable lastUpdatedTime; /**

The status of the latest recorder job.

*/ @property (nonatomic, assign) AWSKinesisVideoRecorderStatus recorderStatus; @end /**

The latest status of a stream’s edge to cloud uploader job.

*/ @interface AWSKinesisVideoLastUploaderStatus : AWSModel /**

A description of an uploader job’s latest status.

*/ @property (nonatomic, strong) NSString * _Nullable jobStatusDetails; /**

The timestamp at which the uploader job was last executed and media collected to the cloud.

*/ @property (nonatomic, strong) NSDate * _Nullable lastCollectedTime; /**

The timestamp at which the uploader status was last updated.

*/ @property (nonatomic, strong) NSDate * _Nullable lastUpdatedTime; /**

The status of the latest uploader job.

*/ @property (nonatomic, assign) AWSKinesisVideoUploaderStatus uploaderStatus; @end /**

A description of a single stream's edge configuration.

*/ @interface AWSKinesisVideoListEdgeAgentConfigurationsEdgeConfig : AWSModel /**

The timestamp when the stream first created the edge config.

*/ @property (nonatomic, strong) NSDate * _Nullable creationTime; /**

A description of the stream's edge configuration that will be used to sync with the Edge Agent IoT Greengrass component. The Edge Agent component will run on an IoT Hub Device setup at your premise.

*/ @property (nonatomic, strong) AWSKinesisVideoEdgeConfig * _Nullable edgeConfig; /**

A description of the generated failure status.

*/ @property (nonatomic, strong) NSString * _Nullable failedStatusDetails; /**

The timestamp when the stream last updated the edge config.

*/ @property (nonatomic, strong) NSDate * _Nullable lastUpdatedTime; /**

The Amazon Resource Name (ARN) of the stream.

*/ @property (nonatomic, strong) NSString * _Nullable streamARN; /**

The name of the stream.

*/ @property (nonatomic, strong) NSString * _Nullable streamName; /**

The current sync status of the stream's edge configuration.

*/ @property (nonatomic, assign) AWSKinesisVideoSyncStatus syncStatus; @end /** */ @interface AWSKinesisVideoListEdgeAgentConfigurationsInput : AWSRequest /**

The "Internet of Things (IoT) Thing" Arn of the edge agent.

*/ @property (nonatomic, strong) NSString * _Nullable hubDeviceArn; /**

The maximum number of edge configurations to return in the response. The default is 5.

*/ @property (nonatomic, strong) NSNumber * _Nullable maxResults; /**

If you specify this parameter, when the result of a ListEdgeAgentConfigurations operation is truncated, the call returns the NextToken in the response. To get another batch of edge configurations, provide this token in your next request.

*/ @property (nonatomic, strong) NSString * _Nullable nextToken; @end /** */ @interface AWSKinesisVideoListEdgeAgentConfigurationsOutput : AWSModel /**

A description of a single stream's edge configuration.

*/ @property (nonatomic, strong) NSArray * _Nullable edgeConfigs; /**

If the response is truncated, the call returns this element with a given token. To get the next batch of edge configurations, use this token in your next request.

*/ @property (nonatomic, strong) NSString * _Nullable nextToken; @end /** */ @interface AWSKinesisVideoListSignalingChannelsInput : AWSRequest /**

Optional: Returns only the channels that satisfy a specific condition.

*/ @property (nonatomic, strong) AWSKinesisVideoChannelNameCondition * _Nullable channelNameCondition; /**

The maximum number of channels to return in the response. The default is 500.

*/ @property (nonatomic, strong) NSNumber * _Nullable maxResults; /**

If you specify this parameter, when the result of a ListSignalingChannels operation is truncated, the call returns the NextToken in the response. To get another batch of channels, provide this token in your next request.

*/ @property (nonatomic, strong) NSString * _Nullable nextToken; @end /** */ @interface AWSKinesisVideoListSignalingChannelsOutput : AWSModel /**

An array of ChannelInfo objects.

*/ @property (nonatomic, strong) NSArray * _Nullable channelInfoList; /**

If the response is truncated, the call returns this element with a token. To get the next batch of streams, use this token in your next request.

*/ @property (nonatomic, strong) NSString * _Nullable nextToken; @end /** */ @interface AWSKinesisVideoListStreamsInput : AWSRequest /**

The maximum number of streams to return in the response. The default is 10,000.

*/ @property (nonatomic, strong) NSNumber * _Nullable maxResults; /**

If you specify this parameter, when the result of a ListStreams operation is truncated, the call returns the NextToken in the response. To get another batch of streams, provide this token in your next request.

*/ @property (nonatomic, strong) NSString * _Nullable nextToken; /**

Optional: Returns only streams that satisfy a specific condition. Currently, you can specify only the prefix of a stream name as a condition.

*/ @property (nonatomic, strong) AWSKinesisVideoStreamNameCondition * _Nullable streamNameCondition; @end /** */ @interface AWSKinesisVideoListStreamsOutput : AWSModel /**

If the response is truncated, the call returns this element with a token. To get the next batch of streams, use this token in your next request.

*/ @property (nonatomic, strong) NSString * _Nullable nextToken; /**

An array of StreamInfo objects.

*/ @property (nonatomic, strong) NSArray * _Nullable streamInfoList; @end /** */ @interface AWSKinesisVideoListTagsForResourceInput : AWSRequest /**

If you specify this parameter and the result of a ListTagsForResource call is truncated, the response includes a token that you can use in the next request to fetch the next batch of tags.

*/ @property (nonatomic, strong) NSString * _Nullable nextToken; /**

The Amazon Resource Name (ARN) of the signaling channel for which you want to list tags.

*/ @property (nonatomic, strong) NSString * _Nullable resourceARN; @end /** */ @interface AWSKinesisVideoListTagsForResourceOutput : AWSModel /**

If you specify this parameter and the result of a ListTagsForResource call is truncated, the response includes a token that you can use in the next request to fetch the next set of tags.

*/ @property (nonatomic, strong) NSString * _Nullable nextToken; /**

A map of tag keys and values associated with the specified signaling channel.

*/ @property (nonatomic, strong) NSDictionary * _Nullable tags; @end /** */ @interface AWSKinesisVideoListTagsForStreamInput : AWSRequest /**

If you specify this parameter and the result of a ListTagsForStream call is truncated, the response includes a token that you can use in the next request to fetch the next batch of tags.

*/ @property (nonatomic, strong) NSString * _Nullable nextToken; /**

The Amazon Resource Name (ARN) of the stream that you want to list tags for.

*/ @property (nonatomic, strong) NSString * _Nullable streamARN; /**

The name of the stream that you want to list tags for.

*/ @property (nonatomic, strong) NSString * _Nullable streamName; @end /** */ @interface AWSKinesisVideoListTagsForStreamOutput : AWSModel /**

If you specify this parameter and the result of a ListTags call is truncated, the response includes a token that you can use in the next request to fetch the next set of tags.

*/ @property (nonatomic, strong) NSString * _Nullable nextToken; /**

A map of tag keys and values associated with the specified stream.

*/ @property (nonatomic, strong) NSDictionary * _Nullable tags; @end /**

The configuration details that include the maximum size of the media (MaxLocalMediaSizeInMB) that you want to store for a stream on the Edge Agent, as well as the strategy that should be used (StrategyOnFullSize) when a stream's maximum size has been reached.

*/ @interface AWSKinesisVideoLocalSizeConfig : AWSModel /**

The overall maximum size of the media that you want to store for a stream on the Edge Agent.

*/ @property (nonatomic, strong) NSNumber * _Nullable maxLocalMediaSizeInMB; /**

The strategy to perform when a stream’s MaxLocalMediaSizeInMB limit is reached.

*/ @property (nonatomic, assign) AWSKinesisVideoStrategyOnFullSize strategyOnFullSize; @end /**

A structure that encapsulates, or contains, the media storage configuration properties.

*/ @interface AWSKinesisVideoMappedResourceConfigurationListItem : AWSModel /**

The Amazon Resource Name (ARN) of the Kinesis Video Stream resource, associated with the stream.

*/ @property (nonatomic, strong) NSString * _Nullable ARN; /**

The type of the associated resource for the kinesis video stream.

*/ @property (nonatomic, strong) NSString * _Nullable types; @end /**

The configuration details that consist of the credentials required (MediaUriSecretArn and MediaUriType) to access the media files that are streamed to the camera.

Required parameters: [MediaUriSecretArn, MediaUriType] */ @interface AWSKinesisVideoMediaSourceConfig : AWSModel /**

The Amazon Web Services Secrets Manager ARN for the username and password of the camera, or a local media file location.

*/ @property (nonatomic, strong) NSString * _Nullable mediaUriSecretArn; /**

The Uniform Resource Identifier (URI) type. The FILE_URI value can be used to stream local media files.

Preview only supports the RTSP_URI media source URI format .

*/ @property (nonatomic, assign) AWSKinesisVideoMediaUriType mediaUriType; @end /**

A structure that encapsulates, or contains, the media storage configuration properties.

Required parameters: [Status] */ @interface AWSKinesisVideoMediaStorageConfiguration : AWSModel /**

The status of the media storage configuration.

*/ @property (nonatomic, assign) AWSKinesisVideoMediaStorageConfigurationStatus status; /**

The Amazon Resource Name (ARN) of the stream

*/ @property (nonatomic, strong) NSString * _Nullable streamARN; @end /**

The structure that contains the notification information for the KVS images delivery. If this parameter is null, the configuration will be deleted from the stream.

Required parameters: [Status, DestinationConfig] */ @interface AWSKinesisVideoNotificationConfiguration : AWSModel /**

The destination information required to deliver a notification to a customer.

*/ @property (nonatomic, strong) AWSKinesisVideoNotificationDestinationConfig * _Nullable destinationConfig; /**

Indicates if a notification configuration is enabled or disabled.

*/ @property (nonatomic, assign) AWSKinesisVideoConfigurationStatus status; @end /**

The structure that contains the information required to deliver a notification to a customer.

Required parameters: [Uri] */ @interface AWSKinesisVideoNotificationDestinationConfig : AWSModel /**

The Uniform Resource Identifier (URI) that identifies where the images will be delivered.

*/ @property (nonatomic, strong) NSString * _Nullable uri; @end /**

The recorder configuration consists of the local MediaSourceConfig details that are used as credentials to accesss the local media files streamed on the camera.

Required parameters: [MediaSourceConfig] */ @interface AWSKinesisVideoRecorderConfig : AWSModel /**

The configuration details that consist of the credentials required (MediaUriSecretArn and MediaUriType) to access the media files streamed to the camera.

*/ @property (nonatomic, strong) AWSKinesisVideoMediaSourceConfig * _Nullable mediaSourceConfig; /**

The configuration that consists of the ScheduleExpression and the DurationInMinutes details that specify the scheduling to record from a camera, or local media file, onto the Edge Agent. If the ScheduleExpression attribute is not provided, then the Edge Agent will always be set to recording mode.

*/ @property (nonatomic, strong) AWSKinesisVideoScheduleConfig * _Nullable scheduleConfig; @end /**

An object that describes the endpoint of the signaling channel returned by the GetSignalingChannelEndpoint API.

The media server endpoint will correspond to the WEBRTC Protocol.

*/ @interface AWSKinesisVideoResourceEndpointListItem : AWSModel /**

The protocol of the signaling channel returned by the GetSignalingChannelEndpoint API.

*/ @property (nonatomic, assign) AWSKinesisVideoChannelProtocol protocols; /**

The endpoint of the signaling channel returned by the GetSignalingChannelEndpoint API.

*/ @property (nonatomic, strong) NSString * _Nullable resourceEndpoint; @end /**

This API enables you to specify the duration that the camera, or local media file, should record onto the Edge Agent. The ScheduleConfig consists of the ScheduleExpression and the DurationInMinutes attributes.

If the ScheduleConfig is not provided in the RecorderConfig, then the Edge Agent will always be set to recording mode.

If the ScheduleConfig is not provided in the UploaderConfig, then the Edge Agent will upload at regular intervals (every 1 hour).

Required parameters: [ScheduleExpression, DurationInSeconds] */ @interface AWSKinesisVideoScheduleConfig : AWSModel /**

The total duration to record the media. If the ScheduleExpression attribute is provided, then the DurationInSeconds attribute should also be specified.

*/ @property (nonatomic, strong) NSNumber * _Nullable durationInSeconds; /**

The Quartz cron expression that takes care of scheduling jobs to record from the camera, or local media file, onto the Edge Agent. If the ScheduleExpression is not provided for the RecorderConfig, then the Edge Agent will always be set to recording mode.

For more information about Quartz, refer to the Cron Trigger Tutorial page to understand the valid expressions and its use.

*/ @property (nonatomic, strong) NSString * _Nullable scheduleExpression; @end /**

An object that contains the endpoint configuration for the SINGLE_MASTER channel type.

*/ @interface AWSKinesisVideoSingleMasterChannelEndpointConfiguration : AWSModel /**

This property is used to determine the nature of communication over this SINGLE_MASTER signaling channel. If WSS is specified, this API returns a websocket endpoint. If HTTPS is specified, this API returns an HTTPS endpoint.

*/ @property (nonatomic, strong) NSArray * _Nullable protocols; /**

This property is used to determine messaging permissions in this SINGLE_MASTER signaling channel. If MASTER is specified, this API returns an endpoint that a client can use to receive offers from and send answers to any of the viewers on this signaling channel. If VIEWER is specified, this API returns an endpoint that a client can use only to send offers to another MASTER client on this signaling channel.

*/ @property (nonatomic, assign) AWSKinesisVideoChannelRole role; @end /**

A structure that contains the configuration for the SINGLE_MASTER channel type.

*/ @interface AWSKinesisVideoSingleMasterConfiguration : AWSModel /**

The period of time a signaling channel retains undelivered messages before they are discarded.

*/ @property (nonatomic, strong) NSNumber * _Nullable messageTtlSeconds; @end /** */ @interface AWSKinesisVideoStartEdgeConfigurationUpdateInput : AWSRequest /**

The edge configuration details required to invoke the update process.

*/ @property (nonatomic, strong) AWSKinesisVideoEdgeConfig * _Nullable edgeConfig; /**

The Amazon Resource Name (ARN) of the stream. Specify either the StreamName or the StreamARN.

*/ @property (nonatomic, strong) NSString * _Nullable streamARN; /**

The name of the stream whose edge configuration you want to update. Specify either the StreamName or the StreamARN.

*/ @property (nonatomic, strong) NSString * _Nullable streamName; @end /** */ @interface AWSKinesisVideoStartEdgeConfigurationUpdateOutput : AWSModel /**

The timestamp at which a stream’s edge configuration was first created.

*/ @property (nonatomic, strong) NSDate * _Nullable creationTime; /**

A description of the stream's edge configuration that will be used to sync with the Edge Agent IoT Greengrass component. The Edge Agent component will run on an IoT Hub Device setup at your premise.

*/ @property (nonatomic, strong) AWSKinesisVideoEdgeConfig * _Nullable edgeConfig; /**

A description of the generated failure status.

*/ @property (nonatomic, strong) NSString * _Nullable failedStatusDetails; /**

The timestamp at which a stream’s edge configuration was last updated.

*/ @property (nonatomic, strong) NSDate * _Nullable lastUpdatedTime; /**

The Amazon Resource Name (ARN) of the stream.

*/ @property (nonatomic, strong) NSString * _Nullable streamARN; /**

The name of the stream from which the edge configuration was updated.

*/ @property (nonatomic, strong) NSString * _Nullable streamName; /**

The current sync status of the stream's edge configuration. When you invoke this API, the sync status will be set to the SYNCING state. Use the DescribeEdgeConfiguration API to get the latest status of the edge configuration.

*/ @property (nonatomic, assign) AWSKinesisVideoSyncStatus syncStatus; @end /**

An object describing a Kinesis video stream.

*/ @interface AWSKinesisVideoStreamInfo : AWSModel /**

A time stamp that indicates when the stream was created.

*/ @property (nonatomic, strong) NSDate * _Nullable creationTime; /**

How long the stream retains data, in hours.

*/ @property (nonatomic, strong) NSNumber * _Nullable dataRetentionInHours; /**

The name of the device that is associated with the stream.

*/ @property (nonatomic, strong) NSString * _Nullable deviceName; /**

The ID of the Key Management Service (KMS) key that Kinesis Video Streams uses to encrypt data on the stream.

*/ @property (nonatomic, strong) NSString * _Nullable kmsKeyId; /**

The MediaType of the stream.

*/ @property (nonatomic, strong) NSString * _Nullable mediaType; /**

The status of the stream.

*/ @property (nonatomic, assign) AWSKinesisVideoStatus status; /**

The Amazon Resource Name (ARN) of the stream.

*/ @property (nonatomic, strong) NSString * _Nullable streamARN; /**

The name of the stream.

*/ @property (nonatomic, strong) NSString * _Nullable streamName; /**

The version of the stream.

*/ @property (nonatomic, strong) NSString * _Nullable version; @end /**

Specifies the condition that streams must satisfy to be returned when you list streams (see the ListStreams API). A condition has a comparison operation and a value. Currently, you can specify only the BEGINS_WITH operator, which finds streams whose names start with a given prefix.

*/ @interface AWSKinesisVideoStreamNameCondition : AWSModel /**

A comparison operator. Currently, you can specify only the BEGINS_WITH operator, which finds streams whose names start with a given prefix.

*/ @property (nonatomic, assign) AWSKinesisVideoComparisonOperator comparisonOperator; /**

A value to compare.

*/ @property (nonatomic, strong) NSString * _Nullable comparisonValue; @end /**

A key and value pair that is associated with the specified signaling channel.

Required parameters: [Key, Value] */ @interface AWSKinesisVideoTag : AWSModel /**

The key of the tag that is associated with the specified signaling channel.

*/ @property (nonatomic, strong) NSString * _Nullable key; /**

The value of the tag that is associated with the specified signaling channel.

*/ @property (nonatomic, strong) NSString * _Nullable value; @end /** */ @interface AWSKinesisVideoTagResourceInput : AWSRequest /**

The Amazon Resource Name (ARN) of the signaling channel to which you want to add tags.

*/ @property (nonatomic, strong) NSString * _Nullable resourceARN; /**

A list of tags to associate with the specified signaling channel. Each tag is a key-value pair.

*/ @property (nonatomic, strong) NSArray * _Nullable tags; @end /** */ @interface AWSKinesisVideoTagResourceOutput : AWSModel @end /** */ @interface AWSKinesisVideoTagStreamInput : AWSRequest /**

The Amazon Resource Name (ARN) of the resource that you want to add the tag or tags to.

*/ @property (nonatomic, strong) NSString * _Nullable streamARN; /**

The name of the stream that you want to add the tag or tags to.

*/ @property (nonatomic, strong) NSString * _Nullable streamName; /**

A list of tags to associate with the specified stream. Each tag is a key-value pair (the value is optional).

*/ @property (nonatomic, strong) NSDictionary * _Nullable tags; @end /** */ @interface AWSKinesisVideoTagStreamOutput : AWSModel @end /** */ @interface AWSKinesisVideoUntagResourceInput : AWSRequest /**

The Amazon Resource Name (ARN) of the signaling channel from which you want to remove tags.

*/ @property (nonatomic, strong) NSString * _Nullable resourceARN; /**

A list of the keys of the tags that you want to remove.

*/ @property (nonatomic, strong) NSArray * _Nullable tagKeyList; @end /** */ @interface AWSKinesisVideoUntagResourceOutput : AWSModel @end /** */ @interface AWSKinesisVideoUntagStreamInput : AWSRequest /**

The Amazon Resource Name (ARN) of the stream that you want to remove tags from.

*/ @property (nonatomic, strong) NSString * _Nullable streamARN; /**

The name of the stream that you want to remove tags from.

*/ @property (nonatomic, strong) NSString * _Nullable streamName; /**

A list of the keys of the tags that you want to remove.

*/ @property (nonatomic, strong) NSArray * _Nullable tagKeyList; @end /** */ @interface AWSKinesisVideoUntagStreamOutput : AWSModel @end /** */ @interface AWSKinesisVideoUpdateDataRetentionInput : AWSRequest /**

The version of the stream whose retention period you want to change. To get the version, call either the DescribeStream or the ListStreams API.

*/ @property (nonatomic, strong) NSString * _Nullable currentVersion; /**

The retention period, in hours. The value you specify replaces the current value. The maximum value for this parameter is 87600 (ten years).

*/ @property (nonatomic, strong) NSNumber * _Nullable dataRetentionChangeInHours; /**

Indicates whether you want to increase or decrease the retention period.

*/ @property (nonatomic, assign) AWSKinesisVideoUpdateDataRetentionOperation operation; /**

The Amazon Resource Name (ARN) of the stream whose retention period you want to change.

*/ @property (nonatomic, strong) NSString * _Nullable streamARN; /**

The name of the stream whose retention period you want to change.

*/ @property (nonatomic, strong) NSString * _Nullable streamName; @end /** */ @interface AWSKinesisVideoUpdateDataRetentionOutput : AWSModel @end /** */ @interface AWSKinesisVideoUpdateImageGenerationConfigurationInput : AWSRequest /**

The structure that contains the information required for the KVS images delivery. If the structure is null, the configuration will be deleted from the stream.

*/ @property (nonatomic, strong) AWSKinesisVideoImageGenerationConfiguration * _Nullable imageGenerationConfiguration; /**

The Amazon Resource Name (ARN) of the Kinesis video stream from where you want to update the image generation configuration. You must specify either the StreamName or the StreamARN.

*/ @property (nonatomic, strong) NSString * _Nullable streamARN; /**

The name of the stream from which to update the image generation configuration. You must specify either the StreamName or the StreamARN.

*/ @property (nonatomic, strong) NSString * _Nullable streamName; @end /** */ @interface AWSKinesisVideoUpdateImageGenerationConfigurationOutput : AWSModel @end /** */ @interface AWSKinesisVideoUpdateMediaStorageConfigurationInput : AWSRequest /**

The Amazon Resource Name (ARN) of the channel.

*/ @property (nonatomic, strong) NSString * _Nullable channelARN; /**

A structure that encapsulates, or contains, the media storage configuration properties.

*/ @property (nonatomic, strong) AWSKinesisVideoMediaStorageConfiguration * _Nullable mediaStorageConfiguration; @end /** */ @interface AWSKinesisVideoUpdateMediaStorageConfigurationOutput : AWSModel @end /** */ @interface AWSKinesisVideoUpdateNotificationConfigurationInput : AWSRequest /**

The structure containing the information required for notifications. If the structure is null, the configuration will be deleted from the stream.

*/ @property (nonatomic, strong) AWSKinesisVideoNotificationConfiguration * _Nullable notificationConfiguration; /**

The Amazon Resource Name (ARN) of the Kinesis video stream from where you want to update the notification configuration. You must specify either the StreamName or the StreamARN.

*/ @property (nonatomic, strong) NSString * _Nullable streamARN; /**

The name of the stream from which to update the notification configuration. You must specify either the StreamName or the StreamARN.

*/ @property (nonatomic, strong) NSString * _Nullable streamName; @end /** */ @interface AWSKinesisVideoUpdateNotificationConfigurationOutput : AWSModel @end /** */ @interface AWSKinesisVideoUpdateSignalingChannelInput : AWSRequest /**

The Amazon Resource Name (ARN) of the signaling channel that you want to update.

*/ @property (nonatomic, strong) NSString * _Nullable channelARN; /**

The current version of the signaling channel that you want to update.

*/ @property (nonatomic, strong) NSString * _Nullable currentVersion; /**

The structure containing the configuration for the SINGLE_MASTER type of the signaling channel that you want to update.

*/ @property (nonatomic, strong) AWSKinesisVideoSingleMasterConfiguration * _Nullable singleMasterConfiguration; @end /** */ @interface AWSKinesisVideoUpdateSignalingChannelOutput : AWSModel @end /** */ @interface AWSKinesisVideoUpdateStreamInput : AWSRequest /**

The version of the stream whose metadata you want to update.

*/ @property (nonatomic, strong) NSString * _Nullable currentVersion; /**

The name of the device that is writing to the stream.

In the current implementation, Kinesis Video Streams does not use this name.

*/ @property (nonatomic, strong) NSString * _Nullable deviceName; /**

The stream's media type. Use MediaType to specify the type of content that the stream contains to the consumers of the stream. For more information about media types, see Media Types. If you choose to specify the MediaType, see Naming Requirements.

To play video on the console, you must specify the correct video type. For example, if the video in the stream is H.264, specify video/h264 as the MediaType.

*/ @property (nonatomic, strong) NSString * _Nullable mediaType; /**

The ARN of the stream whose metadata you want to update.

*/ @property (nonatomic, strong) NSString * _Nullable streamARN; /**

The name of the stream whose metadata you want to update.

The stream name is an identifier for the stream, and must be unique for each account and region.

*/ @property (nonatomic, strong) NSString * _Nullable streamName; @end /** */ @interface AWSKinesisVideoUpdateStreamOutput : AWSModel @end /**

The configuration that consists of the ScheduleExpression and the DurationInMinutes details that specify the scheduling to record from a camera, or local media file, onto the Edge Agent. If the ScheduleConfig is not provided in the UploaderConfig, then the Edge Agent will upload at regular intervals (every 1 hour).

Required parameters: [ScheduleConfig] */ @interface AWSKinesisVideoUploaderConfig : AWSModel /**

The configuration that consists of the ScheduleExpression and the DurationInMinutes details that specify the scheduling to record from a camera, or local media file, onto the Edge Agent. If the ScheduleConfig is not provided in this UploaderConfig, then the Edge Agent will upload at regular intervals (every 1 hour).

*/ @property (nonatomic, strong) AWSKinesisVideoScheduleConfig * _Nullable scheduleConfig; @end NS_ASSUME_NONNULL_END