aws-sdk-mediapackagev2 1.30.0 → 1.31.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0a075a094085dd90043426e65b0f90adab2e9a06c0beda05da35714f411a8523
4
- data.tar.gz: c2977e2cff7eb7991aa4b4a07affee18457957d1a0f5e154df34a523173ea897
3
+ metadata.gz: 63a341baf6e750f9c763b6cbb5e55a3b4ed6ab63fc6f63a9455587a15b5946ad
4
+ data.tar.gz: e182bd25200deb2ceb569640d11fc153eccbcfcfafe0fd9df259cee9a0da8830
5
5
  SHA512:
6
- metadata.gz: 2f527c98e970f66745a34c19feb1dc3baa4a8a5964abdba8282ef8aebfaae1a2a95fdcf1cde50c970d4c55609c44286965ff7f20281a91d3195d90da3dde4342
7
- data.tar.gz: 473ca10392cf6fb7387011e8ded73213bad2f996b999aad173e92cd0c954ff0906f647fb0e1aeca20443ff90b99189deec72e399d370b48dc560b7b615c21787
6
+ metadata.gz: c16712389786ee860346a02477fbc088bbb8abde506dbdc1c7e7d4cefa3c9cc3220724a81b3c344f23037afd2805e936de5fe652efe3c6583b3ba99e62c0b8e9
7
+ data.tar.gz: 2ad8100677c67a92dd8e4e1d72ba30952ee98eb5656bd9d3eadcaa8e5d4910d0412663756f1a5e1bcce381331b2287eaaf2c94e1298f81c479d08e4d748ec6ea
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.31.0 (2024-10-28)
5
+ ------------------
6
+
7
+ * Feature - MediaPackage V2 Live to VOD Harvester is a MediaPackage V2 feature, which is used to export content from an origin endpoint to a S3 bucket.
8
+
4
9
  1.30.0 (2024-10-18)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.30.0
1
+ 1.31.0
@@ -447,6 +447,62 @@ module Aws::MediaPackageV2
447
447
 
448
448
  # @!group API Operations
449
449
 
450
+ # Cancels an in-progress harvest job.
451
+ #
452
+ # @option params [required, String] :channel_group_name
453
+ # The name of the channel group containing the channel from which the
454
+ # harvest job is running.
455
+ #
456
+ # @option params [required, String] :channel_name
457
+ # The name of the channel from which the harvest job is running.
458
+ #
459
+ # @option params [required, String] :origin_endpoint_name
460
+ # The name of the origin endpoint that the harvest job is harvesting
461
+ # from. This cannot be changed after the harvest job is submitted.
462
+ #
463
+ # @option params [required, String] :harvest_job_name
464
+ # The name of the harvest job to cancel. This name must be unique within
465
+ # the channel and cannot be changed after the harvest job is submitted.
466
+ #
467
+ # @option params [String] :etag
468
+ # The current Entity Tag (ETag) associated with the harvest job. Used
469
+ # for concurrency control.
470
+ #
471
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
472
+ #
473
+ #
474
+ # @example Example: Cancel a Harvest Job
475
+ #
476
+ # resp = client.cancel_harvest_job({
477
+ # channel_group_name: "exampleChannelGroup",
478
+ # channel_name: "exampleChannelName",
479
+ # harvest_job_name: "HarvestJobName",
480
+ # origin_endpoint_name: "exampleOriginEndpointName",
481
+ # })
482
+ #
483
+ # resp.to_h outputs the following:
484
+ # {
485
+ # }
486
+ #
487
+ # @example Request syntax with placeholder values
488
+ #
489
+ # resp = client.cancel_harvest_job({
490
+ # channel_group_name: "ResourceName", # required
491
+ # channel_name: "ResourceName", # required
492
+ # origin_endpoint_name: "ResourceName", # required
493
+ # harvest_job_name: "ResourceName", # required
494
+ # etag: "EntityTag",
495
+ # })
496
+ #
497
+ # @see http://docs.aws.amazon.com/goto/WebAPI/mediapackagev2-2022-12-25/CancelHarvestJob AWS API Documentation
498
+ #
499
+ # @overload cancel_harvest_job(params = {})
500
+ # @param [Hash] params ({})
501
+ def cancel_harvest_job(params = {}, options = {})
502
+ req = build_request(:cancel_harvest_job, params)
503
+ req.send_request(options)
504
+ end
505
+
450
506
  # Create a channel to start receiving content streams. The channel
