From eebede654956e5d42ed4d279aded02932562daca Mon Sep 17 00:00:00 2001 From: AsyncAws Bot Date: Tue, 26 Aug 2025 06:39:09 +0000 Subject: [PATCH] update generated code --- manifest.json | 2 +- src/Service/MediaConvert/CHANGELOG.md | 5 ++ src/Service/MediaConvert/composer.json | 2 +- .../MediaConvert/src/Enum/AacCodecProfile.php | 3 +- .../src/Enum/HlsIFrameOnlyManifest.php | 12 ++-- .../src/Enum/Mp2AudioDescriptionMix.php | 25 +++++++++ .../MediaConvert/src/Enum/ShareStatus.php | 19 +++++++ .../src/Enum/VideoSelectorType.php | 23 ++++++++ .../src/Result/CreateJobResponse.php | 5 ++ .../src/Result/GetJobResponse.php | 5 ++ .../src/Result/ListJobsResponse.php | 5 ++ .../src/ValueObject/AacSettings.php | 3 +- .../src/ValueObject/HlsSettings.php | 10 ++-- .../src/ValueObject/InputTamsSettings.php | 7 ++- .../MediaConvert/src/ValueObject/Job.php | 35 ++++++++++++ .../src/ValueObject/Mp2Settings.php | 32 +++++++++++ .../src/ValueObject/VideoSelector.php | 55 +++++++++++++++++++ src/Service/Sqs/CHANGELOG.md | 4 ++ .../Sqs/src/Input/CreateQueueRequest.php | 2 +- .../Sqs/src/Input/SendMessageRequest.php | 2 +- src/Service/Sqs/src/SqsClient.php | 2 +- .../src/ValueObject/MessageAttributeValue.php | 2 +- 22 files changed, 241 insertions(+), 19 deletions(-) create mode 100644 src/Service/MediaConvert/src/Enum/Mp2AudioDescriptionMix.php create mode 100644 src/Service/MediaConvert/src/Enum/ShareStatus.php create mode 100644 src/Service/MediaConvert/src/Enum/VideoSelectorType.php diff --git a/manifest.json b/manifest.json index d49ef3992..3b00b4bb2 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "variables": { - "${LATEST}": "3.356.1" + "${LATEST}": "3.356.4" }, "endpoints": "https://raw.githubusercontent.com/aws/aws-sdk-php/${LATEST}/src/data/endpoints.json", "services": { diff --git a/src/Service/MediaConvert/CHANGELOG.md b/src/Service/MediaConvert/CHANGELOG.md index de0c6411b..c0b47f512 100644 --- a/src/Service/MediaConvert/CHANGELOG.md +++ b/src/Service/MediaConvert/CHANGELOG.md @@ -2,6 +2,11 @@ ## NOT RELEASED +### Added + +- AWS api-change: This release adds support for input rendition selection for HLS input, adds new Share API to enable sharing jobs with AWS Support for support investigations, and adds INCLUDE_AS_TS to iFrameOnlyManifest setting for HLS outputs. +- AWS api-change: Remove incorrect endpoint tests + ## 1.10.0 ### Added diff --git a/src/Service/MediaConvert/composer.json b/src/Service/MediaConvert/composer.json index 6e0f3d64d..1ef996082 100644 --- a/src/Service/MediaConvert/composer.json +++ b/src/Service/MediaConvert/composer.json @@ -28,7 +28,7 @@ }, "extra": { "branch-alias": { - "dev-master": "1.10-dev" + "dev-master": "1.11-dev" } } } diff --git a/src/Service/MediaConvert/src/Enum/AacCodecProfile.php b/src/Service/MediaConvert/src/Enum/AacCodecProfile.php index 5072e9a49..d3783b1c7 100644 --- a/src/Service/MediaConvert/src/Enum/AacCodecProfile.php +++ b/src/Service/MediaConvert/src/Enum/AacCodecProfile.php @@ -6,7 +6,8 @@ * Specify the AAC profile. For the widest player compatibility and where higher bitrates are acceptable: Keep the * default profile, LC (AAC-LC) For improved audio performance at lower bitrates: Choose HEV1 or HEV2. HEV1 (AAC-HE v1) * adds spectral band replication to improve speech audio at low bitrates. HEV2 (AAC-HE v2) adds parametric stereo, - * which optimizes for encoding stereo audio at very low bitrates. + * which optimizes for encoding stereo audio at very low bitrates. For improved audio quality at lower bitrates, + * adaptive audio bitrate switching, and loudness control: Choose XHE. */ final class AacCodecProfile { diff --git a/src/Service/MediaConvert/src/Enum/HlsIFrameOnlyManifest.php b/src/Service/MediaConvert/src/Enum/HlsIFrameOnlyManifest.php index 6a2a3eaf7..7a6a30c64 100644 --- a/src/Service/MediaConvert/src/Enum/HlsIFrameOnlyManifest.php +++ b/src/Service/MediaConvert/src/Enum/HlsIFrameOnlyManifest.php @@ -3,21 +3,25 @@ namespace AsyncAws\MediaConvert\Enum; /** - * Choose Include to have MediaConvert generate a child manifest that lists only the I-frames for this rendition, in - * addition to your regular manifest for this rendition. You might use this manifest as part of a workflow that creates - * preview functions for your video. MediaConvert adds both the I-frame only child manifest and the regular child - * manifest to the parent manifest. When you don't need the I-frame only child manifest, keep the default value Exclude. + * Generate a variant manifest that lists only the I-frames for this rendition. You might use this manifest as part of a + * workflow that creates preview functions for your video. MediaConvert adds both the I-frame only variant manifest and + * the regular variant manifest to the multivariant manifest. To have MediaConvert write a variant manifest that + * references I-frames from your output content using EXT-X-BYTERANGE tags: Choose Include. To have MediaConvert output + * I-frames as single frame TS files and a corresponding variant manifest that references them: Choose Include as TS. + * When you don't need the I-frame only variant manifest: Keep the default value, Exclude. */ final class HlsIFrameOnlyManifest { public const EXCLUDE = 'EXCLUDE'; public const INCLUDE = 'INCLUDE'; + public const INCLUDE_AS_TS = 'INCLUDE_AS_TS'; public static function exists(string $value): bool { return isset([ self::EXCLUDE => true, self::INCLUDE => true, + self::INCLUDE_AS_TS => true, ][$value]); } } diff --git a/src/Service/MediaConvert/src/Enum/Mp2AudioDescriptionMix.php b/src/Service/MediaConvert/src/Enum/Mp2AudioDescriptionMix.php new file mode 100644 index 000000000..025b6c696 --- /dev/null +++ b/src/Service/MediaConvert/src/Enum/Mp2AudioDescriptionMix.php @@ -0,0 +1,25 @@ + true, + self::NONE => true, + ][$value]); + } +} diff --git a/src/Service/MediaConvert/src/Enum/ShareStatus.php b/src/Service/MediaConvert/src/Enum/ShareStatus.php new file mode 100644 index 000000000..e474948a6 --- /dev/null +++ b/src/Service/MediaConvert/src/Enum/ShareStatus.php @@ -0,0 +1,19 @@ + true, + self::NOT_SHARED => true, + self::SHARED => true, + ][$value]); + } +} diff --git a/src/Service/MediaConvert/src/Enum/VideoSelectorType.php b/src/Service/MediaConvert/src/Enum/VideoSelectorType.php new file mode 100644 index 000000000..ee54a2f41 --- /dev/null +++ b/src/Service/MediaConvert/src/Enum/VideoSelectorType.php @@ -0,0 +1,23 @@ + true, + self::STREAM => true, + ][$value]); + } +} diff --git a/src/Service/MediaConvert/src/Result/CreateJobResponse.php b/src/Service/MediaConvert/src/Result/CreateJobResponse.php index 85c4775e5..ba41366db 100644 --- a/src/Service/MediaConvert/src/Result/CreateJobResponse.php +++ b/src/Service/MediaConvert/src/Result/CreateJobResponse.php @@ -1436,6 +1436,7 @@ private function populateResultJob(array $json): Job 'JobEngineVersionUsed' => isset($json['jobEngineVersionUsed']) ? (string) $json['jobEngineVersionUsed'] : null, 'JobPercentComplete' => isset($json['jobPercentComplete']) ? (int) $json['jobPercentComplete'] : null, 'JobTemplate' => isset($json['jobTemplate']) ? (string) $json['jobTemplate'] : null, + 'LastShareDetails' => isset($json['lastShareDetails']) ? (string) $json['lastShareDetails'] : null, 'Messages' => empty($json['messages']) ? null : $this->populateResultJobMessages($json['messages']), 'OutputGroupDetails' => !isset($json['outputGroupDetails']) ? null : $this->populateResult__listOfOutputGroupDetail($json['outputGroupDetails']), 'Priority' => isset($json['priority']) ? (int) $json['priority'] : null, @@ -1444,6 +1445,7 @@ private function populateResultJob(array $json): Job 'RetryCount' => isset($json['retryCount']) ? (int) $json['retryCount'] : null, 'Role' => (string) $json['role'], 'Settings' => $this->populateResultJobSettings($json['settings']), + 'ShareStatus' => isset($json['shareStatus']) ? (string) $json['shareStatus'] : null, 'SimulateReservedQueue' => isset($json['simulateReservedQueue']) ? (string) $json['simulateReservedQueue'] : null, 'Status' => isset($json['status']) ? (string) $json['status'] : null, 'StatusUpdateInterval' => isset($json['statusUpdateInterval']) ? (string) $json['statusUpdateInterval'] : null, @@ -1642,6 +1644,7 @@ private function populateResultMovSettings(array $json): MovSettings private function populateResultMp2Settings(array $json): Mp2Settings { return new Mp2Settings([ + 'AudioDescriptionMix' => isset($json['audioDescriptionMix']) ? (string) $json['audioDescriptionMix'] : null, 'Bitrate' => isset($json['bitrate']) ? (int) $json['bitrate'] : null, 'Channels' => isset($json['channels']) ? (int) $json['channels'] : null, 'SampleRate' => isset($json['sampleRate']) ? (int) $json['sampleRate'] : null, @@ -2290,6 +2293,8 @@ private function populateResultVideoSelector(array $json): VideoSelector 'ProgramNumber' => isset($json['programNumber']) ? (int) $json['programNumber'] : null, 'Rotate' => isset($json['rotate']) ? (string) $json['rotate'] : null, 'SampleRange' => isset($json['sampleRange']) ? (string) $json['sampleRange'] : null, + 'SelectorType' => isset($json['selectorType']) ? (string) $json['selectorType'] : null, + 'Streams' => !isset($json['streams']) ? null : $this->populateResult__listOf__integerMin1Max2147483647($json['streams']), ]); } diff --git a/src/Service/MediaConvert/src/Result/GetJobResponse.php b/src/Service/MediaConvert/src/Result/GetJobResponse.php index c06bc65f4..4f0d42391 100644 --- a/src/Service/MediaConvert/src/Result/GetJobResponse.php +++ b/src/Service/MediaConvert/src/Result/GetJobResponse.php @@ -1436,6 +1436,7 @@ private function populateResultJob(array $json): Job 'JobEngineVersionUsed' => isset($json['jobEngineVersionUsed']) ? (string) $json['jobEngineVersionUsed'] : null, 'JobPercentComplete' => isset($json['jobPercentComplete']) ? (int) $json['jobPercentComplete'] : null, 'JobTemplate' => isset($json['jobTemplate']) ? (string) $json['jobTemplate'] : null, + 'LastShareDetails' => isset($json['lastShareDetails']) ? (string) $json['lastShareDetails'] : null, 'Messages' => empty($json['messages']) ? null : $this->populateResultJobMessages($json['messages']), 'OutputGroupDetails' => !isset($json['outputGroupDetails']) ? null : $this->populateResult__listOfOutputGroupDetail($json['outputGroupDetails']), 'Priority' => isset($json['priority']) ? (int) $json['priority'] : null, @@ -1444,6 +1445,7 @@ private function populateResultJob(array $json): Job 'RetryCount' => isset($json['retryCount']) ? (int) $json['retryCount'] : null, 'Role' => (string) $json['role'], 'Settings' => $this->populateResultJobSettings($json['settings']), + 'ShareStatus' => isset($json['shareStatus']) ? (string) $json['shareStatus'] : null, 'SimulateReservedQueue' => isset($json['simulateReservedQueue']) ? (string) $json['simulateReservedQueue'] : null, 'Status' => isset($json['status']) ? (string) $json['status'] : null, 'StatusUpdateInterval' => isset($json['statusUpdateInterval']) ? (string) $json['statusUpdateInterval'] : null, @@ -1642,6 +1644,7 @@ private function populateResultMovSettings(array $json): MovSettings private function populateResultMp2Settings(array $json): Mp2Settings { return new Mp2Settings([ + 'AudioDescriptionMix' => isset($json['audioDescriptionMix']) ? (string) $json['audioDescriptionMix'] : null, 'Bitrate' => isset($json['bitrate']) ? (int) $json['bitrate'] : null, 'Channels' => isset($json['channels']) ? (int) $json['channels'] : null, 'SampleRate' => isset($json['sampleRate']) ? (int) $json['sampleRate'] : null, @@ -2290,6 +2293,8 @@ private function populateResultVideoSelector(array $json): VideoSelector 'ProgramNumber' => isset($json['programNumber']) ? (int) $json['programNumber'] : null, 'Rotate' => isset($json['rotate']) ? (string) $json['rotate'] : null, 'SampleRange' => isset($json['sampleRange']) ? (string) $json['sampleRange'] : null, + 'SelectorType' => isset($json['selectorType']) ? (string) $json['selectorType'] : null, + 'Streams' => !isset($json['streams']) ? null : $this->populateResult__listOf__integerMin1Max2147483647($json['streams']), ]); } diff --git a/src/Service/MediaConvert/src/Result/ListJobsResponse.php b/src/Service/MediaConvert/src/Result/ListJobsResponse.php index 01c20ac65..9f630c934 100644 --- a/src/Service/MediaConvert/src/Result/ListJobsResponse.php +++ b/src/Service/MediaConvert/src/Result/ListJobsResponse.php @@ -1503,6 +1503,7 @@ private function populateResultJob(array $json): Job 'JobEngineVersionUsed' => isset($json['jobEngineVersionUsed']) ? (string) $json['jobEngineVersionUsed'] : null, 'JobPercentComplete' => isset($json['jobPercentComplete']) ? (int) $json['jobPercentComplete'] : null, 'JobTemplate' => isset($json['jobTemplate']) ? (string) $json['jobTemplate'] : null, + 'LastShareDetails' => isset($json['lastShareDetails']) ? (string) $json['lastShareDetails'] : null, 'Messages' => empty($json['messages']) ? null : $this->populateResultJobMessages($json['messages']), 'OutputGroupDetails' => !isset($json['outputGroupDetails']) ? null : $this->populateResult__listOfOutputGroupDetail($json['outputGroupDetails']), 'Priority' => isset($json['priority']) ? (int) $json['priority'] : null, @@ -1511,6 +1512,7 @@ private function populateResultJob(array $json): Job 'RetryCount' => isset($json['retryCount']) ? (int) $json['retryCount'] : null, 'Role' => (string) $json['role'], 'Settings' => $this->populateResultJobSettings($json['settings']), + 'ShareStatus' => isset($json['shareStatus']) ? (string) $json['shareStatus'] : null, 'SimulateReservedQueue' => isset($json['simulateReservedQueue']) ? (string) $json['simulateReservedQueue'] : null, 'Status' => isset($json['status']) ? (string) $json['status'] : null, 'StatusUpdateInterval' => isset($json['statusUpdateInterval']) ? (string) $json['statusUpdateInterval'] : null, @@ -1709,6 +1711,7 @@ private function populateResultMovSettings(array $json): MovSettings private function populateResultMp2Settings(array $json): Mp2Settings { return new Mp2Settings([ + 'AudioDescriptionMix' => isset($json['audioDescriptionMix']) ? (string) $json['audioDescriptionMix'] : null, 'Bitrate' => isset($json['bitrate']) ? (int) $json['bitrate'] : null, 'Channels' => isset($json['channels']) ? (int) $json['channels'] : null, 'SampleRate' => isset($json['sampleRate']) ? (int) $json['sampleRate'] : null, @@ -2357,6 +2360,8 @@ private function populateResultVideoSelector(array $json): VideoSelector 'ProgramNumber' => isset($json['programNumber']) ? (int) $json['programNumber'] : null, 'Rotate' => isset($json['rotate']) ? (string) $json['rotate'] : null, 'SampleRange' => isset($json['sampleRange']) ? (string) $json['sampleRange'] : null, + 'SelectorType' => isset($json['selectorType']) ? (string) $json['selectorType'] : null, + 'Streams' => !isset($json['streams']) ? null : $this->populateResult__listOf__integerMin1Max2147483647($json['streams']), ]); } diff --git a/src/Service/MediaConvert/src/ValueObject/AacSettings.php b/src/Service/MediaConvert/src/ValueObject/AacSettings.php index 1d976f8a8..294f8e25a 100644 --- a/src/Service/MediaConvert/src/ValueObject/AacSettings.php +++ b/src/Service/MediaConvert/src/ValueObject/AacSettings.php @@ -47,7 +47,8 @@ final class AacSettings * Specify the AAC profile. For the widest player compatibility and where higher bitrates are acceptable: Keep the * default profile, LC (AAC-LC) For improved audio performance at lower bitrates: Choose HEV1 or HEV2. HEV1 (AAC-HE v1) * adds spectral band replication to improve speech audio at low bitrates. HEV2 (AAC-HE v2) adds parametric stereo, - * which optimizes for encoding stereo audio at very low bitrates. + * which optimizes for encoding stereo audio at very low bitrates. For improved audio quality at lower bitrates, + * adaptive audio bitrate switching, and loudness control: Choose XHE. * * @var AacCodecProfile::*|null */ diff --git a/src/Service/MediaConvert/src/ValueObject/HlsSettings.php b/src/Service/MediaConvert/src/ValueObject/HlsSettings.php index dca47c561..02437fed2 100644 --- a/src/Service/MediaConvert/src/ValueObject/HlsSettings.php +++ b/src/Service/MediaConvert/src/ValueObject/HlsSettings.php @@ -61,10 +61,12 @@ final class HlsSettings private $descriptiveVideoServiceFlag; /** - * Choose Include to have MediaConvert generate a child manifest that lists only the I-frames for this rendition, in - * addition to your regular manifest for this rendition. You might use this manifest as part of a workflow that creates - * preview functions for your video. MediaConvert adds both the I-frame only child manifest and the regular child - * manifest to the parent manifest. When you don't need the I-frame only child manifest, keep the default value Exclude. + * Generate a variant manifest that lists only the I-frames for this rendition. You might use this manifest as part of a + * workflow that creates preview functions for your video. MediaConvert adds both the I-frame only variant manifest and + * the regular variant manifest to the multivariant manifest. To have MediaConvert write a variant manifest that + * references I-frames from your output content using EXT-X-BYTERANGE tags: Choose Include. To have MediaConvert output + * I-frames as single frame TS files and a corresponding variant manifest that references them: Choose Include as TS. + * When you don't need the I-frame only variant manifest: Keep the default value, Exclude. * * @var HlsIFrameOnlyManifest::*|null */ diff --git a/src/Service/MediaConvert/src/ValueObject/InputTamsSettings.php b/src/Service/MediaConvert/src/ValueObject/InputTamsSettings.php index 978c0a1c8..24ec29829 100644 --- a/src/Service/MediaConvert/src/ValueObject/InputTamsSettings.php +++ b/src/Service/MediaConvert/src/ValueObject/InputTamsSettings.php @@ -21,7 +21,8 @@ final class InputTamsSettings * EventBridge Connection stores your authentication credentials securely. MediaConvert assumes your job's IAM role to * access this connection, so ensure the role has the events:RetrieveConnectionCredentials, * secretsmanager:DescribeSecret, and secretsmanager:GetSecretValue permissions. Format: - * arn:aws:events:region:account-id:connection/connection-name/unique-id. + * arn:aws:events:region:account-id:connection/connection-name/unique-id This setting is required when you include TAMS + * settings in your job. * * @var string|null */ @@ -44,7 +45,7 @@ final class InputTamsSettings * the appropriate flows containing the media segments you want to process. The source ID corresponds to a specific * media source registered in your TAMS server. This source must be of type urn:x-nmos:format:multi, and can can * reference multiple flows for audio, video, or combined audio/video content. MediaConvert automatically selects the - * highest quality flows available for your job. This setting is required when include TAMS settings in your job. + * highest quality flows available for your job. This setting is required when you include TAMS settings in your job. * * @var string|null */ @@ -54,7 +55,7 @@ final class InputTamsSettings * Specify the time range of media segments to retrieve from your TAMS server. MediaConvert fetches only the segments * that fall within this range. Use the format specified by your TAMS server implementation. This must be two timestamp * values with the format {sign?}{seconds}:{nanoseconds}, separated by an underscore, surrounded by either parentheses - * or square brackets. Example: [15:0_35:0) This setting is required when include TAMS settings in your job. + * or square brackets. Example: [15:0_35:0) This setting is required when you include TAMS settings in your job. * * @var string|null */ diff --git a/src/Service/MediaConvert/src/ValueObject/Job.php b/src/Service/MediaConvert/src/ValueObject/Job.php index 68029b47e..709922cc6 100644 --- a/src/Service/MediaConvert/src/ValueObject/Job.php +++ b/src/Service/MediaConvert/src/ValueObject/Job.php @@ -7,6 +7,7 @@ use AsyncAws\MediaConvert\Enum\BillingTagsSource; use AsyncAws\MediaConvert\Enum\JobPhase; use AsyncAws\MediaConvert\Enum\JobStatus; +use AsyncAws\MediaConvert\Enum\ShareStatus; use AsyncAws\MediaConvert\Enum\SimulateReservedQueue; use AsyncAws\MediaConvert\Enum\StatusUpdateInterval; @@ -141,6 +142,14 @@ final class Job */ private $jobTemplate; + /** + * Contains information about the most recent share attempt for the job. For more information, see + * https://docs.aws.amazon.com/mediaconvert/latest/ug/creating-resource-share.html. + * + * @var string|null + */ + private $lastShareDetails; + /** * Provides messages from the service about jobs that you have already successfully submitted. * @@ -200,6 +209,13 @@ final class Job */ private $settings; + /** + * A job's share status can be NOT_SHARED, INITIATED, or SHARED. + * + * @var ShareStatus::*|null + */ + private $shareStatus; + /** * Enable this setting when you run a test job to estimate how many reserved transcoding slots (RTS) you need. When this * is enabled, MediaConvert runs your job from an on-demand queue with similar performance to what you will see with one @@ -264,6 +280,7 @@ final class Job * JobEngineVersionUsed?: null|string, * JobPercentComplete?: null|int, * JobTemplate?: null|string, + * LastShareDetails?: null|string, * Messages?: null|JobMessages|array, * OutputGroupDetails?: null|array, * Priority?: null|int, @@ -272,6 +289,7 @@ final class Job * RetryCount?: null|int, * Role: string, * Settings: JobSettings|array, + * ShareStatus?: null|ShareStatus::*, * SimulateReservedQueue?: null|SimulateReservedQueue::*, * Status?: null|JobStatus::*, * StatusUpdateInterval?: null|StatusUpdateInterval::*, @@ -297,6 +315,7 @@ public function __construct(array $input) $this->jobEngineVersionUsed = $input['JobEngineVersionUsed'] ?? null; $this->jobPercentComplete = $input['JobPercentComplete'] ?? null; $this->jobTemplate = $input['JobTemplate'] ?? null; + $this->lastShareDetails = $input['LastShareDetails'] ?? null; $this->messages = isset($input['Messages']) ? JobMessages::create($input['Messages']) : null; $this->outputGroupDetails = isset($input['OutputGroupDetails']) ? array_map([OutputGroupDetail::class, 'create'], $input['OutputGroupDetails']) : null; $this->priority = $input['Priority'] ?? null; @@ -305,6 +324,7 @@ public function __construct(array $input) $this->retryCount = $input['RetryCount'] ?? null; $this->role = $input['Role'] ?? $this->throwException(new InvalidArgument('Missing required field "Role".')); $this->settings = isset($input['Settings']) ? JobSettings::create($input['Settings']) : $this->throwException(new InvalidArgument('Missing required field "Settings".')); + $this->shareStatus = $input['ShareStatus'] ?? null; $this->simulateReservedQueue = $input['SimulateReservedQueue'] ?? null; $this->status = $input['Status'] ?? null; $this->statusUpdateInterval = $input['StatusUpdateInterval'] ?? null; @@ -330,6 +350,7 @@ public function __construct(array $input) * JobEngineVersionUsed?: null|string, * JobPercentComplete?: null|int, * JobTemplate?: null|string, + * LastShareDetails?: null|string, * Messages?: null|JobMessages|array, * OutputGroupDetails?: null|array, * Priority?: null|int, @@ -338,6 +359,7 @@ public function __construct(array $input) * RetryCount?: null|int, * Role: string, * Settings: JobSettings|array, + * ShareStatus?: null|ShareStatus::*, * SimulateReservedQueue?: null|SimulateReservedQueue::*, * Status?: null|JobStatus::*, * StatusUpdateInterval?: null|StatusUpdateInterval::*, @@ -438,6 +460,11 @@ public function getJobTemplate(): ?string return $this->jobTemplate; } + public function getLastShareDetails(): ?string + { + return $this->lastShareDetails; + } + public function getMessages(): ?JobMessages { return $this->messages; @@ -484,6 +511,14 @@ public function getSettings(): JobSettings return $this->settings; } + /** + * @return ShareStatus::*|null + */ + public function getShareStatus(): ?string + { + return $this->shareStatus; + } + /** * @return SimulateReservedQueue::*|null */ diff --git a/src/Service/MediaConvert/src/ValueObject/Mp2Settings.php b/src/Service/MediaConvert/src/ValueObject/Mp2Settings.php index 39892ace1..8192e3946 100644 --- a/src/Service/MediaConvert/src/ValueObject/Mp2Settings.php +++ b/src/Service/MediaConvert/src/ValueObject/Mp2Settings.php @@ -2,11 +2,26 @@ namespace AsyncAws\MediaConvert\ValueObject; +use AsyncAws\Core\Exception\InvalidArgument; +use AsyncAws\MediaConvert\Enum\Mp2AudioDescriptionMix; + /** * Required when you set Codec to the value MP2. */ final class Mp2Settings { + /** + * Choose BROADCASTER_MIXED_AD when the input contains pre-mixed main audio + audio description (AD) as a stereo pair. + * The value for AudioType will be set to 3, which signals to downstream systems that this stream contains "broadcaster + * mixed AD". Note that the input received by the encoder must contain pre-mixed audio; the encoder does not perform the + * mixing. When you choose BROADCASTER_MIXED_AD, the encoder ignores any values you provide in AudioType and + * FollowInputAudioType. Choose NONE when the input does not contain pre-mixed audio + audio description (AD). In this + * case, the encoder will use any values you provide for AudioType and FollowInputAudioType. + * + * @var Mp2AudioDescriptionMix::*|null + */ + private $audioDescriptionMix; + /** * Specify the average bitrate in bits per second. * @@ -31,6 +46,7 @@ final class Mp2Settings /** * @param array{ + * AudioDescriptionMix?: null|Mp2AudioDescriptionMix::*, * Bitrate?: null|int, * Channels?: null|int, * SampleRate?: null|int, @@ -38,6 +54,7 @@ final class Mp2Settings */ public function __construct(array $input) { + $this->audioDescriptionMix = $input['AudioDescriptionMix'] ?? null; $this->bitrate = $input['Bitrate'] ?? null; $this->channels = $input['Channels'] ?? null; $this->sampleRate = $input['SampleRate'] ?? null; @@ -45,6 +62,7 @@ public function __construct(array $input) /** * @param array{ + * AudioDescriptionMix?: null|Mp2AudioDescriptionMix::*, * Bitrate?: null|int, * Channels?: null|int, * SampleRate?: null|int, @@ -55,6 +73,14 @@ public static function create($input): self return $input instanceof self ? $input : new self($input); } + /** + * @return Mp2AudioDescriptionMix::*|null + */ + public function getAudioDescriptionMix(): ?string + { + return $this->audioDescriptionMix; + } + public function getBitrate(): ?int { return $this->bitrate; @@ -76,6 +102,12 @@ public function getSampleRate(): ?int public function requestBody(): array { $payload = []; + if (null !== $v = $this->audioDescriptionMix) { + if (!Mp2AudioDescriptionMix::exists($v)) { + throw new InvalidArgument(\sprintf('Invalid parameter "audioDescriptionMix" for "%s". The value "%s" is not a valid "Mp2AudioDescriptionMix".', __CLASS__, $v)); + } + $payload['audioDescriptionMix'] = $v; + } if (null !== $v = $this->bitrate) { $payload['bitrate'] = $v; } diff --git a/src/Service/MediaConvert/src/ValueObject/VideoSelector.php b/src/Service/MediaConvert/src/ValueObject/VideoSelector.php index 753fb63d9..f1b6e97b7 100644 --- a/src/Service/MediaConvert/src/ValueObject/VideoSelector.php +++ b/src/Service/MediaConvert/src/ValueObject/VideoSelector.php @@ -10,6 +10,7 @@ use AsyncAws\MediaConvert\Enum\InputRotate; use AsyncAws\MediaConvert\Enum\InputSampleRange; use AsyncAws\MediaConvert\Enum\PadVideo; +use AsyncAws\MediaConvert\Enum\VideoSelectorType; /** * Input video selectors contain the video settings for the input. Each of your inputs can have up to one video @@ -141,6 +142,24 @@ final class VideoSelector */ private $sampleRange; + /** + * Choose the video selector type for your HLS input. Use to specify which video rendition MediaConvert uses from your + * HLS input. To have MediaConvert automatically use the highest bitrate rendition from your HLS input: Keep the default + * value, Auto. To manually specify a rendition: Choose Stream. Then enter the unique stream number in the Streams + * array, starting at 1, corresponding to the stream order in the manifest. + * + * @var VideoSelectorType::*|null + */ + private $selectorType; + + /** + * Specify a stream for MediaConvert to use from your HLS input. Enter an integer corresponding to the stream order in + * your HLS manifest. + * + * @var int[]|null + */ + private $streams; + /** * @param array{ * AlphaBehavior?: null|AlphaBehavior::*, @@ -154,6 +173,8 @@ final class VideoSelector * ProgramNumber?: null|int, * Rotate?: null|InputRotate::*, * SampleRange?: null|InputSampleRange::*, + * SelectorType?: null|VideoSelectorType::*, + * Streams?: null|int[], * } $input */ public function __construct(array $input) @@ -169,6 +190,8 @@ public function __construct(array $input) $this->programNumber = $input['ProgramNumber'] ?? null; $this->rotate = $input['Rotate'] ?? null; $this->sampleRange = $input['SampleRange'] ?? null; + $this->selectorType = $input['SelectorType'] ?? null; + $this->streams = $input['Streams'] ?? null; } /** @@ -184,6 +207,8 @@ public function __construct(array $input) * ProgramNumber?: null|int, * Rotate?: null|InputRotate::*, * SampleRange?: null|InputSampleRange::*, + * SelectorType?: null|VideoSelectorType::*, + * Streams?: null|int[], * }|VideoSelector $input */ public static function create($input): self @@ -267,6 +292,22 @@ public function getSampleRange(): ?string return $this->sampleRange; } + /** + * @return VideoSelectorType::*|null + */ + public function getSelectorType(): ?string + { + return $this->selectorType; + } + + /** + * @return int[] + */ + public function getStreams(): array + { + return $this->streams ?? []; + } + /** * @internal */ @@ -327,6 +368,20 @@ public function requestBody(): array } $payload['sampleRange'] = $v; } + if (null !== $v = $this->selectorType) { + if (!VideoSelectorType::exists($v)) { + throw new InvalidArgument(\sprintf('Invalid parameter "selectorType" for "%s". The value "%s" is not a valid "VideoSelectorType".', __CLASS__, $v)); + } + $payload['selectorType'] = $v; + } + if (null !== $v = $this->streams) { + $index = -1; + $payload['streams'] = []; + foreach ($v as $listValue) { + ++$index; + $payload['streams'][$index] = $listValue; + } + } return $payload; } diff --git a/src/Service/Sqs/CHANGELOG.md b/src/Service/Sqs/CHANGELOG.md index d0c2e08c3..297e9f7cd 100644 --- a/src/Service/Sqs/CHANGELOG.md +++ b/src/Service/Sqs/CHANGELOG.md @@ -2,6 +2,10 @@ ## NOT RELEASED +### Changed + +- AWS enhancement: Documentation updates. + ## 2.7.0 ### Added diff --git a/src/Service/Sqs/src/Input/CreateQueueRequest.php b/src/Service/Sqs/src/Input/CreateQueueRequest.php index db9ddc343..4b5e527f9 100644 --- a/src/Service/Sqs/src/Input/CreateQueueRequest.php +++ b/src/Service/Sqs/src/Input/CreateQueueRequest.php @@ -34,7 +34,7 @@ final class CreateQueueRequest extends Input * - `DelaySeconds` – The length of time, in seconds, for which the delivery of all messages in the queue is delayed. * Valid values: An integer from 0 to 900 seconds (15 minutes). Default: 0. * - `MaximumMessageSize` – The limit of how many bytes a message can contain before Amazon SQS rejects it. Valid - * values: An integer from 1,024 bytes (1 KiB) to 262,144 bytes (256 KiB). Default: 262,144 (256 KiB). + * values: An integer from 1,024 bytes (1 KiB) to 1,048,576 bytes (1 MiB). Default: 1,048,576 bytes (1 MiB). * - `MessageRetentionPeriod` – The length of time, in seconds, for which Amazon SQS retains a message. Valid values: * An integer from 60 seconds (1 minute) to 1,209,600 seconds (14 days). Default: 345,600 (4 days). When you change a * queue's attributes, the change can take up to 60 seconds for most of the attributes to propagate throughout the diff --git a/src/Service/Sqs/src/Input/SendMessageRequest.php b/src/Service/Sqs/src/Input/SendMessageRequest.php index 429911dbe..066388b3e 100644 --- a/src/Service/Sqs/src/Input/SendMessageRequest.php +++ b/src/Service/Sqs/src/Input/SendMessageRequest.php @@ -24,7 +24,7 @@ final class SendMessageRequest extends Input private $queueUrl; /** - * The message to send. The minimum size is one character. The maximum size is 256 KiB. + * The message to send. The minimum size is one character. The maximum size is 1 MiB or 1,048,576 bytes. * * ! A message can include only XML, JSON, and unformatted text. The following Unicode characters are allowed. For more * ! information, see the W3C specification for characters [^1]. diff --git a/src/Service/Sqs/src/SqsClient.php b/src/Service/Sqs/src/SqsClient.php index 4cd30fb15..4b0840499 100644 --- a/src/Service/Sqs/src/SqsClient.php +++ b/src/Service/Sqs/src/SqsClient.php @@ -810,7 +810,7 @@ public function sendMessage($input): SendMessageResult * HTTP status code of `200`. * * The maximum allowed individual message size and the maximum total payload size (the sum of the individual lengths of - * all of the batched messages) are both 256 KiB (262,144 bytes). + * all of the batched messages) are both 1 MiB 1,048,576 bytes. * * ! A message can include only XML, JSON, and unformatted text. The following Unicode characters are allowed. For more * ! information, see the W3C specification for characters [^1]. diff --git a/src/Service/Sqs/src/ValueObject/MessageAttributeValue.php b/src/Service/Sqs/src/ValueObject/MessageAttributeValue.php index 6267aadf7..f24e9f1b8 100644 --- a/src/Service/Sqs/src/ValueObject/MessageAttributeValue.php +++ b/src/Service/Sqs/src/ValueObject/MessageAttributeValue.php @@ -9,7 +9,7 @@ * the content as the message body. For more information, see `SendMessage.`. * * `Name`, `type`, `value` and the message body must not be empty or null. All parts of the message attribute, including - * `Name`, `Type`, and `Value`, are part of the message size restriction (256 KiB or 262,144 bytes). + * `Name`, `Type`, and `Value`, are part of the message size restriction (1 MiB or 1,048,576 bytes). */ final class MessageAttributeValue {