Skip to content

Commit 2a80053

Browse files
Update generated code (#1919)
update generated code
1 parent 2dd40b1 commit 2a80053

File tree

12 files changed

+259
-10
lines changed

12 files changed

+259
-10
lines changed

manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"variables": {
3-
"${LATEST}": "3.351.1"
3+
"${LATEST}": "3.351.2"
44
},
55
"endpoints": "https://raw.githubusercontent.com/aws/aws-sdk-php/${LATEST}/src/data/endpoints.json",
66
"services": {

src/Service/MediaConvert/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
- AWS api-change: This release includes support for embedding and signing C2PA content credentials in MP4 outputs.
88
- AWS api-change: This release adds a new SPECIFIED_OPTIMAL option for handling DDS when using DVB-Sub with high resolution video.
99
- 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.
10+
- AWS api-change: This release adds support for TAMS server integration with MediaConvert inputs.
1011

1112
## 1.9.0
1213

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
namespace AsyncAws\MediaConvert\Enum;
4+
5+
/**
6+
* Specify how MediaConvert handles gaps between media segments in your TAMS source. Gaps can occur in live streams due
7+
* to network issues or other interruptions. Choose from the following options: * Skip gaps - Default. Skip over gaps
8+
* and join segments together. This creates a continuous output with no blank frames, but may cause timeline
9+
* discontinuities. * Fill with black - Insert black frames to fill gaps between segments. This maintains timeline
10+
* continuity but adds black frames where content is missing. * Hold last frame - Repeat the last frame before a gap
11+
* until the next segment begins. This maintains visual continuity during gaps.
12+
*/
13+
final class TamsGapHandling
14+
{
15+
public const FILL_WITH_BLACK = 'FILL_WITH_BLACK';
16+
public const HOLD_LAST_FRAME = 'HOLD_LAST_FRAME';
17+
public const SKIP_GAPS = 'SKIP_GAPS';
18+
19+
public static function exists(string $value): bool
20+
{
21+
return isset([
22+
self::FILL_WITH_BLACK => true,
23+
self::HOLD_LAST_FRAME => true,
24+
self::SKIP_GAPS => true,
25+
][$value]);
26+
}
27+
}

src/Service/MediaConvert/src/Result/CreateJobResponse.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@
9696
use AsyncAws\MediaConvert\ValueObject\Input;
9797
use AsyncAws\MediaConvert\ValueObject\InputClipping;
9898
use AsyncAws\MediaConvert\ValueObject\InputDecryptionSettings;
99+
use AsyncAws\MediaConvert\ValueObject\InputTamsSettings;
99100
use AsyncAws\MediaConvert\ValueObject\InputVideoGenerator;
100101
use AsyncAws\MediaConvert\ValueObject\InsertableImage;
101102
use AsyncAws\MediaConvert\ValueObject\Job;
@@ -1352,6 +1353,7 @@ private function populateResultInput(array $json): Input
13521353
'ProgramNumber' => isset($json['programNumber']) ? (int) $json['programNumber'] : null,
13531354
'PsiControl' => isset($json['psiControl']) ? (string) $json['psiControl'] : null,
13541355
'SupplementalImps' => !isset($json['supplementalImps']) ? null : $this->populateResult__listOf__stringPatternS3ASSETMAPXml($json['supplementalImps']),
1356+
'TamsSettings' => empty($json['tamsSettings']) ? null : $this->populateResultInputTamsSettings($json['tamsSettings']),
13551357
'TimecodeSource' => isset($json['timecodeSource']) ? (string) $json['timecodeSource'] : null,
13561358
'TimecodeStart' => isset($json['timecodeStart']) ? (string) $json['timecodeStart'] : null,
13571359
'VideoGenerator' => empty($json['videoGenerator']) ? null : $this->populateResultInputVideoGenerator($json['videoGenerator']),
@@ -1378,6 +1380,16 @@ private function populateResultInputDecryptionSettings(array $json): InputDecryp
13781380
]);
13791381
}
13801382