451
507
  # represents the input to MediaPackage for incoming live content from an
452
508
  # encoder such as AWS Elemental MediaLive. The channel receives content,
@@ -692,6 +748,222 @@ module Aws::MediaPackageV2
692
748
  req.send_request(options)
693
749
  end
694
750
 
751
+ # Creates a new harvest job to export content from a MediaPackage v2
752
+ # channel to an S3 bucket.
753
+ #
754
+ # @option params [required, String] :channel_group_name
755
+ # The name of the channel group containing the channel from which to
756
+ # harvest content.
757
+ #
758
+ # @option params [required, String] :channel_name
759
+ # The name of the channel from which to harvest content.
760
+ #
761
+ # @option params [required, String] :origin_endpoint_name
762
+ # The name of the origin endpoint from which to harvest content.
763
+ #
764
+ # @option params [String] :description
765
+ # An optional description for the harvest job.
766
+ #
767
+ # @option params [required, Types::HarvestedManifests] :harvested_manifests
768
+ # A list of manifests to be harvested.
769
+ #
770
+ # @option params [required, Types::HarvesterScheduleConfiguration] :schedule_configuration
771
+ # The configuration for when the harvest job should run, including start
772
+ # and end times.
773
+ #
774
+ # @option params [required, Types::Destination] :destination
775
+ # The S3 destination where the harvested content will be placed.
776
+ #
777
+ # @option params [String] :client_token
778
+ # A unique, case-sensitive identifier that you provide to ensure the
779
+ # idempotency of the request.
780
+ #
781
+ # **A suitable default value is auto-generated.** You should normally
782
+ # not need to pass this option.**
783
+ #
784
+ # @option params [String] :harvest_job_name
785
+ # A name for the harvest job. This name must be unique within the
786
+ # channel.
787
+ #
788
+ # @option params [Hash<String,String>] :tags
789
+ # A collection of tags associated with the harvest job.
790
+ #
791
+ # @return [Types::CreateHarvestJobResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
792
+ #
793
+ # * {Types::CreateHarvestJobResponse#channel_group_name #channel_group_name} => String
794
+ # * {Types::CreateHarvestJobResponse#channel_name #channel_name} => String
795
+ # * {Types::CreateHarvestJobResponse#origin_endpoint_name #origin_endpoint_name} => String
796
+ # * {Types::CreateHarvestJobResponse#destination #destination} => Types::Destination
797
+ # * {Types::CreateHarvestJobResponse#harvest_job_name #harvest_job_name} => String
798
+ # * {Types::CreateHarvestJobResponse#harvested_manifests #harvested_manifests} => Types::HarvestedManifests
799
+ # * {Types::CreateHarvestJobResponse#description #description} => String
800
+ # * {Types::CreateHarvestJobResponse#schedule_configuration #schedule_configuration} => Types::HarvesterScheduleConfiguration
801
+ # * {Types::CreateHarvestJobResponse#arn #arn} => String
802
+ # * {Types::CreateHarvestJobResponse#created_at #created_at} => Time
803
+ # * {Types::CreateHarvestJobResponse#modified_at #modified_at} => Time
804
+ # * {Types::CreateHarvestJobResponse#status #status} => String
805
+ # * {Types::CreateHarvestJobResponse#error_message #error_message} => String
806
+ # * {Types::CreateHarvestJobResponse#etag #etag} => String
807
+ # * {Types::CreateHarvestJobResponse#tags #tags} => Hash&lt;String,String&gt;
808
+ #
809
+ #
810
+ # @example Example: Creating a Harvest Job
811
+ #
812
+ # resp = client.create_harvest_job({
813
+ # channel_group_name: "exampleChannelGroup",
814
+ # channel_name: "exampleChannelName",
815
+ # description: "Example HarvestJob description",
816
+ # destination: {
817
+ # s3_destination: {
818
+ # bucket_name: "harvestJobS3DestinationBucket",
819
+ # destination_path: "manifests",
820
+ # },
821
+ # },
822
+ # harvested_manifests: {
823
+ # dash_manifests: [
824
+ # {
825
+ # manifest_name: "DashManifest",
826
+ # },
827
+ # ],
828
+ # hls_manifests: [
829
+ # {
830
+ # manifest_name: "HlsManifest",
831
+ # },
832
+ # ],
833
+ # low_latency_hls_manifests: [
834
+ # {
835
+ # manifest_name: "LowLatencyHlsManifest",
836
+ # },
837
+ # ],
838
+ # },
839
+ # origin_endpoint_name: "exampleOriginEndpointName",
840
+ # schedule_configuration: {
841
+ # end_time: Time.parse("2024-05-28T12:00:00.00Z"),
842
+ # start_time: Time.parse("2024-05-28T06:00:00.00Z"),
843
+ # },
844
+ # })
845
+ #
846
+ # resp.to_h outputs the following:
847
+ # {
848
+ # arn: "arn:aws:mediapackagev2:us-west-2:123456789012:channelGroup/exampleChannelGroup/channel/exampleChannelName/originEndpoint/exampleOriginEndpointName/harvestJob/HarvestJobName",
849
+ # channel_group_name: "exampleChannelGroup",
850
+ # channel_name: "exampleChannelName",
851
+ # created_at: Time.parse("2024-05-28T09:36:00.00Z"),
852
+ # description: "Example HarvestJob description",
853
+ # destination: {
854
+ # s3_destination: {
855
+ # bucket_name: "harvestJobS3DestinationBucket",
856
+ # destination_path: "manifests",
857
+ # },
858
+ # },
859
+ # etag: "GlfT+dwAyGIR4wuy8nKWl1RDPwSrjQej9qUutLZxoxk=",
860
+ # harvest_job_name: "HarvestJobName",
861
+ # harvested_manifests: {
862
+ # dash_manifests: [
863
+ # {
864
+ # manifest_name: "DashManifest",
865
+ # },
866
+ # ],
867
+ # hls_manifests: [
868
+ # {
869
+ # manifest_name: "HlsManifest",
870
+ # },
871
+ # ],
872
+ # low_latency_hls_manifests: [
873
+ # {
874
+ # manifest_name: "LowLatencyHlsManifest",
875
+ # },
876
+ # ],
877
+ # },
878
+ # modified_at: Time.parse("2024-05-28T09:36:00.00Z"),
879
+ # origin_endpoint_name: "exampleOriginEndpointName",
880
+ # schedule_configuration: {
881
+ # end_time: Time.parse("2024-05-28T12:00:00.00Z"),
882
+ # start_time: Time.parse("2024-05-28T06:00:00.00Z"),
883
+ # },
884
+ # status: "QUEUED",
885
+ # tags: {
886
+ # "key1" => "value1",
887
+ # "key2" => "value2",
888
+ # },
889
+ # }
890
+ #
891
+ # @example Request syntax with placeholder values
892
+ #
893
+ # resp = client.create_harvest_job({
894
+ # channel_group_name: "ResourceName", # required
895
+ # channel_name: "ResourceName", # required
896
+ # origin_endpoint_name: "ResourceName", # required
897
+ # description: "ResourceDescription",
898
+ # harvested_manifests: { # required
899
+ # hls_manifests: [
900
+ # {
901
+ # manifest_name: "ResourceName", # required
902
+ # },
903
+ # ],
904
+ # dash_manifests: [
905
+ # {
906
+ # manifest_name: "ResourceName", # required
907
+ # },
908
+ # ],
909
+ # low_latency_hls_manifests: [
910
+ # {
911
+ # manifest_name: "ResourceName", # required
912
+ # },
913
+ # ],
914
+ # },
915
+ # schedule_configuration: { # required
916
+ # start_time: Time.now, # required
917
+ # end_time: Time.now, # required
918
+ # },
919
+ # destination: { # required
920
+ # s3_destination: { # required
921
+ # bucket_name: "S3BucketName", # required
922
+ # destination_path: "S3DestinationPath", # required
923
+ # },
924
+ # },
925
+ # client_token: "IdempotencyToken",
926
+ # harvest_job_name: "ResourceName",
927
+ # tags: {
928
+ # "TagKey" => "TagValue",
929
+ # },
930
+ # })
931
+ #
932
+ # @example Response structure
933
+ #
934
+ # resp.channel_group_name #=> String
935
+ # resp.channel_name #=> String
936
+ # resp.origin_endpoint_name #=> String
937
+ # resp.destination.s3_destination.bucket_name #=> String
938
+ # resp.destination.s3_destination.destination_path #=> String
939
+ # resp.harvest_job_name #=> String
940
+ # resp.harvested_manifests.hls_manifests #=> Array
941
+ # resp.harvested_manifests.hls_manifests[0].manifest_name #=> String
942
+ # resp.harvested_manifests.dash_manifests #=> Array
943
+ # resp.harvested_manifests.dash_manifests[0].manifest_name #=> String
944
+ # resp.harvested_manifests.low_latency_hls_manifests #=> Array
945
+ # resp.harvested_manifests.low_latency_hls_manifests[0].manifest_name #=> String
946
+ # resp.description #=> String
947
+ # resp.schedule_configuration.start_time #=> Time
948
+ # resp.schedule_configuration.end_time #=> Time
949
+ # resp.arn #=> String
950
+ # resp.created_at #=> Time
951
+ # resp.modified_at #=> Time
952
+ # resp.status #=> String, one of "QUEUED", "IN_PROGRESS", "CANCELLED", "COMPLETED", "FAILED"
953
+ # resp.error_message #=> String
954
+ # resp.etag #=> String
955
+ # resp.tags #=> Hash
956
+ # resp.tags["TagKey"] #=> String
957
+ #
958
+ # @see http://docs.aws.amazon.com/goto/WebAPI/mediapackagev2-2022-12-25/CreateHarvestJob AWS API Documentation
959
+ #
960
+ # @overload create_harvest_job(params = {})
961
+ # @param [Hash] params ({})
962
+ def create_harvest_job(params = {}, options = {})
963
+ req = build_request(:create_harvest_job, params)
964
+ req.send_request(options)
965
+ end
966
+
695
967
  # The endpoint is attached to a channel, and represents the output of
