aws-cdk.aws-ivs-alpha 2.178.2a0__tar.gz → 2.179.0a0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of aws-cdk.aws-ivs-alpha might be problematic. Click here for more details.

Files changed (18) hide show
  1. {aws_cdk_aws_ivs_alpha-2.178.2a0/src/aws_cdk.aws_ivs_alpha.egg-info → aws_cdk_aws_ivs_alpha-2.179.0a0}/PKG-INFO +22 -2
  2. {aws_cdk_aws_ivs_alpha-2.178.2a0 → aws_cdk_aws_ivs_alpha-2.179.0a0}/README.md +20 -0
  3. {aws_cdk_aws_ivs_alpha-2.178.2a0 → aws_cdk_aws_ivs_alpha-2.179.0a0}/setup.py +3 -3
  4. {aws_cdk_aws_ivs_alpha-2.178.2a0 → aws_cdk_aws_ivs_alpha-2.179.0a0}/src/aws_cdk/aws_ivs_alpha/__init__.py +259 -3
  5. {aws_cdk_aws_ivs_alpha-2.178.2a0 → aws_cdk_aws_ivs_alpha-2.179.0a0}/src/aws_cdk/aws_ivs_alpha/_jsii/__init__.py +2 -2
  6. aws_cdk_aws_ivs_alpha-2.179.0a0/src/aws_cdk/aws_ivs_alpha/_jsii/aws-ivs-alpha@2.179.0-alpha.0.jsii.tgz +0 -0
  7. {aws_cdk_aws_ivs_alpha-2.178.2a0 → aws_cdk_aws_ivs_alpha-2.179.0a0/src/aws_cdk.aws_ivs_alpha.egg-info}/PKG-INFO +22 -2
  8. {aws_cdk_aws_ivs_alpha-2.178.2a0 → aws_cdk_aws_ivs_alpha-2.179.0a0}/src/aws_cdk.aws_ivs_alpha.egg-info/SOURCES.txt +1 -1
  9. {aws_cdk_aws_ivs_alpha-2.178.2a0 → aws_cdk_aws_ivs_alpha-2.179.0a0}/src/aws_cdk.aws_ivs_alpha.egg-info/requires.txt +1 -1
  10. aws_cdk_aws_ivs_alpha-2.178.2a0/src/aws_cdk/aws_ivs_alpha/_jsii/aws-ivs-alpha@2.178.2-alpha.0.jsii.tgz +0 -0
  11. {aws_cdk_aws_ivs_alpha-2.178.2a0 → aws_cdk_aws_ivs_alpha-2.179.0a0}/LICENSE +0 -0
  12. {aws_cdk_aws_ivs_alpha-2.178.2a0 → aws_cdk_aws_ivs_alpha-2.179.0a0}/MANIFEST.in +0 -0
  13. {aws_cdk_aws_ivs_alpha-2.178.2a0 → aws_cdk_aws_ivs_alpha-2.179.0a0}/NOTICE +0 -0
  14. {aws_cdk_aws_ivs_alpha-2.178.2a0 → aws_cdk_aws_ivs_alpha-2.179.0a0}/pyproject.toml +0 -0
  15. {aws_cdk_aws_ivs_alpha-2.178.2a0 → aws_cdk_aws_ivs_alpha-2.179.0a0}/setup.cfg +0 -0
  16. {aws_cdk_aws_ivs_alpha-2.178.2a0 → aws_cdk_aws_ivs_alpha-2.179.0a0}/src/aws_cdk/aws_ivs_alpha/py.typed +0 -0
  17. {aws_cdk_aws_ivs_alpha-2.178.2a0 → aws_cdk_aws_ivs_alpha-2.179.0a0}/src/aws_cdk.aws_ivs_alpha.egg-info/dependency_links.txt +0 -0
  18. {aws_cdk_aws_ivs_alpha-2.178.2a0 → aws_cdk_aws_ivs_alpha-2.179.0a0}/src/aws_cdk.aws_ivs_alpha.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: aws-cdk.aws-ivs-alpha
3
- Version: 2.178.2a0
3
+ Version: 2.179.0a0
4
4
  Summary: The CDK Construct Library for AWS::IVS
5
5
  Home-page: https://github.com/aws/aws-cdk
6
6
  Author: Amazon Web Services
@@ -23,7 +23,7 @@ Requires-Python: ~=3.8
23
23
  Description-Content-Type: text/markdown
24
24
  License-File: LICENSE
25
25
  License-File: NOTICE
26
- Requires-Dist: aws-cdk-lib<3.0.0,>=2.178.2
26
+ Requires-Dist: aws-cdk-lib<3.0.0,>=2.179.0
27
27
  Requires-Dist: constructs<11.0.0,>=10.0.0