1383+
private function populateResultInputTamsSettings(array $json): InputTamsSettings
1384+
{
1385+
return new InputTamsSettings([
1386+
'AuthConnectionArn' => isset($json['authConnectionArn']) ? (string) $json['authConnectionArn'] : null,
1387+
'GapHandling' => isset($json['gapHandling']) ? (string) $json['gapHandling'] : null,
1388+
'SourceId' => isset($json['sourceId']) ? (string) $json['sourceId'] : null,
1389+
'Timerange' => isset($json['timerange']) ? (string) $json['timerange'] : null,
1390+
]);
1391+
}
1392+
13811393
private function populateResultInputVideoGenerator(array $json): InputVideoGenerator
13821394
{
13831395
return new InputVideoGenerator([

src/Service/MediaConvert/src/Result/GetJobResponse.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@
9696
use AsyncAws\MediaConvert\ValueObject\Input;
9797
use AsyncAws\MediaConvert\ValueObject\InputClipping;
9898
use AsyncAws\MediaConvert\ValueObject\InputDecryptionSettings;
99+
use AsyncAws\MediaConvert\ValueObject\InputTamsSettings;
99100
use AsyncAws\MediaConvert\ValueObject\InputVideoGenerator;
100101
use AsyncAws\MediaConvert\ValueObject\InsertableImage;
101102
use AsyncAws\MediaConvert\ValueObject\Job;
@@ -1352,6 +1353,7 @@ private function populateResultInput(array $json): Input
13521353
'ProgramNumber' => isset($json['programNumber']) ? (int) $json['programNumber'] : null,
13531354
'PsiControl' => isset($json['psiControl']) ? (string) $json['psiControl'] : null,
13541355
'SupplementalImps' => !isset($json['supplementalImps']) ? null : $this->populateResult__listOf__stringPatternS3ASSETMAPXml($json['supplementalImps']),
1356+
'TamsSettings' => empty($json['tamsSettings']) ? null : $this->populateResultInputTamsSettings($json['tamsSettings']),
13551357
'TimecodeSource' => isset($json['timecodeSource']) ? (string) $json['timecodeSource'] : null,
13561358
'TimecodeStart' => isset($json['timecodeStart']) ? (string) $json['timecodeStart'] : null,
13571359
'VideoGenerator' => empty($json['videoGenerator']) ? null : $this->populateResultInputVideoGenerator($json['videoGenerator']),
@@ -1378,6 +1380,16 @@ private function populateResultInputDecryptionSettings(array $json): InputDecryp
13781380
]);
13791381
}
13801382

1383+
private function populateResultInputTamsSettings(array $json): InputTamsSettings
1384+
{
1385+
return new InputTamsSettings([
1386+
'AuthConnectionArn' => isset($json['authConnectionArn']) ? (string) $json['authConnectionArn'] : null,
1387+
'GapHandling' => isset($json['gapHandling']) ? (string) $json['gapHandling'] : null,
1388+
'SourceId' => isset($json['sourceId']) ? (string) $json['sourceId'] : null,
1389+
'Timerange' => isset($json['timerange']) ? (string) $json['timerange'] : null,
1390+
]);
1391+
}
1392+
13811393
private function populateResultInputVideoGenerator(array $json): InputVideoGenerator
13821394
{
13831395
return new InputVideoGenerator([

src/Service/MediaConvert/src/Result/ListJobsResponse.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@
9999
use AsyncAws\MediaConvert\ValueObject\Input;
100100
use AsyncAws\MediaConvert\ValueObject\InputClipping;
101101
use AsyncAws\MediaConvert\ValueObject\InputDecryptionSettings;
102+
use AsyncAws\MediaConvert\ValueObject\InputTamsSettings;
102103
use AsyncAws\MediaConvert\ValueObject\InputVideoGenerator;
103104
use AsyncAws\MediaConvert\ValueObject\InsertableImage;
104105
use AsyncAws\MediaConvert\ValueObject\Job;
@@ -1419,6 +1420,7 @@ private function populateResultInput(array $json): Input
14191420
'ProgramNumber' => isset($json['programNumber']) ? (int) $json['programNumber'] : null,
14201421
'PsiControl' => isset($json['psiControl']) ? (string) $json['psiControl'] : null,
14211422
'SupplementalImps' => !isset($json['supplementalImps']) ? null : $this->populateResult__listOf__stringPatternS3ASSETMAPXml($json['supplementalImps']),
1423+
'TamsSettings' => empty($json['tamsSettings']) ? null : $this->populateResultInputTamsSettings($json['tamsSettings']),
14221424
'TimecodeSource' => isset($json['timecodeSource']) ? (string) $json['timecodeSource'] : null,
14231425
'TimecodeStart' => isset($json['timecodeStart']) ? (string) $json['timecodeStart'] : null,
14241426
'VideoGenerator' => empty($json['videoGenerator']) ? null : $this->populateResultInputVideoGenerator($json['videoGenerator']),
@@ -1445,6 +1447,16 @@ private function populateResultInputDecryptionSettings(array $json): InputDecryp
14451447
]);
14461448
}
14471449