696
968
  # the live content. You can associate multiple endpoints to a single
697
969
  # channel. Each endpoint gives players and downstream CDNs (such as
@@ -1894,6 +2166,143 @@ module Aws::MediaPackageV2
1894
2166
  req.send_request(options)
1895
2167
  end
1896
2168
 
2169
+ # Retrieves the details of a specific harvest job.
2170
+ #
2171
+ # @option params [required, String] :channel_group_name
2172
+ # The name of the channel group containing the channel associated with
2173
+ # the harvest job.
2174
+ #
2175
+ # @option params [required, String] :channel_name
2176
+ # The name of the channel associated with the harvest job.
2177
+ #
2178
+ # @option params [required, String] :origin_endpoint_name
2179
+ # The name of the origin endpoint associated with the harvest job.
2180
+ #
2181
+ # @option params [required, String] :harvest_job_name
2182
+ # The name of the harvest job to retrieve.
2183
+ #
2184
+ # @return [Types::GetHarvestJobResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2185
+ #
2186
+ # * {Types::GetHarvestJobResponse#channel_group_name #channel_group_name} => String
2187
+ # * {Types::GetHarvestJobResponse#channel_name #channel_name} => String
2188
+ # * {Types::GetHarvestJobResponse#origin_endpoint_name #origin_endpoint_name} => String
2189
+ # * {Types::GetHarvestJobResponse#destination #destination} => Types::Destination
2190
+ # * {Types::GetHarvestJobResponse#harvest_job_name #harvest_job_name} => String
2191
+ # * {Types::GetHarvestJobResponse#harvested_manifests #harvested_manifests} => Types::HarvestedManifests
2192
+ # * {Types::GetHarvestJobResponse#description #description} => String
2193
+ # * {Types::GetHarvestJobResponse#schedule_configuration #schedule_configuration} => Types::HarvesterScheduleConfiguration
2194
+ # * {Types::GetHarvestJobResponse#arn #arn} => String
2195
+ # * {Types::GetHarvestJobResponse#created_at #created_at} => Time
2196
+ # * {Types::GetHarvestJobResponse#modified_at #modified_at} => Time
2197
+ # * {Types::GetHarvestJobResponse#status #status} => String
2198
+ # * {Types::GetHarvestJobResponse#error_message #error_message} => String
2199
+ # * {Types::GetHarvestJobResponse#etag #etag} => String
2200
+ # * {Types::GetHarvestJobResponse#tags #tags} => Hash&lt;String,String&gt;
2201
+ #
2202
+ #
2203
+ # @example Example: Getting a Harvest Job
2204
+ #
2205
+ # resp = client.get_harvest_job({
2206
+ # channel_group_name: "exampleChannelGroup",
2207
+ # channel_name: "exampleChannelName",
2208
+ # harvest_job_name: "HarvestJobName",
2209
+ # origin_endpoint_name: "exampleOriginEndpointName",
2210
+ # })
2211
+ #
2212
+ # resp.to_h outputs the following:
2213
+ # {
2214
+ # arn: "arn:aws:mediapackagev2:us-west-2:123456789012:channelGroup/exampleChannelGroup/channel/exampleChannelName/originEndpoint/exampleOriginEndpointName/harvestJob/HarvestJobName",
2215
+ # channel_group_name: "exampleChannelGroup",
2216
+ # channel_name: "exampleChannelName",
2217
+ # created_at: Time.parse("2024-05-28T09:36:00.00Z"),
2218
+ # description: "Example HarvestJob description",
2219
+ # destination: {
2220
+ # s3_destination: {
2221
+ # bucket_name: "harvestJobS3DestinationBucket",
2222
+ # destination_path: "manifests",
2223
+ # },
2224
+ # },
2225
+ # etag: "GlfT+dwAyGIR4wuy8nKWl1RDPwSrjQej9qUutLZxoxk=",
2226
+ # harvest_job_name: "HarvestJobName",
2227
+ # harvested_manifests: {
2228
+ # dash_manifests: [
2229
+ # {
2230
+ # manifest_name: "DashManifest",
2231
+ # },
2232
+ # ],
2233
+ # hls_manifests: [
2234
+ # {
2235
+ # manifest_name: "HlsManifest",
2236
+ # },
2237
+ # ],
2238
+ # low_latency_hls_manifests: [
2239
+ # {
2240
+ # manifest_name: "LowLatencyHlsManifest",
2241
+ # },
2242
+ # ],
2243
+ # },
2244
+ # modified_at: Time.parse("2024-05-28T09:36:00.00Z"),
2245
+ # origin_endpoint_name: "exampleOriginEndpointName",
2246
+ # schedule_configuration: {
2247
+ # end_time: Time.parse("2024-05-28T12:00:00.00Z"),
2248
+ # start_time: Time.parse("2024-05-28T06:00:00.00Z"),
2249
+ # },
2250
+ # status: "QUEUED",
2251
+ # tags: {
2252
+ # "key1" => "value1",
2253
+ # "key2" => "value2",
2254
+ # },
2255
+ # }
2256
+ #
2257
+ # @example Request syntax with placeholder values
2258
+ #
2259
+ # resp = client.get_harvest_job({
2260
+ # channel_group_name: "ResourceName", # required
2261
+ # channel_name: "ResourceName", # required
2262
+ # origin_endpoint_name: "ResourceName", # required
2263
+ # harvest_job_name: "ResourceName", # required
2264
+ # })
2265
+ #
2266
+ # @example Response structure
2267
+ #
2268
+ # resp.channel_group_name #=> String
2269
+ # resp.channel_name #=> String
2270
+ # resp.origin_endpoint_name #=> String
2271
+ # resp.destination.s3_destination.bucket_name #=> String
2272
+ # resp.destination.s3_destination.destination_path #=> String
2273
+ # resp.harvest_job_name #=> String
2274
+ # resp.harvested_manifests.hls_manifests #=> Array
2275
+ # resp.harvested_manifests.hls_manifests[0].manifest_name #=> String
2276
+ # resp.harvested_manifests.dash_manifests #=> Array
2277
+ # resp.harvested_manifests.dash_manifests[0].manifest_name #=> String
2278
+ # resp.harvested_manifests.low_latency_hls_manifests #=> Array
2279
+ # resp.harvested_manifests.low_latency_hls_manifests[0].manifest_name #=> String
2280
+ # resp.description #=> String
2281
+ # resp.schedule_configuration.start_time #=> Time
2282
+ # resp.schedule_configuration.end_time #=> Time
2283
+ # resp.arn #=> String
2284
+ # resp.created_at #=> Time
2285
+ # resp.modified_at #=> Time
2286
+ # resp.status #=> String, one of "QUEUED", "IN_PROGRESS", "CANCELLED", "COMPLETED", "FAILED"
2287
+ # resp.error_message #=> String
2288
+ # resp.etag #=> String
2289
+ # resp.tags #=> Hash
2290
+ # resp.tags["TagKey"] #=> String
2291
+ #
2292
+ #
2293
+ # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
2294
+ #
2295
+ # * harvest_job_finished
2296
+ #
2297
+ # @see http://docs.aws.amazon.com/goto/WebAPI/mediapackagev2-2022-12-25/GetHarvestJob AWS API Documentation
2298
+ #
2299
+ # @overload get_harvest_job(params = {})
2300
+ # @param [Hash] params ({})
2301
+ def get_harvest_job(params = {}, options = {})
2302
+ req = build_request(:get_harvest_job, params)
2303
+ req.send_request(options)
2304
+ end
2305
+
1897
2306
  # Retrieves the specified origin endpoint that's configured in AWS
