aws-sdk-mediapackagev2 1.29.0 → 1.31.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dcf52c4afc8bccd0025b4e2f7e4c9e0f4fb2f0cc0ac518805bfd468c51aa889d
4
- data.tar.gz: 2659afd9b7c44bd1e9f7e5aa1697b747e31f2f1edee472413ec76017635fa769
3
+ metadata.gz: 63a341baf6e750f9c763b6cbb5e55a3b4ed6ab63fc6f63a9455587a15b5946ad
4
+ data.tar.gz: e182bd25200deb2ceb569640d11fc153eccbcfcfafe0fd9df259cee9a0da8830
5
5
  SHA512:
6
- metadata.gz: cc4082db2779a29eb081151b95a1cc4fced48bdc483cec9554c7abecfbc1f842d88f5995d721a1cf43f9b3cc2d1f7f22556bebe12ee25a46c0c0093e0d82a78c
7
- data.tar.gz: 965478bd7d579a0b6c7dbb21dfbc6f44bb35f60ce076881ada19a3467dc919eafd84d876c628420bf85ca6c1fae07c15bd61667e51dd5e87f617d3e2d076f9ea
6
+ metadata.gz: c16712389786ee860346a02477fbc088bbb8abde506dbdc1c7e7d4cefa3c9cc3220724a81b3c344f23037afd2805e936de5fe652efe3c6583b3ba99e62c0b8e9
7
+ data.tar.gz: 2ad8100677c67a92dd8e4e1d72ba30952ee98eb5656bd9d3eadcaa8e5d4910d0412663756f1a5e1bcce381331b2287eaaf2c94e1298f81c479d08e4d748ec6ea
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
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
+
9
+ 1.30.0 (2024-10-18)
10
+ ------------------
11
+
12
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
13
+
4
14
  1.29.0 (2024-10-03)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.29.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.29.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