From 8a42aafe209891ca594af12eab5925dfe359f3c2 Mon Sep 17 00:00:00 2001 From: AsyncAws Bot Date: Sat, 19 Jul 2025 06:38:25 +0000 Subject: [PATCH] update generated code --- manifest.json | 2 +- src/Service/MediaConvert/CHANGELOG.md | 1 + .../MediaConvert/src/Enum/TamsGapHandling.php | 27 ++++ .../src/Result/CreateJobResponse.php | 12 ++ .../src/Result/GetJobResponse.php | 12 ++ .../src/Result/ListJobsResponse.php | 12 ++ .../MediaConvert/src/ValueObject/Input.php | 36 ++++- .../src/ValueObject/InputTamsSettings.php | 139 ++++++++++++++++++ .../src/ValueObject/VideoOverlayCrop.php | 8 +- src/Service/Ssm/CHANGELOG.md | 4 + .../Ssm/src/Input/PutParameterRequest.php | 4 +- src/Service/Ssm/src/SsmClient.php | 12 ++ 12 files changed, 259 insertions(+), 10 deletions(-) create mode 100644 src/Service/MediaConvert/src/Enum/TamsGapHandling.php create mode 100644 src/Service/MediaConvert/src/ValueObject/InputTamsSettings.php diff --git a/manifest.json b/manifest.json index 572d5e285..aa33f4429 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "variables": { - "${LATEST}": "3.351.1" + "${LATEST}": "3.351.2" }, "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 e273d5c98..2d65dd022 100644 --- a/src/Service/MediaConvert/CHANGELOG.md +++ b/src/Service/MediaConvert/CHANGELOG.md @@ -7,6 +7,7 @@ - AWS api-change: This release includes support for embedding and signing C2PA content credentials in MP4 outputs. - AWS api-change: This release adds a new SPECIFIED_OPTIMAL option for handling DDS when using DVB-Sub with high resolution video. - AWS api-change: This release expands the range of supported audio outputs to include xHE, 192khz FLAC and the deprecation of dual mono for AC3. +- AWS api-change: This release adds support for TAMS server integration with MediaConvert inputs. ## 1.9.0 diff --git a/src/Service/MediaConvert/src/Enum/TamsGapHandling.php b/src/Service/MediaConvert/src/Enum/TamsGapHandling.php new file mode 100644 index 000000000..7f35ddba4 --- /dev/null +++ b/src/Service/MediaConvert/src/Enum/TamsGapHandling.php @@ -0,0 +1,27 @@ + true, + self::HOLD_LAST_FRAME => true, + self::SKIP_GAPS => true, + ][$value]); + } +} diff --git a/src/Service/MediaConvert/src/Result/CreateJobResponse.php b/src/Service/MediaConvert/src/Result/CreateJobResponse.php index d790aa170..85c4775e5 100644 --- a/src/Service/MediaConvert/src/Result/CreateJobResponse.php +++ b/src/Service/MediaConvert/src/Result/CreateJobResponse.php @@ -96,6 +96,7 @@ use AsyncAws\MediaConvert\ValueObject\Input; use AsyncAws\MediaConvert\ValueObject\InputClipping; use AsyncAws\MediaConvert\ValueObject\InputDecryptionSettings; +use AsyncAws\MediaConvert\ValueObject\InputTamsSettings; use AsyncAws\MediaConvert\ValueObject\InputVideoGenerator; use AsyncAws\MediaConvert\ValueObject\InsertableImage; use AsyncAws\MediaConvert\ValueObject\Job; @@ -1352,6 +1353,7 @@ private function populateResultInput(array $json): Input 'ProgramNumber' => isset($json['programNumber']) ? (int) $json['programNumber'] : null, 'PsiControl' => isset($json['psiControl']) ? (string) $json['psiControl'] : null, 'SupplementalImps' => !isset($json['supplementalImps']) ? null : $this->populateResult__listOf__stringPatternS3ASSETMAPXml($json['supplementalImps']), + 'TamsSettings' => empty($json['tamsSettings']) ? null : $this->populateResultInputTamsSettings($json['tamsSettings']), 'TimecodeSource' => isset($json['timecodeSource']) ? (string) $json['timecodeSource'] : null, 'TimecodeStart' => isset($json['timecodeStart']) ? (string) $json['timecodeStart'] : null, 'VideoGenerator' => empty($json['videoGenerator']) ? null : $this->populateResultInputVideoGenerator($json['videoGenerator']), @@ -1378,6 +1380,16 @@ private function populateResultInputDecryptionSettings(array $json): InputDecryp ]); } + private function populateResultInputTamsSettings(array $json): InputTamsSettings + { + return new InputTamsSettings([ + 'AuthConnectionArn' => isset($json['authConnectionArn']) ? (string) $json['authConnectionArn'] : null, + 'GapHandling' => isset($json['gapHandling']) ? (string) $json['gapHandling'] : null, + 'SourceId' => isset($json['sourceId']) ? (string) $json['sourceId'] : null, + 'Timerange' => isset($json['timerange']) ? (string) $json['timerange'] : null, + ]); + } + private function populateResultInputVideoGenerator(array $json): InputVideoGenerator { return new InputVideoGenerator([ diff --git a/src/Service/MediaConvert/src/Result/GetJobResponse.php b/src/Service/MediaConvert/src/Result/GetJobResponse.php index b592c552b..c06bc65f4 100644 --- a/src/Service/MediaConvert/src/Result/GetJobResponse.php +++ b/src/Service/MediaConvert/src/Result/GetJobResponse.php @@ -96,6 +96,7 @@ use AsyncAws\MediaConvert\ValueObject\Input; use AsyncAws\MediaConvert\ValueObject\InputClipping; use AsyncAws\MediaConvert\ValueObject\InputDecryptionSettings; +use AsyncAws\MediaConvert\ValueObject\InputTamsSettings; use AsyncAws\MediaConvert\ValueObject\InputVideoGenerator; use AsyncAws\MediaConvert\ValueObject\InsertableImage; use AsyncAws\MediaConvert\ValueObject\Job; @@ -1352,6 +1353,7 @@ private function populateResultInput(array $json): Input 'ProgramNumber' => isset($json['programNumber']) ? (int) $json['programNumber'] : null, 'PsiControl' => isset($json['psiControl']) ? (string) $json['psiControl'] : null, 'SupplementalImps' => !isset($json['supplementalImps']) ? null : $this->populateResult__listOf__stringPatternS3ASSETMAPXml($json['supplementalImps']), + 'TamsSettings' => empty($json['tamsSettings']) ? null : $this->populateResultInputTamsSettings($json['tamsSettings']), 'TimecodeSource' => isset($json['timecodeSource']) ? (string) $json['timecodeSource'] : null, 'TimecodeStart' => isset($json['timecodeStart']) ? (string) $json['timecodeStart'] : null, 'VideoGenerator' => empty($json['videoGenerator']) ? null : $this->populateResultInputVideoGenerator($json['videoGenerator']), @@ -1378,6 +1380,16 @@ private function populateResultInputDecryptionSettings(array $json): InputDecryp ]); } + private function populateResultInputTamsSettings(array $json): InputTamsSettings + { + return new InputTamsSettings([ + 'AuthConnectionArn' => isset($json['authConnectionArn']) ? (string) $json['authConnectionArn'] : null, + 'GapHandling' => isset($json['gapHandling']) ? (string) $json['gapHandling'] : null, + 'SourceId' => isset($json['sourceId']) ? (string) $json['sourceId'] : null, + 'Timerange' => isset($json['timerange']) ? (string) $json['timerange'] : null, + ]); + } + private function populateResultInputVideoGenerator(array $json): InputVideoGenerator { return new InputVideoGenerator([ diff --git a/src/Service/MediaConvert/src/Result/ListJobsResponse.php b/src/Service/MediaConvert/src/Result/ListJobsResponse.php index 3e75455a5..01c20ac65 100644 --- a/src/Service/MediaConvert/src/Result/ListJobsResponse.php +++ b/src/Service/MediaConvert/src/Result/ListJobsResponse.php @@ -99,6 +99,7 @@ use AsyncAws\MediaConvert\ValueObject\Input; use AsyncAws\MediaConvert\ValueObject\InputClipping; use AsyncAws\MediaConvert\ValueObject\InputDecryptionSettings; +use AsyncAws\MediaConvert\ValueObject\InputTamsSettings; use AsyncAws\MediaConvert\ValueObject\InputVideoGenerator; use AsyncAws\MediaConvert\ValueObject\InsertableImage; use AsyncAws\MediaConvert\ValueObject\Job; @@ -1419,6 +1420,7 @@ private function populateResultInput(array $json): Input 'ProgramNumber' => isset($json['programNumber']) ? (int) $json['programNumber'] : null, 'PsiControl' => isset($json['psiControl']) ? (string) $json['psiControl'] : null, 'SupplementalImps' => !isset($json['supplementalImps']) ? null : $this->populateResult__listOf__stringPatternS3ASSETMAPXml($json['supplementalImps']), + 'TamsSettings' => empty($json['tamsSettings']) ? null : $this->populateResultInputTamsSettings($json['tamsSettings']), 'TimecodeSource' => isset($json['timecodeSource']) ? (string) $json['timecodeSource'] : null, 'TimecodeStart' => isset($json['timecodeStart']) ? (string) $json['timecodeStart'] : null, 'VideoGenerator' => empty($json['videoGenerator']) ? null : $this->populateResultInputVideoGenerator($json['videoGenerator']), @@ -1445,6 +1447,16 @@ private function populateResultInputDecryptionSettings(array $json): InputDecryp ]); } + private function populateResultInputTamsSettings(array $json): InputTamsSettings + { + return new InputTamsSettings([ + 'AuthConnectionArn' => isset($json['authConnectionArn']) ? (string) $json['authConnectionArn'] : null, + 'GapHandling' => isset($json['gapHandling']) ? (string) $json['gapHandling'] : null, + 'SourceId' => isset($json['sourceId']) ? (string) $json['sourceId'] : null, + 'Timerange' => isset($json['timerange']) ? (string) $json['timerange'] : null, + ]); + } + private function populateResultInputVideoGenerator(array $json): InputVideoGenerator { return new InputVideoGenerator([ diff --git a/src/Service/MediaConvert/src/ValueObject/Input.php b/src/Service/MediaConvert/src/ValueObject/Input.php index eb09f4785..ae22d0102 100644 --- a/src/Service/MediaConvert/src/ValueObject/Input.php +++ b/src/Service/MediaConvert/src/ValueObject/Input.php @@ -123,10 +123,14 @@ final class Input /** * Specify the source file for your transcoding job. You can use multiple inputs in a single job. The service - * concatenates these inputs, in the order that you specify them in the job, to create the outputs. If your input format - * is IMF, specify your input by providing the path to your CPL. For example, "s3://bucket/vf/cpl.xml". If the CPL is in - * an incomplete IMP, make sure to use *Supplemental IMPs* to specify any supplemental IMPs that contain assets - * referenced by the CPL. + * concatenates these inputs, in the order that you specify them in the job, to create the outputs. For standard inputs, + * provide the path to your S3, HTTP, or HTTPS source file. For example, s3://amzn-s3-demo-bucket/input.mp4 for an + * Amazon S3 input or https://example.com/input.mp4 for an HTTPS input. For TAMS inputs, specify the HTTPS endpoint of + * your TAMS server. For example, https://tams-server.example.com . When you do, also specify Source ID, Timerange, GAP + * handling, and the Authorization connection ARN under TAMS settings. (Don't include these parameters in the Input file + * URL.) For IMF inputs, specify your input by providing the path to your CPL. For example, + * s3://amzn-s3-demo-bucket/vf/cpl.xml . If the CPL is in an incomplete IMP, make sure to use Supplemental IMPsto + * specify any supplemental IMPs that contain assets referenced by the CPL. * * @var string|null */ @@ -220,6 +224,19 @@ final class Input */ private $supplementalImps; + /** + * Specify a Time Addressable Media Store (TAMS) server as an input source. TAMS is an open-source API specification + * that provides access to time-segmented media content. Use TAMS to retrieve specific time ranges from live or archived + * media streams. When you specify TAMS settings, MediaConvert connects to your TAMS server, retrieves the media + * segments for your specified time range, and processes them as a single input. This enables workflows like extracting + * clips from live streams or processing specific portions of archived content. To use TAMS, you must: 1. Have access to + * a TAMS-compliant server 2. Specify the server URL in the Input file URL field 3. Provide the required SourceId and + * Timerange parameters 4. Configure authentication, if your TAMS server requires it. + * + * @var InputTamsSettings|null + */ + private $tamsSettings; + /** * Use this Timecode source setting, located under the input settings, to specify how the service counts input video * frames. This input frame count affects only the behavior of features that apply to a single input at a time, such as @@ -290,6 +307,7 @@ final class Input * ProgramNumber?: null|int, * PsiControl?: null|InputPsiControl::*, * SupplementalImps?: null|string[], + * TamsSettings?: null|InputTamsSettings|array, * TimecodeSource?: null|InputTimecodeSource::*, * TimecodeStart?: null|string, * VideoGenerator?: null|InputVideoGenerator|array, @@ -320,6 +338,7 @@ public function __construct(array $input) $this->programNumber = $input['ProgramNumber'] ?? null; $this->psiControl = $input['PsiControl'] ?? null; $this->supplementalImps = $input['SupplementalImps'] ?? null; + $this->tamsSettings = isset($input['TamsSettings']) ? InputTamsSettings::create($input['TamsSettings']) : null; $this->timecodeSource = $input['TimecodeSource'] ?? null; $this->timecodeStart = $input['TimecodeStart'] ?? null; $this->videoGenerator = isset($input['VideoGenerator']) ? InputVideoGenerator::create($input['VideoGenerator']) : null; @@ -350,6 +369,7 @@ public function __construct(array $input) * ProgramNumber?: null|int, * PsiControl?: null|InputPsiControl::*, * SupplementalImps?: null|string[], + * TamsSettings?: null|InputTamsSettings|array, * TimecodeSource?: null|InputTimecodeSource::*, * TimecodeStart?: null|string, * VideoGenerator?: null|InputVideoGenerator|array, @@ -503,6 +523,11 @@ public function getSupplementalImps(): array return $this->supplementalImps ?? []; } + public function getTamsSettings(): ?InputTamsSettings + { + return $this->tamsSettings; + } + /** * @return InputTimecodeSource::*|null */ @@ -659,6 +684,9 @@ public function requestBody(): array $payload['supplementalImps'][$index] = $listValue; } } + if (null !== $v = $this->tamsSettings) { + $payload['tamsSettings'] = $v->requestBody(); + } if (null !== $v = $this->timecodeSource) { if (!InputTimecodeSource::exists($v)) { throw new InvalidArgument(\sprintf('Invalid parameter "timecodeSource" for "%s". The value "%s" is not a valid "InputTimecodeSource".', __CLASS__, $v)); diff --git a/src/Service/MediaConvert/src/ValueObject/InputTamsSettings.php b/src/Service/MediaConvert/src/ValueObject/InputTamsSettings.php new file mode 100644 index 000000000..978c0a1c8 --- /dev/null +++ b/src/Service/MediaConvert/src/ValueObject/InputTamsSettings.php @@ -0,0 +1,139 @@ +authConnectionArn = $input['AuthConnectionArn'] ?? null; + $this->gapHandling = $input['GapHandling'] ?? null; + $this->sourceId = $input['SourceId'] ?? null; + $this->timerange = $input['Timerange'] ?? null; + } + + /** + * @param array{ + * AuthConnectionArn?: null|string, + * GapHandling?: null|TamsGapHandling::*, + * SourceId?: null|string, + * Timerange?: null|string, + * }|InputTamsSettings $input + */ + public static function create($input): self + { + return $input instanceof self ? $input : new self($input); + } + + public function getAuthConnectionArn(): ?string + { + return $this->authConnectionArn; + } + + /** + * @return TamsGapHandling::*|null + */ + public function getGapHandling(): ?string + { + return $this->gapHandling; + } + + public function getSourceId(): ?string + { + return $this->sourceId; + } + + public function getTimerange(): ?string + { + return $this->timerange; + } + + /** + * @internal + */ + public function requestBody(): array + { + $payload = []; + if (null !== $v = $this->authConnectionArn) { + $payload['authConnectionArn'] = $v; + } + if (null !== $v = $this->gapHandling) { + if (!TamsGapHandling::exists($v)) { + throw new InvalidArgument(\sprintf('Invalid parameter "gapHandling" for "%s". The value "%s" is not a valid "TamsGapHandling".', __CLASS__, $v)); + } + $payload['gapHandling'] = $v; + } + if (null !== $v = $this->sourceId) { + $payload['sourceId'] = $v; + } + if (null !== $v = $this->timerange) { + $payload['timerange'] = $v; + } + + return $payload; + } +} diff --git a/src/Service/MediaConvert/src/ValueObject/VideoOverlayCrop.php b/src/Service/MediaConvert/src/ValueObject/VideoOverlayCrop.php index d2b6a7ace..b5a46198a 100644 --- a/src/Service/MediaConvert/src/ValueObject/VideoOverlayCrop.php +++ b/src/Service/MediaConvert/src/ValueObject/VideoOverlayCrop.php @@ -15,8 +15,8 @@ final class VideoOverlayCrop * Specify the height of the video overlay cropping rectangle. To use the same height as your overlay input video: Keep * blank, or enter 0. To specify a different height for the cropping rectangle: Enter an integer representing the Unit * type that you choose, either Pixels or Percentage. For example, when you enter 100 and choose Pixels, the cropping - * rectangle will 100 pixels high. When you enter 10, choose Percentage, and your overlay input video is 1920x1080, the - * cropping rectangle will be 108 pixels high. + * rectangle will be 100 pixels high. When you enter 10, choose Percentage, and your overlay input video is 1920x1080, + * the cropping rectangle will be 108 pixels high. * * @var int|null */ @@ -34,8 +34,8 @@ final class VideoOverlayCrop * Specify the width of the video overlay cropping rectangle. To use the same width as your overlay input video: Keep * blank, or enter 0. To specify a different width for the cropping rectangle: Enter an integer representing the Unit * type that you choose, either Pixels or Percentage. For example, when you enter 100 and choose Pixels, the cropping - * rectangle will 100 pixels wide. When you enter 10, choose Percentage, and your overlay input video is 1920x1080, the - * cropping rectangle will be 192 pixels wide. + * rectangle will be 100 pixels wide. When you enter 10, choose Percentage, and your overlay input video is 1920x1080, + * the cropping rectangle will be 192 pixels wide. * * @var int|null */ diff --git a/src/Service/Ssm/CHANGELOG.md b/src/Service/Ssm/CHANGELOG.md index f1ead68ea..5809827c7 100644 --- a/src/Service/Ssm/CHANGELOG.md +++ b/src/Service/Ssm/CHANGELOG.md @@ -2,6 +2,10 @@ ## NOT RELEASED +### Changed + +- AWS enhancement: Documentation updates. + ## 2.3.0 ### Added diff --git a/src/Service/Ssm/src/Input/PutParameterRequest.php b/src/Service/Ssm/src/Input/PutParameterRequest.php index 411f37c4f..79a866307 100644 --- a/src/Service/Ssm/src/Input/PutParameterRequest.php +++ b/src/Service/Ssm/src/Input/PutParameterRequest.php @@ -30,7 +30,9 @@ final class PutParameterRequest extends Input * * In addition, the slash character ( / ) is used to delineate hierarchies in parameter names. For example: * `/Dev/Production/East/Project-ABC/MyParameter` - * - A parameter name can't include spaces. + * - Parameter names can't contain spaces. The service removes any spaces specified for the beginning or end of a + * parameter name. If the specified name for a parameter contains spaces between characters, the request fails with a + * `ValidationException` error. * - Parameter hierarchies are limited to a maximum depth of fifteen levels. * * For additional information about valid values for parameter names, see Creating Systems Manager parameters [^1] in diff --git a/src/Service/Ssm/src/SsmClient.php b/src/Service/Ssm/src/SsmClient.php index 5f264b696..9d79d781a 100644 --- a/src/Service/Ssm/src/SsmClient.php +++ b/src/Service/Ssm/src/SsmClient.php @@ -101,6 +101,10 @@ public function deleteParameters($input): DeleteParametersResult /** * Get information about a single parameter by specifying the parameter name. * + * Parameter names can't contain spaces. The service removes any spaces specified for the beginning or end of a + * parameter name. If the specified name for a parameter contains spaces between characters, the request fails with a + * `ValidationException` error. + * * > To get information about more than one parameter at a time, use the GetParameters operation. * * @see https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html @@ -135,6 +139,10 @@ public function getParameter($input): GetParameterResult * * > To get information about a single parameter, you can use the GetParameter operation instead. * + * Parameter names can't contain spaces. The service removes any spaces specified for the beginning or end of a + * parameter name. If the specified name for a parameter contains spaces between characters, the request fails with a + * `ValidationException` error. + * * @see https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameters.html * @see https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ssm-2014-11-06.html#getparameters * @@ -167,6 +175,10 @@ public function getParameters($input): GetParametersResult * and returns the matching values up to that point and a `NextToken`. You can specify the `NextToken` in a subsequent * call to get the next set of results. * + * Parameter names can't contain spaces. The service removes any spaces specified for the beginning or end of a + * parameter name. If the specified name for a parameter contains spaces between characters, the request fails with a + * `ValidationException` error. + * * @see https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParametersByPath.html * @see https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ssm-2014-11-06.html#getparametersbypath *