1898
2307
  # Elemental MediaPackage to obtain its playback URL and to view the
1899
2308
  # packaging settings that it's currently using.
@@ -2357,6 +2766,87 @@ module Aws::MediaPackageV2
2357
2766
  req.send_request(options)
2358
2767
  end
2359
2768
 
2769
+ # Retrieves a list of harvest jobs that match the specified criteria.
2770
+ #
2771
+ # @option params [required, String] :channel_group_name
2772
+ # The name of the channel group to filter the harvest jobs by. If
2773
+ # specified, only harvest jobs associated with channels in this group
2774
+ # will be returned.
2775
+ #
2776
+ # @option params [String] :channel_name
2777
+ # The name of the channel to filter the harvest jobs by. If specified,
2778
+ # only harvest jobs associated with this channel will be returned.
2779
+ #
2780
+ # @option params [String] :origin_endpoint_name
2781
+ # The name of the origin endpoint to filter the harvest jobs by. If
2782
+ # specified, only harvest jobs associated with this origin endpoint will
2783
+ # be returned.
2784
+ #
2785
+ # @option params [String] :status
2786
+ # The status to filter the harvest jobs by. If specified, only harvest
2787
+ # jobs with this status will be returned.
2788
+ #
2789
+ # @option params [Integer] :max_results
2790
+ # The maximum number of harvest jobs to return in a single request. If
2791
+ # not specified, a default value will be used.
2792
+ #
2793
+ # @option params [String] :next_token
2794
+ # A token used for pagination. Provide this value in subsequent requests
2795
+ # to retrieve the next set of results.
2796
+ #
2797
+ # @return [Types::ListHarvestJobsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2798
+ #
2799
+ # * {Types::ListHarvestJobsResponse#items #items} => Array&lt;Types::HarvestJob&gt;
2800
+ # * {Types::ListHarvestJobsResponse#next_token #next_token} => String
2801
+ #
2802
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2803
+ #
2804
+ # @example Request syntax with placeholder values
2805
+ #
2806
+ # resp = client.list_harvest_jobs({
2807
+ # channel_group_name: "ResourceName", # required
2808
+ # channel_name: "ListHarvestJobsRequestChannelNameString",
2809
+ # origin_endpoint_name: "ListHarvestJobsRequestOriginEndpointNameString",
2810
+ # status: "QUEUED", # accepts QUEUED, IN_PROGRESS, CANCELLED, COMPLETED, FAILED
2811
+ # max_results: 1,
2812
+ # next_token: "String",
2813
+ # })
2814
+ #
2815
+ # @example Response structure
2816
+ #
2817
+ # resp.items #=> Array
2818
+ # resp.items[0].channel_group_name #=> String
2819
+ # resp.items[0].channel_name #=> String
2820
+ # resp.items[0].origin_endpoint_name #=> String
2821
+ # resp.items[0].destination.s3_destination.bucket_name #=> String
2822
+ # resp.items[0].destination.s3_destination.destination_path #=> String
2823
+ # resp.items[0].harvest_job_name #=> String
2824
+ # resp.items[0].harvested_manifests.hls_manifests #=> Array
2825
+ # resp.items[0].harvested_manifests.hls_manifests[0].manifest_name #=> String
2826
+ # resp.items[0].harvested_manifests.dash_manifests #=> Array
2827
+ # resp.items[0].harvested_manifests.dash_manifests[0].manifest_name #=> String
2828
+ # resp.items[0].harvested_manifests.low_latency_hls_manifests #=> Array
2829
+ # resp.items[0].harvested_manifests.low_latency_hls_manifests[0].manifest_name #=> String
2830
+ # resp.items[0].description #=> String
2831
+ # resp.items[0].schedule_configuration.start_time #=> Time
2832
+ # resp.items[0].schedule_configuration.end_time #=> Time
2833
+ # resp.items[0].arn #=> String
2834
+ # resp.items[0].created_at #=> Time
2835
+ # resp.items[0].modified_at #=> Time
2836
+ # resp.items[0].status #=> String, one of "QUEUED", "IN_PROGRESS", "CANCELLED", "COMPLETED", "FAILED"
2837
+ # resp.items[0].error_message #=> String
2838
+ # resp.items[0].etag #=> String
2839
+ # resp.next_token #=> String
2840
+ #
2841
+ # @see http://docs.aws.amazon.com/goto/WebAPI/mediapackagev2-2022-12-25/ListHarvestJobs AWS API Documentation
2842
+ #
2843
+ # @overload list_harvest_jobs(params = {})
2844
+ # @param [Hash] params ({})
2845
+ def list_harvest_jobs(params = {}, options = {})
2846
+ req = build_request(:list_harvest_jobs, params)
2847
+ req.send_request(options)
2848
+ end
2849
+
2360
2850
  # Retrieves all origin endpoints in a specific channel that are