1450+
private function populateResultInputTamsSettings(array $json): InputTamsSettings
1451+
{
1452+
return new InputTamsSettings([
1453+
'AuthConnectionArn' => isset($json['authConnectionArn']) ? (string) $json['authConnectionArn'] : null,
1454+
'GapHandling' => isset($json['gapHandling']) ? (string) $json['gapHandling'] : null,
1455+
'SourceId' => isset($json['sourceId']) ? (string) $json['sourceId'] : null,
1456+
'Timerange' => isset($json['timerange']) ? (string) $json['timerange'] : null,
1457+
]);
1458+
}
1459+
14481460
private function populateResultInputVideoGenerator(array $json): InputVideoGenerator
14491461
{
14501462
return new InputVideoGenerator([

src/Service/MediaConvert/src/ValueObject/Input.php

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,14 @@ final class Input
123123

124124
/**
125125
* Specify the source file for your transcoding job. You can use multiple inputs in a single job. The service
126-
* concatenates these inputs, in the order that you specify them in the job, to create the outputs. If your input format
127-
* is IMF, specify your input by providing the path to your CPL. For example, "s3://bucket/vf/cpl.xml". If the CPL is in
128-
* an incomplete IMP, make sure to use *Supplemental IMPs* to specify any supplemental IMPs that contain assets
129-
* referenced by the CPL.
126+
* concatenates these inputs, in the order that you specify them in the job, to create the outputs. For standard inputs,
127+
* provide the path to your S3, HTTP, or HTTPS source file. For example, s3://amzn-s3-demo-bucket/input.mp4 for an
128+
* Amazon S3 input or https://example.com/input.mp4 for an HTTPS input. For TAMS inputs, specify the HTTPS endpoint of
129+
* your TAMS server. For example, https://tams-server.example.com . When you do, also specify Source ID, Timerange, GAP
130+
* handling, and the Authorization connection ARN under TAMS settings. (Don't include these parameters in the Input file
131+
* URL.) For IMF inputs, specify your input by providing the path to your CPL. For example,
132+
* s3://amzn-s3-demo-bucket/vf/cpl.xml . If the CPL is in an incomplete IMP, make sure to use Supplemental IMPsto
133+
* specify any supplemental IMPs that contain assets referenced by the CPL.
130134
*
131135
* @var string|null
132136
*/
@@ -220,6 +224,19 @@ final class Input
220224
*/
221225
private $supplementalImps;
222226

227+
/**
228+
* Specify a Time Addressable Media Store (TAMS) server as an input source. TAMS is an open-source API specification
229+
* that provides access to time-segmented media content. Use TAMS to retrieve specific time ranges from live or archived
230+
* media streams. When you specify TAMS settings, MediaConvert connects to your TAMS server, retrieves the media
231+
* segments for your specified time range, and processes them as a single input. This enables workflows like extracting
232+
* clips from live streams or processing specific portions of archived content. To use TAMS, you must: 1. Have access to
233+
* a TAMS-compliant server 2. Specify the server URL in the Input file URL field 3. Provide the required SourceId and
234+
* Timerange parameters 4. Configure authentication, if your TAMS server requires it.
235+
*
236+
* @var InputTamsSettings|null
237+
*/
238+
private $tamsSettings;
239+
223240
/**
224241
* Use this Timecode source setting, located under the input settings, to specify how the service counts input video
225242
* 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
290307
* ProgramNumber?: null|int,
291308
* PsiControl?: null|InputPsiControl::*,
292309
* SupplementalImps?: null|string[],
310+
* TamsSettings?: null|InputTamsSettings|array,
293311
* TimecodeSource?: null|InputTimecodeSource::*,
294312
* TimecodeStart?: null|string,
295313
* VideoGenerator?: null|InputVideoGenerator|array,
@@ -320,6 +338,7 @@ public function __construct(array $input)
320338
$this->programNumber = $input['ProgramNumber'] ?? null;
321339
$this->psiControl = $input['PsiControl'] ?? null;
322340
$this->supplementalImps = $input['SupplementalImps'] ?? null;
341+
$this->tamsSettings = isset($input['TamsSettings']) ? InputTamsSettings::create($input['TamsSettings']) : null;
323342
$this->timecodeSource = $input['TimecodeSource'] ?? null;
324343
$this->timecodeStart = $input['TimecodeStart'] ?? null;
325344
$this->videoGenerator = isset($input['VideoGenerator']) ? InputVideoGenerator::create($input['VideoGenerator']) : null;
@@ -350,6 +369,7 @@ public function __construct(array $input)
350369
* ProgramNumber?: null|int,
351370
* PsiControl?: null|InputPsiControl::*,
352371
* SupplementalImps?: null|string[],
372+
* TamsSettings?: null|InputTamsSettings|array,
353373
* TimecodeSource?: null|InputTimecodeSource::*,
354374
* TimecodeStart?: null|string,
355375
* VideoGenerator?: null|InputVideoGenerator|array,
@@ -503,6 +523,11 @@ public function getSupplementalImps(): array
503523
return $this->supplementalImps ?? [];
504524
}
505525

526+
public function getTamsSettings(): ?InputTamsSettings
527+
{
528+
return $this->tamsSettings;
529+
}
530+
506531
/**
507532
* @return InputTimecodeSource::*|null
508533
*/
@@ -659,6 +684,9 @@ public function requestBody(): array
659684
$payload['supplementalImps'][$index] = $listValue;
660685
}
661686
}
687+
if (null !== $v = $this->tamsSettings) {
688+
$payload['tamsSettings'] = $v->requestBody();
689+
}
662690
if (null !== $v = $this->timecodeSource) {
663691
if (!InputTimecodeSource::exists($v)) {
664692
throw new InvalidArgument(\sprintf('Invalid parameter "timecodeSource" for "%s". The value "%s" is not a valid "InputTimecodeSource".', __CLASS__, $v));
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
<?php
2+
3+
namespace AsyncAws\MediaConvert\ValueObject;
4+
5+
use AsyncAws\Core\Exception\InvalidArgument;
6+
use AsyncAws\MediaConvert\Enum\TamsGapHandling;
7+
8+
/**
9+
* Specify a Time Addressable Media Store (TAMS) server as an input source. TAMS is an open-source API specification
10+
* that provides access to time-segmented media content. Use TAMS to retrieve specific time ranges from live or archived
11+
* media streams. When you specify TAMS settings, MediaConvert connects to your TAMS server, retrieves the media
12+
* segments for your specified time range, and processes them as a single input. This enables workflows like extracting
13+
* clips from live streams or processing specific portions of archived content. To use TAMS, you must: 1. Have access to
14+
* a TAMS-compliant server 2. Specify the server URL in the Input file URL field 3. Provide the required SourceId and
15+
* Timerange parameters 4. Configure authentication, if your TAMS server requires it.
16+
*/
17+
final class InputTamsSettings
18+
{
19+
/**
20+
* Specify the ARN (Amazon Resource Name) of an EventBridge Connection to authenticate with your TAMS server. The
21+
* EventBridge Connection stores your authentication credentials securely. MediaConvert assumes your job's IAM role to
22+
* access this connection, so ensure the role has the events:RetrieveConnectionCredentials,
23+
* secretsmanager:DescribeSecret, and secretsmanager:GetSecretValue permissions. Format:
24+
* arn:aws:events:region:account-id:connection/connection-name/unique-id.
25+
*
26+
* @var string|null
27+
*/
28+
private $authConnectionArn;
29+
30+
/**
31+
* Specify how MediaConvert handles gaps between media segments in your TAMS source. Gaps can occur in live streams due
32+
* to network issues or other interruptions. Choose from the following options: * Skip gaps - Default. Skip over gaps
33+
* and join segments together. This creates a continuous output with no blank frames, but may cause timeline
34+
* discontinuities. * Fill with black - Insert black frames to fill gaps between segments. This maintains timeline
35+
* continuity but adds black frames where content is missing. * Hold last frame - Repeat the last frame before a gap
36+
* until the next segment begins. This maintains visual continuity during gaps.
37+
*
38+
* @var TamsGapHandling::*|null
39+
*/
40+
private $gapHandling;
41+
42+
/**
43+
* Specify the unique identifier for the media source in your TAMS server. MediaConvert uses this source ID to locate
44+
* the appropriate flows containing the media segments you want to process. The source ID corresponds to a specific
45+
* media source registered in your TAMS server. This source must be of type urn:x-nmos:format:multi, and can can
46+
* reference multiple flows for audio, video, or combined audio/video content. MediaConvert automatically selects the
47+
* highest quality flows available for your job. This setting is required when include TAMS settings in your job.
48+
*
49+
* @var string|null
50+
*/
51+
private $sourceId;
52+
53+
/**
54+
* Specify the time range of media segments to retrieve from your TAMS server. MediaConvert fetches only the segments
55+
* that fall within this range. Use the format specified by your TAMS server implementation. This must be two timestamp
56+
* values with the format {sign?}{seconds}:{nanoseconds}, separated by an underscore, surrounded by either parentheses
57+
* or square brackets. Example: [15:0_35:0) This setting is required when include TAMS settings in your job.
58+
*
59+
* @var string|null
60+
*/
61+
private $timerange;
62+
63+
/**
64+
* @param array{
65+
* AuthConnectionArn?: null|string,
66+
* GapHandling?: null|TamsGapHandling::*,
67+
* SourceId?: null|string,
68+
* Timerange?: null|string,
69+
* } $input
70+
*/
71+
public function __construct(array $input)
72+
{
73+
$this->authConnectionArn = $input['AuthConnectionArn'] ?? null;
74+
$this->gapHandling = $input['GapHandling'] ?? null;
75+
$this->sourceId = $input['SourceId'] ?? null;
76+
$this->timerange = $input['Timerange'] ?? null;
77+
}
78+
79+
/**
80+
* @param array{
81+
* AuthConnectionArn?: null|string,
82+
* GapHandling?: null|TamsGapHandling::*,
83+
* SourceId?: null|string,
84+
* Timerange?: null|string,
85+
* }|InputTamsSettings $input
86+
*/
87+
public static function create($input): self
88+
{
89+
return $input instanceof self ? $input : new self($input);
90+
}
91+
92+
public function getAuthConnectionArn(): ?string
93+
{
94+
return $this->authConnectionArn;
95+
}
96+
97+
/**
98+
* @return TamsGapHandling::*|null
99+
*/
100+
public function getGapHandling(): ?string
101+
{
102+
return $this->gapHandling;
103+
}
104+
105+
public function getSourceId(): ?string
106+
{
107+
return $this->sourceId;
108+
}
109+
110+
public function getTimerange(): ?string
111+
{
112+
return $this->timerange;
113+
}
114+
115+
/**
116+
* @internal
117+
*/
118+
public function requestBody(): array
119+
{
120+
$payload = [];
121+
if (null !== $v = $this->authConnectionArn) {
122+
$payload['authConnectionArn'] = $v;
123+
}
124+
if (null !== $v = $this->gapHandling) {
125+
if (!TamsGapHandling::exists($v)) {
126+
throw new InvalidArgument(\sprintf('Invalid parameter "gapHandling" for "%s". The value "%s" is not a valid "TamsGapHandling".', __CLASS__, $v));
127+
}
128+
$payload['gapHandling'] = $v;
129+
}
130+
if (null !== $v = $this->sourceId) {
131+
$payload['sourceId'] = $v;
132+
}
133+
if (null !== $v = $this->timerange) {
134+
$payload['timerange'] = $v;
135+
}
136+
137+
return $payload;
138+
}
139+
}

0 commit comments

Comments
 (0)