28
28
  Requires-Dist: jsii<2.0.0,>=1.106.0
29
29
  Requires-Dist: publication>=0.0.3
@@ -97,6 +97,26 @@ my_rtmp_channel = ivs.Channel(self, "myRtmpChannel",
97
97
  )
98
98
  ```
99
99
 
100
+ ### Multitrack Video
101
+
102
+ Multitrack video is a new, low-latency streaming paradigm supported by Amazon Interactive Video Service (IVS) and services that use Amazon IVS.
103
+
104
+ You can use Multitrack Video by setting the `multitrackInputConfiguration` property.
105
+ Multitrack Video requires both a STANDARD Channel and Fragmented Mp4.
106
+
107
+ For more information, see [Amazon IVS Multitrack Video](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/multitrack-video.html).
108
+
109
+ ```python
110
+ ivs.Channel(self, "ChannelWithMultitrackVideo",
111
+ type=ivs.ChannelType.STANDARD,
112
+ container_format=ivs.ContainerFormat.FRAGMENTED_MP4,
113
+ multitrack_input_configuration=ivs.MultitrackInputConfiguration(
114
+ maximum_resolution=ivs.MaximumResolution.HD,
115
+ policy=ivs.Policy.ALLOW
116
+ )
117
+ )
118
+ ```
119
+
100
120
  ### Importing an existing channel
101
121
 
102
122
  You can reference an existing channel, for example, if you need to create a
@@ -66,6 +66,26 @@ my_rtmp_channel = ivs.Channel(self, "myRtmpChannel",
66
66
  )
67
67
  ```
68
68
 
69
+ ### Multitrack Video
70
+
71
+ Multitrack video is a new, low-latency streaming paradigm supported by Amazon Interactive Video Service (IVS) and services that use Amazon IVS.
72
+
73
+ You can use Multitrack Video by setting the `multitrackInputConfiguration` property.
74
+ Multitrack Video requires both a STANDARD Channel and Fragmented Mp4.
75
+
76
+ For more information, see [Amazon IVS Multitrack Video](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/multitrack-video.html).
77
+
78
+ ```python
79
+ ivs.Channel(self, "ChannelWithMultitrackVideo",
80
+ type=ivs.ChannelType.STANDARD,
81
+ container_format=ivs.ContainerFormat.FRAGMENTED_MP4,
82
+ multitrack_input_configuration=ivs.MultitrackInputConfiguration(
83
+ maximum_resolution=ivs.MaximumResolution.HD,
84
+ policy=ivs.Policy.ALLOW
85
+ )
86
+ )
87
+ ```
88
+
69
89
  ### Importing an existing channel
70
90
 
71
91
  You can reference an existing channel, for example, if you need to create a