2361
2851
  # configured in AWS Elemental MediaPackage.
2362
2852
  #
@@ -3464,14 +3954,127 @@ module Aws::MediaPackageV2
3464
3954
  tracer: tracer
3465
3955
  )
3466
3956
  context[:gem_name] = 'aws-sdk-mediapackagev2'
3467
- context[:gem_version] = '1.30.0'
3957
+ context[:gem_version] = '1.31.0'
3468
3958
  Seahorse::Client::Request.new(handlers, context)
3469
3959
  end
3470
3960
 
3961
+ # Polls an API operation until a resource enters a desired state.
3962
+ #
3963
+ # ## Basic Usage
3964
+ #
3965
+ # A waiter will call an API operation until:
3966
+ #
3967
+ # * It is successful
3968
+ # * It enters a terminal state
3969
+ # * It makes the maximum number of attempts
3970
+ #
3971
+ # In between attempts, the waiter will sleep.
3972
+ #
3973
+ # # polls in a loop, sleeping between attempts
3974
+ # client.wait_until(waiter_name, params)
3975
+ #
3976
+ # ## Configuration
3977
+ #
3978
+ # You can configure the maximum number of polling attempts, and the
3979
+ # delay (in seconds) between each polling attempt. You can pass
3980
+ # configuration as the final arguments hash.
3981
+ #
3982
+ # # poll for ~25 seconds
3983
+ # client.wait_until(waiter_name, params, {
3984
+ # max_attempts: 5,
3985
+ # delay: 5,
3986
+ # })
3987
+ #
3988
+ # ## Callbacks
3989
+ #
3990
+ # You can be notified before each polling attempt and before each
3991
+ # delay. If you throw `:success` or `:failure` from these callbacks,
3992
+ # it will terminate the waiter.
3993
+ #
3994
+ # started_at = Time.now
3995
+ # client.wait_until(waiter_name, params, {
3996
+ #
3997
+ # # disable max attempts
3998
+ # max_attempts: nil,
3999
+ #
4000
+ # # poll for 1 hour, instead of a number of attempts
4001
+ # before_wait: -> (attempts, response) do
4002
+ # throw :failure if Time.now - started_at > 3600
4003
+ # end
4004
+ # })
4005
+ #
4006
+ # ## Handling Errors
4007
+ #
4008
+ # When a waiter is unsuccessful, it will raise an error.
4009
+ # All of the failure errors extend from
4010
+ # {Aws::Waiters::Errors::WaiterFailed}.
4011
+ #
4012
+ # begin
4013
+ # client.wait_until(...)
4014
+ # rescue Aws::Waiters::Errors::WaiterFailed
4015
+ # # resource did not enter the desired state in time
4016
+ # end
4017
+ #
4018
+ # ## Valid Waiters
4019
+ #
4020
+ # The following table lists the valid waiter names, the operations they call,
4021
+ # and the default `:delay` and `:max_attempts` values.
4022
+ #
4023
+ # | waiter_name | params | :delay | :max_attempts |
4024
+ # | -------------------- | ------------------------ | -------- | ------------- |
4025
+ # | harvest_job_finished | {Client#get_harvest_job} | 2 | 60 |
4026
+ #
4027
+ # @raise [Errors::FailureStateError] Raised when the waiter terminates
4028
+ # because the waiter has entered a state that it will not transition
4029
+ # out of, preventing success.
4030
+ #
4031
+ # @raise [Errors::TooManyAttemptsError] Raised when the configured
4032
+ # maximum number of attempts have been made, and the waiter is not
4033
+ # yet successful.
4034
+ #
4035
+ # @raise [Errors::UnexpectedError] Raised when an error is encounted
4036
+ # while polling for a resource that is not expected.
4037
+ #
4038
+ # @raise [Errors::NoSuchWaiterError] Raised when you request to wait
4039
+ # for an unknown state.
4040
+ #
4041
+ # @return [Boolean] Returns `true` if the waiter was successful.
4042
+ # @param [Symbol] waiter_name
4043
+ # @param [Hash] params ({})
4044
+ # @param [Hash] options ({})
4045
+ # @option options [Integer] :max_attempts
4046
+ # @option options [Integer] :delay
4047
+ # @option options [Proc] :before_attempt
4048
+ # @option options [Proc] :before_wait
4049
+ def wait_until(waiter_name, params = {}, options = {})
4050
+ w = waiter(waiter_name, options)
4051
+ yield(w.waiter) if block_given? # deprecated
4052
+ w.wait(params)
4053
+ end
4054
+
3471
4055
  # @api private
3472
4056
  # @deprecated
3473
4057
  def waiter_names
3474
- []
4058
+ waiters.keys
4059
+ end
4060
+
4061
+ private
4062
+
4063
+ # @param [Symbol] waiter_name
4064
+ # @param [Hash] options ({})
4065
+ def waiter(waiter_name, options = {})
4066
+ waiter_class = waiters[waiter_name]
4067
+ if waiter_class
4068
+ waiter_class.new(options.merge(client: self))
4069
+ else
4070
+ raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys)
4071
+ end
4072
+ end
4073
+
4074
+ def waiters
4075
+ {
4076
+ harvest_job_finished: Waiters::HarvestJobFinished
4077
+ }
3475
4078
  end
3476
4079
 
3477
4080
  class << self