@@ -5,7 +5,7 @@ kwargs = json.loads(
5
5
  """
6
6
  {
7
7
  "name": "aws-cdk.aws-ivs-alpha",
8
- "version": "2.178.2.a0",
8
+ "version": "2.179.0.a0",
9
9
  "description": "The CDK Construct Library for AWS::IVS",
10
10
  "license": "Apache-2.0",
11
11
  "url": "https://github.com/aws/aws-cdk",
@@ -26,7 +26,7 @@ kwargs = json.loads(
26
26
  ],
27
27
  "package_data": {
28
28
  "aws_cdk.aws_ivs_alpha._jsii": [
29
- "aws-ivs-alpha@2.178.2-alpha.0.jsii.tgz"
29
+ "aws-ivs-alpha@2.179.0-alpha.0.jsii.tgz"
30
30
  ],
31
31
  "aws_cdk.aws_ivs_alpha": [
32
32
  "py.typed"
@@ -34,7 +34,7 @@ kwargs = json.loads(
34
34
  },
35
35
  "python_requires": "~=3.8",
36
36
  "install_requires": [
37
- "aws-cdk-lib>=2.178.2, <3.0.0",
37
+ "aws-cdk-lib>=2.179.0, <3.0.0",
38
38
  "constructs>=10.0.0, <11.0.0",
39
39
  "jsii>=1.106.0, <2.0.0",
40
40
  "publication>=0.0.3",
@@ -67,6 +67,26 @@ my_rtmp_channel = ivs.Channel(self, "myRtmpChannel",
67
67
  )
68
68
  ```
69
69
 
70
+ ### Multitrack Video
71
+
72
+ Multitrack video is a new, low-latency streaming paradigm supported by Amazon Interactive Video Service (IVS) and services that use Amazon IVS.
73
+
74
+ You can use Multitrack Video by setting the `multitrackInputConfiguration` property.
75
+ Multitrack Video requires both a STANDARD Channel and Fragmented Mp4.
76
+
77
+ For more information, see [Amazon IVS Multitrack Video](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/multitrack-video.html).
78
+
79
+ ```python
80
+ ivs.Channel(self, "ChannelWithMultitrackVideo",
81
+ type=ivs.ChannelType.STANDARD,
82
+ container_format=ivs.ContainerFormat.FRAGMENTED_MP4,
83
+ multitrack_input_configuration=ivs.MultitrackInputConfiguration(
84
+ maximum_resolution=ivs.MaximumResolution.HD,
85
+ policy=ivs.Policy.ALLOW
86
+ )
87
+ )
88
+ ```
89
+
70
90
  ### Importing an existing channel
71
91
 
72
92
  You can reference an existing channel, for example, if you need to create a
@@ -250,8 +270,10 @@ import constructs as _constructs_77d1e7e8
250
270
  name_mapping={
251
271
  "authorized": "authorized",
252
272
  "channel_name": "channelName",
273
+ "container_format": "containerFormat",
253
274
  "insecure_ingest": "insecureIngest",
254
275
  "latency_mode": "latencyMode",
276
+ "multitrack_input_configuration": "multitrackInputConfiguration",
255
277
  "preset": "preset",
256
278
  "recording_configuration": "recordingConfiguration",
257
279
  "type": "type",
@@ -263,8 +285,10 @@ class ChannelProps:
263
285
  *,
264
286
  authorized: typing.Optional[builtins.bool] = None,
265
287
  channel_name: typing.Optional[builtins.str] = None,
288
+ container_format: typing.Optional["ContainerFormat"] = None,
266
289
  insecure_ingest: typing.Optional[builtins.bool] = None,
267
290
  latency_mode: typing.Optional["LatencyMode"] = None,
291
+ multitrack_input_configuration: typing.Optional[typing.Union["MultitrackInputConfiguration", typing.Dict[builtins.str, typing.Any]]] = None,
268
292
  preset: typing.Optional["Preset"] = None,
269
293
  recording_configuration: typing.Optional["IRecordingConfiguration"] = None,
270
294
  type: typing.Optional["ChannelType"] = None,
@@ -273,8 +297,10 @@ class ChannelProps:
273
297
 
274
298
  :param authorized: (experimental) Whether the channel is authorized. If you wish to make an authorized channel, you will need to ensure that a PlaybackKeyPair has been uploaded to your account as this is used to validate the signed JWT that is required for authorization Default: false
275
299
  :param channel_name: (experimental) A name for the channel. Default: Automatically generated name
300
+ :param container_format: (experimental) Indicates which content-packaging format is used (MPEG-TS or fMP4). If ``multitrackInputConfiguration`` is specified, only fMP4 can be used. Otherwise, ``containerFormat`` may be set to ``ContainerFormat.TS`` or ``ContainerFormat.FRAGMENTED_MP4``. Default: - ``ContainerFormat.FRAGMENTED_MP4`` is automatically set when the ``multitrackInputConfiguration`` is specified. If not specified, it remains undefined and uses the IVS default setting (TS).
276
301
  :param insecure_ingest: (experimental) Whether the channel allows insecure RTMP ingest. Default: false
277
302
  :param latency_mode: (experimental) Channel latency mode. Default: LatencyMode.LOW
303
+ :param multitrack_input_configuration: (experimental) Object specifying multitrack input configuration. You must specify ``multitrackInputConfiguration`` if you want to use MultiTrack Video. ``multitrackInputConfiguration`` is only supported for ``ChannelType.STANDARD``. Default: undefined - IVS default setting is not use MultiTrack Video.
278
304
  :param preset: (experimental) An optional transcode preset for the channel. Can be used for ADVANCED_HD and ADVANCED_SD channel types. When LOW or STANDARD is used, the preset will be overridden and set to none regardless of the value provided. Default: - Preset.HIGHER_BANDWIDTH_DELIVERY if channelType is ADVANCED_SD or ADVANCED_HD, none otherwise
279
305
  :param recording_configuration: (experimental) A recording configuration for the channel. Default: - recording is disabled
280
306
  :param type: (experimental) The channel type, which determines the allowable resolution and bitrate. If you exceed the allowable resolution or bitrate, the stream will disconnect immediately Default: ChannelType.STANDARD
@@ -284,17 +310,21 @@ class ChannelProps:
284
310
 
285
311
  Example::
286
312
 
287
- my_rtmp_channel = ivs.Channel(self, "myRtmpChannel",
288
- type=ivs.ChannelType.STANDARD,
289
- insecure_ingest=True
313
+ my_channel = ivs.Channel(self, "myChannel",
314
+ type=ivs.ChannelType.ADVANCED_HD,
315
+ preset=ivs.Preset.CONSTRAINED_BANDWIDTH_DELIVERY
290
316
  )
291
317
  '''
318
+ if isinstance(multitrack_input_configuration, dict):
319
+ multitrack_input_configuration = MultitrackInputConfiguration(**multitrack_input_configuration)
292
320
  if __debug__:
293
321
  type_hints = typing.get_type_hints(_typecheckingstub__0ebf6a0e98bbd5b88d9676fbe616666a44f837cba80675eade5df1fea22c9d22)
294
322
  check_type(argname="argument authorized", value=authorized, expected_type=type_hints["authorized"])
295
323
  check_type(argname="argument channel_name", value=channel_name, expected_type=type_hints["channel_name"])
324
+ check_type(argname="argument container_format", value=container_format, expected_type=type_hints["container_format"])
296
325
  check_type(argname="argument insecure_ingest", value=insecure_ingest, expected_type=type_hints["insecure_ingest"])
297
326
  check_type(argname="argument latency_mode", value=latency_mode, expected_type=type_hints["latency_mode"])
327
+ check_type(argname="argument multitrack_input_configuration", value=multitrack_input_configuration, expected_type=type_hints["multitrack_input_configuration"])
298
328
  check_type(argname="argument preset", value=preset, expected_type=type_hints["preset"])
299
329
  check_type(argname="argument recording_configuration", value=recording_configuration, expected_type=type_hints["recording_configuration"])
300
330
  check_type(argname="argument type", value=type, expected_type=type_hints["type"])
@@ -303,10 +333,14 @@ class ChannelProps:
303
333
  self._values["authorized"] = authorized
304
334
  if channel_name is not None:
305
335
  self._values["channel_name"] = channel_name
336
+ if container_format is not None:
337
+ self._values["container_format"] = container_format
306
338
  if insecure_ingest is not None:
307
339
  self._values["insecure_ingest"] = insecure_ingest
308
340
  if latency_mode is not None:
309
341
  self._values["latency_mode"] = latency_mode
342
+ if multitrack_input_configuration is not None:
343
+ self._values["multitrack_input_configuration"] = multitrack_input_configuration
310
344
  if preset is not None:
311
345
  self._values["preset"] = preset
312
346
  if recording_configuration is not None:
@@ -340,6 +374,20 @@ class ChannelProps:
340
374
  result = self._values.get("channel_name")
341
375
  return typing.cast(typing.Optional[builtins.str], result)
342
376
 
377
+ @builtins.property
378
+ def container_format(self) -> typing.Optional["ContainerFormat"]:
379
+ '''(experimental) Indicates which content-packaging format is used (MPEG-TS or fMP4).
380
+
381
+ If ``multitrackInputConfiguration`` is specified, only fMP4 can be used.
382
+ Otherwise, ``containerFormat`` may be set to ``ContainerFormat.TS`` or ``ContainerFormat.FRAGMENTED_MP4``.
383
+
384
+ :default: - ``ContainerFormat.FRAGMENTED_MP4`` is automatically set when the ``multitrackInputConfiguration`` is specified. If not specified, it remains undefined and uses the IVS default setting (TS).
385
+
386
+ :stability: experimental
387
+ '''
388
+ result = self._values.get("container_format")
389
+ return typing.cast(typing.Optional["ContainerFormat"], result)
390
+
343
391
  @builtins.property
344
392
  def insecure_ingest(self) -> typing.Optional[builtins.bool]:
345
393
  '''(experimental) Whether the channel allows insecure RTMP ingest.
@@ -362,6 +410,22 @@ class ChannelProps:
362
410
  result = self._values.get("latency_mode")
363
411
  return typing.cast(typing.Optional["LatencyMode"], result)
364
412
 
413
+ @builtins.property
414
+ def multitrack_input_configuration(
415
+ self,
416
+ ) -> typing.Optional["MultitrackInputConfiguration"]:
417
+ '''(experimental) Object specifying multitrack input configuration. You must specify ``multitrackInputConfiguration`` if you want to use MultiTrack Video.
418
+
419
+ ``multitrackInputConfiguration`` is only supported for ``ChannelType.STANDARD``.
420
+
421
+ :default: undefined - IVS default setting is not use MultiTrack Video.
422
+
423
+ :see: https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/multitrack-video.html
424
+ :stability: experimental
425
+ '''
426
+ result = self._values.get("multitrack_input_configuration")
427
+ return typing.cast(typing.Optional["MultitrackInputConfiguration"], result)
428
+
365
429
  @builtins.property
366
430
  def preset(self) -> typing.Optional["Preset"]:
367
431
  '''(experimental) An optional transcode preset for the channel.
@@ -463,6 +527,37 @@ class ChannelType(enum.Enum):
463
527
  '''
464
528
 
465
529
 
530
+ @jsii.enum(jsii_type="@aws-cdk/aws-ivs-alpha.ContainerFormat")
531
+ class ContainerFormat(enum.Enum):
532
+ '''(experimental) Container Format.
533
+
534
+ :stability: experimental
535
+ :exampleMetadata: infused
536
+
537
+ Example::
538
+
539
+ ivs.Channel(self, "ChannelWithMultitrackVideo",
540
+ type=ivs.ChannelType.STANDARD,
541
+ container_format=ivs.ContainerFormat.FRAGMENTED_MP4,
542
+ multitrack_input_configuration=ivs.MultitrackInputConfiguration(
543
+ maximum_resolution=ivs.MaximumResolution.HD,
544
+ policy=ivs.Policy.ALLOW
545
+ )
546
+ )
547
+ '''
548
+
549
+ TS = "TS"
550
+ '''(experimental) Use MPEG-TS.
551
+
552
+ :stability: experimental
553
+ '''
554
+ FRAGMENTED_MP4 = "FRAGMENTED_MP4"
555
+ '''(experimental) Use fMP4.
556
+
557
+ :stability: experimental
558
+ '''
559
+
560
+
466
561
  @jsii.interface(jsii_type="@aws-cdk/aws-ivs-alpha.IChannel")
467
562
  class IChannel(_aws_cdk_ceddda9d.IResource, typing_extensions.Protocol):
468
563
  '''(experimental) Represents an IVS Channel.
@@ -705,6 +800,114 @@ class LatencyMode(enum.Enum):
705
800
  '''
706
801
 
707
802
 
803
+ @jsii.enum(jsii_type="@aws-cdk/aws-ivs-alpha.MaximumResolution")
804
+ class MaximumResolution(enum.Enum):
805
+ '''(experimental) Maximum resolution for multitrack input.
806
+
807
+ :stability: experimental
808
+ :exampleMetadata: infused
809
+
810
+ Example::
811
+
812
+ ivs.Channel(self, "ChannelWithMultitrackVideo",
813
+ type=ivs.ChannelType.STANDARD,
814
+ container_format=ivs.ContainerFormat.FRAGMENTED_MP4,
815
+ multitrack_input_configuration=ivs.MultitrackInputConfiguration(
816
+ maximum_resolution=ivs.MaximumResolution.HD,
817
+ policy=ivs.Policy.ALLOW
818
+ )
819
+ )
820
+ '''
821
+
822
+ FULL_HD = "FULL_HD"
823
+ '''(experimental) Full HD (1080p).
824
+
825
+ :stability: experimental
826
+ '''
827
+ HD = "HD"
828
+ '''(experimental) HD (720p).
829
+
830
+ :stability: experimental
831
+ '''
832
+ SD = "SD"
833
+ '''(experimental) SD (480p).
834
+
835
+ :stability: experimental
836
+ '''
837
+
838
+
839
+ @jsii.data_type(
840
+ jsii_type="@aws-cdk/aws-ivs-alpha.MultitrackInputConfiguration",
841
+ jsii_struct_bases=[],
842
+ name_mapping={"maximum_resolution": "maximumResolution", "policy": "policy"},
843
+ )
844
+ class MultitrackInputConfiguration:
845
+ def __init__(
846
+ self,
847
+ *,
848
+ maximum_resolution: MaximumResolution,
849
+ policy: "Policy",
850
+ ) -> None:
851
+ '''(experimental) A complex type that specifies multitrack input configuration.
852
+
853
+ :param maximum_resolution: (experimental) Maximum resolution for multitrack input.
854
+ :param policy: (experimental) Indicates whether multitrack input is allowed or required.
855
+
856
+ :stability: experimental
857
+ :exampleMetadata: infused
858
+
859
+ Example::
860
+
861
+ ivs.Channel(self, "ChannelWithMultitrackVideo",
862
+ type=ivs.ChannelType.STANDARD,
863
+ container_format=ivs.ContainerFormat.FRAGMENTED_MP4,
864
+ multitrack_input_configuration=ivs.MultitrackInputConfiguration(
865
+ maximum_resolution=ivs.MaximumResolution.HD,
866
+ policy=ivs.Policy.ALLOW
867
+ )
868
+ )
869
+ '''
870
+ if __debug__:
871
+ type_hints = typing.get_type_hints(_typecheckingstub__45e5ad260ecfc7dc92d23bd36a068b4a317871ab3322fe7e7ef92573084ea6b6)
872
+ check_type(argname="argument maximum_resolution", value=maximum_resolution, expected_type=type_hints["maximum_resolution"])
873
+ check_type(argname="argument policy", value=policy, expected_type=type_hints["policy"])
874
+ self._values: typing.Dict[builtins.str, typing.Any] = {
875
+ "maximum_resolution": maximum_resolution,
876
+ "policy": policy,
877
+ }
878
+
879
+ @builtins.property
880
+ def maximum_resolution(self) -> MaximumResolution:
881
+ '''(experimental) Maximum resolution for multitrack input.
882
+
883
+ :stability: experimental
884
+ '''
885
+ result = self._values.get("maximum_resolution")
886
+ assert result is not None, "Required property 'maximum_resolution' is missing"
887
+ return typing.cast(MaximumResolution, result)
888
+
889
+ @builtins.property
890
+ def policy(self) -> "Policy":
891
+ '''(experimental) Indicates whether multitrack input is allowed or required.
892
+
893
+ :stability: experimental
894
+ '''
895
+ result = self._values.get("policy")
896
+ assert result is not None, "Required property 'policy' is missing"
897
+ return typing.cast("Policy", result)
898
+
899
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
900
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
901
+
902
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
903
+ return not (rhs == self)
904
+
905
+ def __repr__(self) -> str:
906
+ return "MultitrackInputConfiguration(%s)" % ", ".join(
907
+ k + "=" + repr(v) for k, v in self._values.items()
908
+ )
909
+
910
+
708
911
  @jsii.implements(IPlaybackKeyPair)
709
912
  class PlaybackKeyPair(
710
913
  _aws_cdk_ceddda9d.Resource,
@@ -848,6 +1051,37 @@ class PlaybackKeyPairProps:
848
1051
  )
849
1052
 
850
1053
 
1054
+ @jsii.enum(jsii_type="@aws-cdk/aws-ivs-alpha.Policy")
1055
+ class Policy(enum.Enum):
1056
+ '''(experimental) Whether multitrack input is allowed or required.
1057
+
1058
+ :stability: experimental
1059
+ :exampleMetadata: infused
1060
+
1061
+ Example::
1062
+
1063
+ ivs.Channel(self, "ChannelWithMultitrackVideo",
1064
+ type=ivs.ChannelType.STANDARD,
1065
+ container_format=ivs.ContainerFormat.FRAGMENTED_MP4,
1066
+ multitrack_input_configuration=ivs.MultitrackInputConfiguration(
1067
+ maximum_resolution=ivs.MaximumResolution.HD,
1068
+ policy=ivs.Policy.ALLOW
1069
+ )
1070
+ )
1071
+ '''
1072
+
1073
+ ALLOW = "ALLOW"
1074
+ '''(experimental) Multitrack input is allowed.
1075
+
1076
+ :stability: experimental
1077
+ '''
1078
+ REQUIRE = "REQUIRE"
1079
+ '''(experimental) Multitrack input is required.
1080
+
1081
+ :stability: experimental
1082
+ '''
1083
+
1084
+
851
1085
  @jsii.enum(jsii_type="@aws-cdk/aws-ivs-alpha.Preset")
852
1086
  class Preset(enum.Enum):
853
1087
  '''(experimental) An optional transcode preset for the channel.
@@ -1584,8 +1818,10 @@ class Channel(
1584
1818
  *,
1585
1819
  authorized: typing.Optional[builtins.bool] = None,
1586
1820
  channel_name: typing.Optional[builtins.str] = None,
1821
+ container_format: typing.Optional[ContainerFormat] = None,
1587
1822
  insecure_ingest: typing.Optional[builtins.bool] = None,
1588
1823
  latency_mode: typing.Optional[LatencyMode] = None,
1824
+ multitrack_input_configuration: typing.Optional[typing.Union[MultitrackInputConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
1589
1825
  preset: typing.Optional[Preset] = None,
1590
1826
  recording_configuration: typing.Optional[IRecordingConfiguration] = None,
1591
1827
  type: typing.Optional[ChannelType] = None,
@@ -1595,8 +1831,10 @@ class Channel(
1595
1831
  :param id: -
1596
1832
  :param authorized: (experimental) Whether the channel is authorized. If you wish to make an authorized channel, you will need to ensure that a PlaybackKeyPair has been uploaded to your account as this is used to validate the signed JWT that is required for authorization Default: false
1597
1833
  :param channel_name: (experimental) A name for the channel. Default: Automatically generated name
1834
+ :param container_format: (experimental) Indicates which content-packaging format is used (MPEG-TS or fMP4). If ``multitrackInputConfiguration`` is specified, only fMP4 can be used. Otherwise, ``containerFormat`` may be set to ``ContainerFormat.TS`` or ``ContainerFormat.FRAGMENTED_MP4``. Default: - ``ContainerFormat.FRAGMENTED_MP4`` is automatically set when the ``multitrackInputConfiguration`` is specified. If not specified, it remains undefined and uses the IVS default setting (TS).
1598
1835
  :param insecure_ingest: (experimental) Whether the channel allows insecure RTMP ingest. Default: false
1599
1836
  :param latency_mode: (experimental) Channel latency mode. Default: LatencyMode.LOW
1837
+ :param multitrack_input_configuration: (experimental) Object specifying multitrack input configuration. You must specify ``multitrackInputConfiguration`` if you want to use MultiTrack Video. ``multitrackInputConfiguration`` is only supported for ``ChannelType.STANDARD``. Default: undefined - IVS default setting is not use MultiTrack Video.
1600
1838
  :param preset: (experimental) An optional transcode preset for the channel. Can be used for ADVANCED_HD and ADVANCED_SD channel types. When LOW or STANDARD is used, the preset will be overridden and set to none regardless of the value provided. Default: - Preset.HIGHER_BANDWIDTH_DELIVERY if channelType is ADVANCED_SD or ADVANCED_HD, none otherwise
1601
1839
  :param recording_configuration: (experimental) A recording configuration for the channel. Default: - recording is disabled
1602
1840
  :param type: (experimental) The channel type, which determines the allowable resolution and bitrate. If you exceed the allowable resolution or bitrate, the stream will disconnect immediately Default: ChannelType.STANDARD
@@ -1610,8 +1848,10 @@ class Channel(
1610
1848
  props = ChannelProps(
1611
1849
  authorized=authorized,
1612
1850
  channel_name=channel_name,
1851
+ container_format=container_format,
1613
1852
  insecure_ingest=insecure_ingest,
1614
1853
  latency_mode=latency_mode,
1854
+ multitrack_input_configuration=multitrack_input_configuration,
1615
1855
  preset=preset,
1616
1856
  recording_configuration=recording_configuration,
1617
1857
  type=type,
@@ -1696,13 +1936,17 @@ __all__ = [
1696
1936
  "Channel",
1697
1937
  "ChannelProps",
1698
1938
  "ChannelType",
1939
+ "ContainerFormat",
1699
1940
  "IChannel",
1700
1941
  "IPlaybackKeyPair",
1701
1942
  "IRecordingConfiguration",
1702
1943
  "IStreamKey",
1703
1944
  "LatencyMode",
1945
+ "MaximumResolution",
1946
+ "MultitrackInputConfiguration",
1704
1947
  "PlaybackKeyPair",
1705
1948
  "PlaybackKeyPairProps",
1949
+ "Policy",
1706
1950
  "Preset",
1707
1951
  "RecordingConfiguration",
1708
1952
  "RecordingConfigurationProps",
@@ -1722,8 +1966,10 @@ def _typecheckingstub__0ebf6a0e98bbd5b88d9676fbe616666a44f837cba80675eade5df1fea
1722
1966
  *,
1723
1967
  authorized: typing.Optional[builtins.bool] = None,
1724
1968
  channel_name: typing.Optional[builtins.str] = None,
1969
+ container_format: typing.Optional[ContainerFormat] = None,
1725
1970
  insecure_ingest: typing.Optional[builtins.bool] = None,
1726
1971
  latency_mode: typing.Optional[LatencyMode] = None,
1972
+ multitrack_input_configuration: typing.Optional[typing.Union[MultitrackInputConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
1727
1973
  preset: typing.Optional[Preset] = None,
1728
1974
  recording_configuration: typing.Optional[IRecordingConfiguration] = None,
1729
1975
  type: typing.Optional[ChannelType] = None,
@@ -1737,6 +1983,14 @@ def _typecheckingstub__809e7d60e77d2ede718027f4d99dcf810db3b33f39daebb557b424c64
1737
1983
  """Type checking stubs"""
1738
1984
  pass
1739
1985
 
1986
+ def _typecheckingstub__45e5ad260ecfc7dc92d23bd36a068b4a317871ab3322fe7e7ef92573084ea6b6(
1987
+ *,
1988
+ maximum_resolution: MaximumResolution,
1989
+ policy: Policy,
1990
+ ) -> None:
1991
+ """Type checking stubs"""
1992
+ pass
1993
+
1740
1994
  def _typecheckingstub__75931c57bc0ba240c98824ea65da9a0bc0a3bc48be2344ac7b70c03f259e632f(
1741
1995
  scope: _constructs_77d1e7e8.Construct,
1742
1996
  id: builtins.str,
@@ -1831,8 +2085,10 @@ def _typecheckingstub__07139327925dc97a551bbf17c849a0f698e0c9c60d3da3f65f2b3d2be
1831
2085
  *,
1832
2086
  authorized: typing.Optional[builtins.bool] = None,
1833
2087
  channel_name: typing.Optional[builtins.str] = None,
2088
+ container_format: typing.Optional[ContainerFormat] = None,
1834
2089
  insecure_ingest: typing.Optional[builtins.bool] = None,
1835
2090
  latency_mode: typing.Optional[LatencyMode] = None,
2091
+ multitrack_input_configuration: typing.Optional[typing.Union[MultitrackInputConfiguration, typing.Dict[builtins.str, typing.Any]]] = None,
1836
2092
  preset: typing.Optional[Preset] = None,
1837
2093
  recording_configuration: typing.Optional[IRecordingConfiguration] = None,
1838
2094
  type: typing.Optional[ChannelType] = None,
@@ -33,9 +33,9 @@ import constructs._jsii
33
33
 
34
34
  __jsii_assembly__ = jsii.JSIIAssembly.load(
35
35
  "@aws-cdk/aws-ivs-alpha",
36
- "2.178.2-alpha.0",
36
+ "2.179.0-alpha.0",
37
37
  __name__[0:-6],
38
- "aws-ivs-alpha@2.178.2-alpha.0.jsii.tgz",
38
+ "aws-ivs-alpha@2.179.0-alpha.0.jsii.tgz",
39
39
  )
40
40
 
41
41
  __all__ = [
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: aws-cdk.aws-ivs-alpha
3
- Version: 2.178.2a0
3
+ Version: 2.179.0a0
4
4
  Summary: The CDK Construct Library for AWS::IVS
5
5
  Home-page: https://github.com/aws/aws-cdk
6
6
  Author: Amazon Web Services
@@ -23,7 +23,7 @@ Requires-Python: ~=3.8
23
23
  Description-Content-Type: text/markdown
24
24
  License-File: LICENSE
25
25
  License-File: NOTICE
26
- Requires-Dist: aws-cdk-lib<3.0.0,>=2.178.2
26
+ Requires-Dist: aws-cdk-lib<3.0.0,>=2.179.0
27
27
  Requires-Dist: constructs<11.0.0,>=10.0.0
28
28
  Requires-Dist: jsii<2.0.0,>=1.106.0
29
29
  Requires-Dist: publication>=0.0.3
@@ -97,6 +97,26 @@ my_rtmp_channel = ivs.Channel(self, "myRtmpChannel",
97
97
  )
98
98
  ```
99
99
 
100
+ ### Multitrack Video
101
+
102
+ Multitrack video is a new, low-latency streaming paradigm supported by Amazon Interactive Video Service (IVS) and services that use Amazon IVS.
103
+
104
+ You can use Multitrack Video by setting the `multitrackInputConfiguration` property.
105
+ Multitrack Video requires both a STANDARD Channel and Fragmented Mp4.
106
+
107
+ For more information, see [Amazon IVS Multitrack Video](https://docs.aws.amazon.com/ivs/latest/LowLatencyUserGuide/multitrack-video.html).
108
+
109
+ ```python
110
+ ivs.Channel(self, "ChannelWithMultitrackVideo",
111
+ type=ivs.ChannelType.STANDARD,
112
+ container_format=ivs.ContainerFormat.FRAGMENTED_MP4,
113
+ multitrack_input_configuration=ivs.MultitrackInputConfiguration(
114
+ maximum_resolution=ivs.MaximumResolution.HD,
115
+ policy=ivs.Policy.ALLOW
116
+ )
117
+ )
118
+ ```
119
+
100
120
  ### Importing an existing channel
101
121
 
102
122
  You can reference an existing channel, for example, if you need to create a
@@ -12,4 +12,4 @@ src/aws_cdk.aws_ivs_alpha.egg-info/top_level.txt
12
12
  src/aws_cdk/aws_ivs_alpha/__init__.py
13
13
  src/aws_cdk/aws_ivs_alpha/py.typed
14
14
  src/aws_cdk/aws_ivs_alpha/_jsii/__init__.py
15
- src/aws_cdk/aws_ivs_alpha/_jsii/aws-ivs-alpha@2.178.2-alpha.0.jsii.tgz
15
+ src/aws_cdk/aws_ivs_alpha/_jsii/aws-ivs-alpha@2.179.0-alpha.0.jsii.tgz
@@ -1,4 +1,4 @@
1
- aws-cdk-lib<3.0.0,>=2.178.2
1
+ aws-cdk-lib<3.0.0,>=2.179.0
2
2
  constructs<11.0.0,>=10.0.0
3
3
  jsii<2.0.0,>=1.106.0
4
4
  publication>=0.0.3