Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(17)

Unified Diff: third_party/gsutil/third_party/boto/boto/elastictranscoder/layer1.py

Issue 1377933002: [catapult] - Copy Telemetry's gsutilz over to third_party. (Closed) Base URL: https://github.com/catapult-project/catapult.git@master
Patch Set: Rename to gsutil. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/gsutil/third_party/boto/boto/elastictranscoder/layer1.py
diff --git a/third_party/gsutil/third_party/boto/boto/elastictranscoder/layer1.py b/third_party/gsutil/third_party/boto/boto/elastictranscoder/layer1.py
new file mode 100644
index 0000000000000000000000000000000000000000..0f4dc9c74cc727a2717bb4b12788780d39fba7dd
--- /dev/null
+++ b/third_party/gsutil/third_party/boto/boto/elastictranscoder/layer1.py
@@ -0,0 +1,932 @@
+# Copyright (c) 2013 Amazon.com, Inc. or its affiliates. All Rights Reserved
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish, dis-
+# tribute, sublicense, and/or sell copies of the Software, and to permit
+# persons to whom the Software is furnished to do so, subject to the fol-
+# lowing conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
+# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
+# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+#
+from boto.compat import json
+from boto.exception import JSONResponseError
+from boto.connection import AWSAuthConnection
+from boto.regioninfo import RegionInfo
+from boto.elastictranscoder import exceptions
+
+
+class ElasticTranscoderConnection(AWSAuthConnection):
+ """
+ AWS Elastic Transcoder Service
+ The AWS Elastic Transcoder Service.
+ """
+ APIVersion = "2012-09-25"
+ DefaultRegionName = "us-east-1"
+ DefaultRegionEndpoint = "elastictranscoder.us-east-1.amazonaws.com"
+ ResponseError = JSONResponseError
+
+ _faults = {
+ "IncompatibleVersionException": exceptions.IncompatibleVersionException,
+ "LimitExceededException": exceptions.LimitExceededException,
+ "ResourceInUseException": exceptions.ResourceInUseException,
+ "AccessDeniedException": exceptions.AccessDeniedException,
+ "ResourceNotFoundException": exceptions.ResourceNotFoundException,
+ "InternalServiceException": exceptions.InternalServiceException,
+ "ValidationException": exceptions.ValidationException,
+ }
+
+
+ def __init__(self, **kwargs):
+ region = kwargs.get('region')
+ if not region:
+ region = RegionInfo(self, self.DefaultRegionName,
+ self.DefaultRegionEndpoint)
+ else:
+ del kwargs['region']
+ kwargs['host'] = region.endpoint
+ super(ElasticTranscoderConnection, self).__init__(**kwargs)
+ self.region = region
+
+ def _required_auth_capability(self):
+ return ['hmac-v4']
+
+ def cancel_job(self, id=None):
+ """
+ The CancelJob operation cancels an unfinished job.
+ You can only cancel a job that has a status of `Submitted`. To
+ prevent a pipeline from starting to process a job while you're
+ getting the job identifier, use UpdatePipelineStatus to
+ temporarily pause the pipeline.
+
+ :type id: string
+ :param id: The identifier of the job that you want to cancel.
+ To get a list of the jobs (including their `jobId`) that have a status
+ of `Submitted`, use the ListJobsByStatus API action.
+
+ """
+ uri = '/2012-09-25/jobs/{0}'.format(id)
+ return self.make_request('DELETE', uri, expected_status=202)
+
+ def create_job(self, pipeline_id=None, input_name=None, output=None,
+ outputs=None, output_key_prefix=None, playlists=None):
+ """
+ When you create a job, Elastic Transcoder returns JSON data
+ that includes the values that you specified plus information
+ about the job that is created.
+
+ If you have specified more than one output for your jobs (for
+ example, one output for the Kindle Fire and another output for
+ the Apple iPhone 4s), you currently must use the Elastic
+ Transcoder API to list the jobs (as opposed to the AWS
+ Console).
+
+ :type pipeline_id: string
+ :param pipeline_id: The `Id` of the pipeline that you want Elastic
+ Transcoder to use for transcoding. The pipeline determines several
+ settings, including the Amazon S3 bucket from which Elastic
+ Transcoder gets the files to transcode and the bucket into which
+ Elastic Transcoder puts the transcoded files.
+
+ :type input_name: dict
+ :param input_name: A section of the request body that provides
+ information about the file that is being transcoded.
+
+ :type output: dict
+ :param output: The `CreateJobOutput` structure.
+
+ :type outputs: list
+ :param outputs: A section of the request body that provides information
+ about the transcoded (target) files. We recommend that you use the
+ `Outputs` syntax instead of the `Output` syntax.
+
+ :type output_key_prefix: string
+ :param output_key_prefix: The value, if any, that you want Elastic
+ Transcoder to prepend to the names of all files that this job
+ creates, including output files, thumbnails, and playlists.
+
+ :type playlists: list
+ :param playlists: If you specify a preset in `PresetId` for which the
+ value of `Container` is ts (MPEG-TS), Playlists contains
+ information about the master playlists that you want Elastic
+ Transcoder to create.
+ We recommend that you create only one master playlist. The maximum
+ number of master playlists in a job is 30.
+
+ """
+ uri = '/2012-09-25/jobs'
+ params = {}
+ if pipeline_id is not None:
+ params['PipelineId'] = pipeline_id
+ if input_name is not None:
+ params['Input'] = input_name
+ if output is not None:
+ params['Output'] = output
+ if outputs is not None:
+ params['Outputs'] = outputs
+ if output_key_prefix is not None:
+ params['OutputKeyPrefix'] = output_key_prefix
+ if playlists is not None:
+ params['Playlists'] = playlists
+ return self.make_request('POST', uri, expected_status=201,
+ data=json.dumps(params))
+
+ def create_pipeline(self, name=None, input_bucket=None,
+ output_bucket=None, role=None, notifications=None,
+ content_config=None, thumbnail_config=None):
+ """
+ The CreatePipeline operation creates a pipeline with settings
+ that you specify.
+
+ :type name: string
+ :param name: The name of the pipeline. We recommend that the name be
+ unique within the AWS account, but uniqueness is not enforced.
+ Constraints: Maximum 40 characters.
+
+ :type input_bucket: string
+ :param input_bucket: The Amazon S3 bucket in which you saved the media
+ files that you want to transcode.
+
+ :type output_bucket: string
+ :param output_bucket: The Amazon S3 bucket in which you want Elastic
+ Transcoder to save the transcoded files. (Use this, or use
+ ContentConfig:Bucket plus ThumbnailConfig:Bucket.)
+ Specify this value when all of the following are true:
+
+ + You want to save transcoded files, thumbnails (if any), and playlists
+ (if any) together in one bucket.
+ + You do not want to specify the users or groups who have access to the
+ transcoded files, thumbnails, and playlists.
+ + You do not want to specify the permissions that Elastic Transcoder
+ grants to the files. When Elastic Transcoder saves files in
+ `OutputBucket`, it grants full control over the files only to the
+ AWS account that owns the role that is specified by `Role`.
+ + You want to associate the transcoded files and thumbnails with the
+ Amazon S3 Standard storage class.
+
+
+
+ If you want to save transcoded files and playlists in one bucket and
+ thumbnails in another bucket, specify which users can access the
+ transcoded files or the permissions the users have, or change the
+ Amazon S3 storage class, omit `OutputBucket` and specify values for
+ `ContentConfig` and `ThumbnailConfig` instead.
+
+ :type role: string
+ :param role: The IAM Amazon Resource Name (ARN) for the role that you
+ want Elastic Transcoder to use to create the pipeline.
+
+ :type notifications: dict
+ :param notifications:
+ The Amazon Simple Notification Service (Amazon SNS) topic that you want
+ to notify to report job status.
+ To receive notifications, you must also subscribe to the new topic in
+ the Amazon SNS console.
+
+ + **Progressing**: The topic ARN for the Amazon Simple Notification
+ Service (Amazon SNS) topic that you want to notify when Elastic
+ Transcoder has started to process a job in this pipeline. This is
+ the ARN that Amazon SNS returned when you created the topic. For
+ more information, see Create a Topic in the Amazon Simple
+ Notification Service Developer Guide.
+ + **Completed**: The topic ARN for the Amazon SNS topic that you want
+ to notify when Elastic Transcoder has finished processing a job in
+ this pipeline. This is the ARN that Amazon SNS returned when you
+ created the topic.
+ + **Warning**: The topic ARN for the Amazon SNS topic that you want to
+ notify when Elastic Transcoder encounters a warning condition while
+ processing a job in this pipeline. This is the ARN that Amazon SNS
+ returned when you created the topic.
+ + **Error**: The topic ARN for the Amazon SNS topic that you want to
+ notify when Elastic Transcoder encounters an error condition while
+ processing a job in this pipeline. This is the ARN that Amazon SNS
+ returned when you created the topic.
+
+ :type content_config: dict
+ :param content_config:
+ The optional `ContentConfig` object specifies information about the
+ Amazon S3 bucket in which you want Elastic Transcoder to save
+ transcoded files and playlists: which bucket to use, which users
+ you want to have access to the files, the type of access you want
+ users to have, and the storage class that you want to assign to the
+ files.
+
+ If you specify values for `ContentConfig`, you must also specify values
+ for `ThumbnailConfig`.
+
+ If you specify values for `ContentConfig` and `ThumbnailConfig`, omit
+ the `OutputBucket` object.
+
+
+ + **Bucket**: The Amazon S3 bucket in which you want Elastic Transcoder
+ to save transcoded files and playlists.
+ + **Permissions** (Optional): The Permissions object specifies which
+ users you want to have access to transcoded files and the type of
+ access you want them to have. You can grant permissions to a
+ maximum of 30 users and/or predefined Amazon S3 groups.
+ + **Grantee Type**: Specify the type of value that appears in the
+ `Grantee` object:
+
+ + **Canonical**: The value in the `Grantee` object is either the
+ canonical user ID for an AWS account or an origin access identity
+ for an Amazon CloudFront distribution. For more information about
+ canonical user IDs, see Access Control List (ACL) Overview in the
+ Amazon Simple Storage Service Developer Guide. For more information
+ about using CloudFront origin access identities to require that
+ users use CloudFront URLs instead of Amazon S3 URLs, see Using an
+ Origin Access Identity to Restrict Access to Your Amazon S3
+ Content. A canonical user ID is not the same as an AWS account
+ number.
+ + **Email**: The value in the `Grantee` object is the registered email
+ address of an AWS account.
+ + **Group**: The value in the `Grantee` object is one of the following
+ predefined Amazon S3 groups: `AllUsers`, `AuthenticatedUsers`, or
+ `LogDelivery`.
+
+ + **Grantee**: The AWS user or group that you want to have access to
+ transcoded files and playlists. To identify the user or group, you
+ can specify the canonical user ID for an AWS account, an origin
+ access identity for a CloudFront distribution, the registered email
+ address of an AWS account, or a predefined Amazon S3 group
+ + **Access**: The permission that you want to give to the AWS user that
+ you specified in `Grantee`. Permissions are granted on the files
+ that Elastic Transcoder adds to the bucket, including playlists and
+ video files. Valid values include:
+
+ + `READ`: The grantee can read the objects and metadata for objects
+ that Elastic Transcoder adds to the Amazon S3 bucket.
+ + `READ_ACP`: The grantee can read the object ACL for objects that
+ Elastic Transcoder adds to the Amazon S3 bucket.
+ + `WRITE_ACP`: The grantee can write the ACL for the objects that
+ Elastic Transcoder adds to the Amazon S3 bucket.
+ + `FULL_CONTROL`: The grantee has `READ`, `READ_ACP`, and `WRITE_ACP`
+ permissions for the objects that Elastic Transcoder adds to the
+ Amazon S3 bucket.
+
+ + **StorageClass**: The Amazon S3 storage class, `Standard` or
+ `ReducedRedundancy`, that you want Elastic Transcoder to assign to
+ the video files and playlists that it stores in your Amazon S3
+ bucket.
+
+ :type thumbnail_config: dict
+ :param thumbnail_config:
+ The `ThumbnailConfig` object specifies several values, including the
+ Amazon S3 bucket in which you want Elastic Transcoder to save
+ thumbnail files, which users you want to have access to the files,
+ the type of access you want users to have, and the storage class
+ that you want to assign to the files.
+
+ If you specify values for `ContentConfig`, you must also specify values
+ for `ThumbnailConfig` even if you don't want to create thumbnails.
+
+ If you specify values for `ContentConfig` and `ThumbnailConfig`, omit
+ the `OutputBucket` object.
+
+
+ + **Bucket**: The Amazon S3 bucket in which you want Elastic Transcoder
+ to save thumbnail files.
+ + **Permissions** (Optional): The `Permissions` object specifies which
+ users and/or predefined Amazon S3 groups you want to have access to
+ thumbnail files, and the type of access you want them to have. You
+ can grant permissions to a maximum of 30 users and/or predefined
+ Amazon S3 groups.
+ + **GranteeType**: Specify the type of value that appears in the
+ Grantee object:
+
+ + **Canonical**: The value in the `Grantee` object is either the
+ canonical user ID for an AWS account or an origin access identity
+ for an Amazon CloudFront distribution. A canonical user ID is not
+ the same as an AWS account number.
+ + **Email**: The value in the `Grantee` object is the registered email
+ address of an AWS account.
+ + **Group**: The value in the `Grantee` object is one of the following
+ predefined Amazon S3 groups: `AllUsers`, `AuthenticatedUsers`, or
+ `LogDelivery`.
+
+ + **Grantee**: The AWS user or group that you want to have access to
+ thumbnail files. To identify the user or group, you can specify the
+ canonical user ID for an AWS account, an origin access identity for
+ a CloudFront distribution, the registered email address of an AWS
+ account, or a predefined Amazon S3 group.
+ + **Access**: The permission that you want to give to the AWS user that
+ you specified in `Grantee`. Permissions are granted on the
+ thumbnail files that Elastic Transcoder adds to the bucket. Valid
+ values include:
+
+ + `READ`: The grantee can read the thumbnails and metadata for objects
+ that Elastic Transcoder adds to the Amazon S3 bucket.
+ + `READ_ACP`: The grantee can read the object ACL for thumbnails that
+ Elastic Transcoder adds to the Amazon S3 bucket.
+ + `WRITE_ACP`: The grantee can write the ACL for the thumbnails that
+ Elastic Transcoder adds to the Amazon S3 bucket.
+ + `FULL_CONTROL`: The grantee has `READ`, `READ_ACP`, and `WRITE_ACP`
+ permissions for the thumbnails that Elastic Transcoder adds to the
+ Amazon S3 bucket.
+
+ + **StorageClass**: The Amazon S3 storage class, `Standard` or
+ `ReducedRedundancy`, that you want Elastic Transcoder to assign to
+ the thumbnails that it stores in your Amazon S3 bucket.
+
+ """
+ uri = '/2012-09-25/pipelines'
+ params = {}
+ if name is not None:
+ params['Name'] = name
+ if input_bucket is not None:
+ params['InputBucket'] = input_bucket
+ if output_bucket is not None:
+ params['OutputBucket'] = output_bucket
+ if role is not None:
+ params['Role'] = role
+ if notifications is not None:
+ params['Notifications'] = notifications
+ if content_config is not None:
+ params['ContentConfig'] = content_config
+ if thumbnail_config is not None:
+ params['ThumbnailConfig'] = thumbnail_config
+ return self.make_request('POST', uri, expected_status=201,
+ data=json.dumps(params))
+
+ def create_preset(self, name=None, description=None, container=None,
+ video=None, audio=None, thumbnails=None):
+ """
+ The CreatePreset operation creates a preset with settings that
+ you specify.
+ Elastic Transcoder checks the CreatePreset settings to ensure
+ that they meet Elastic Transcoder requirements and to
+ determine whether they comply with H.264 standards. If your
+ settings are not valid for Elastic Transcoder, Elastic
+ Transcoder returns an HTTP 400 response (
+ `ValidationException`) and does not create the preset. If the
+ settings are valid for Elastic Transcoder but aren't strictly
+ compliant with the H.264 standard, Elastic Transcoder creates
+ the preset and returns a warning message in the response. This
+ helps you determine whether your settings comply with the
+ H.264 standard while giving you greater flexibility with
+ respect to the video that Elastic Transcoder produces.
+ Elastic Transcoder uses the H.264 video-compression format.
+ For more information, see the International Telecommunication
+ Union publication Recommendation ITU-T H.264: Advanced video
+ coding for generic audiovisual services .
+
+ :type name: string
+ :param name: The name of the preset. We recommend that the name be
+ unique within the AWS account, but uniqueness is not enforced.
+
+ :type description: string
+ :param description: A description of the preset.
+
+ :type container: string
+ :param container: The container type for the output file. Valid values
+ include `mp3`, `mp4`, `ogg`, `ts`, and `webm`.
+
+ :type video: dict
+ :param video: A section of the request body that specifies the video
+ parameters.
+
+ :type audio: dict
+ :param audio: A section of the request body that specifies the audio
+ parameters.
+
+ :type thumbnails: dict
+ :param thumbnails: A section of the request body that specifies the
+ thumbnail parameters, if any.
+
+ """
+ uri = '/2012-09-25/presets'
+ params = {}
+ if name is not None:
+ params['Name'] = name
+ if description is not None:
+ params['Description'] = description
+ if container is not None:
+ params['Container'] = container
+ if video is not None:
+ params['Video'] = video
+ if audio is not None:
+ params['Audio'] = audio
+ if thumbnails is not None:
+ params['Thumbnails'] = thumbnails
+ return self.make_request('POST', uri, expected_status=201,
+ data=json.dumps(params))
+
+ def delete_pipeline(self, id=None):
+ """
+ The DeletePipeline operation removes a pipeline.
+
+ You can only delete a pipeline that has never been used or
+ that is not currently in use (doesn't contain any active
+ jobs). If the pipeline is currently in use, `DeletePipeline`
+ returns an error.
+
+ :type id: string
+ :param id: The identifier of the pipeline that you want to delete.
+
+ """
+ uri = '/2012-09-25/pipelines/{0}'.format(id)
+ return self.make_request('DELETE', uri, expected_status=202)
+
+ def delete_preset(self, id=None):
+ """
+ The DeletePreset operation removes a preset that you've added
+ in an AWS region.
+
+ You can't delete the default presets that are included with
+ Elastic Transcoder.
+
+ :type id: string
+ :param id: The identifier of the preset for which you want to get
+ detailed information.
+
+ """
+ uri = '/2012-09-25/presets/{0}'.format(id)
+ return self.make_request('DELETE', uri, expected_status=202)
+
+ def list_jobs_by_pipeline(self, pipeline_id=None, ascending=None,
+ page_token=None):
+ """
+ The ListJobsByPipeline operation gets a list of the jobs
+ currently in a pipeline.
+
+ Elastic Transcoder returns all of the jobs currently in the
+ specified pipeline. The response body contains one element for
+ each job that satisfies the search criteria.
+
+ :type pipeline_id: string
+ :param pipeline_id: The ID of the pipeline for which you want to get
+ job information.
+
+ :type ascending: string
+ :param ascending: To list jobs in chronological order by the date and
+ time that they were submitted, enter `True`. To list jobs in
+ reverse chronological order, enter `False`.
+
+ :type page_token: string
+ :param page_token: When Elastic Transcoder returns more than one page
+ of results, use `pageToken` in subsequent `GET` requests to get
+ each successive page of results.
+
+ """
+ uri = '/2012-09-25/jobsByPipeline/{0}'.format(pipeline_id)
+ params = {}
+ if pipeline_id is not None:
+ params['PipelineId'] = pipeline_id
+ if ascending is not None:
+ params['Ascending'] = ascending
+ if page_token is not None:
+ params['PageToken'] = page_token
+ return self.make_request('GET', uri, expected_status=200,
+ params=params)
+
+ def list_jobs_by_status(self, status=None, ascending=None,
+ page_token=None):
+ """
+ The ListJobsByStatus operation gets a list of jobs that have a
+ specified status. The response body contains one element for
+ each job that satisfies the search criteria.
+
+ :type status: string
+ :param status: To get information about all of the jobs associated with
+ the current AWS account that have a given status, specify the
+ following status: `Submitted`, `Progressing`, `Complete`,
+ `Canceled`, or `Error`.
+
+ :type ascending: string
+ :param ascending: To list jobs in chronological order by the date and
+ time that they were submitted, enter `True`. To list jobs in
+ reverse chronological order, enter `False`.
+
+ :type page_token: string
+ :param page_token: When Elastic Transcoder returns more than one page
+ of results, use `pageToken` in subsequent `GET` requests to get
+ each successive page of results.
+
+ """
+ uri = '/2012-09-25/jobsByStatus/{0}'.format(status)
+ params = {}
+ if status is not None:
+ params['Status'] = status
+ if ascending is not None:
+ params['Ascending'] = ascending
+ if page_token is not None:
+ params['PageToken'] = page_token
+ return self.make_request('GET', uri, expected_status=200,
+ params=params)
+
+ def list_pipelines(self, ascending=None, page_token=None):
+ """
+ The ListPipelines operation gets a list of the pipelines
+ associated with the current AWS account.
+
+ :type ascending: string
+ :param ascending: To list pipelines in chronological order by the date
+ and time that they were created, enter `True`. To list pipelines in
+ reverse chronological order, enter `False`.
+
+ :type page_token: string
+ :param page_token: When Elastic Transcoder returns more than one page
+ of results, use `pageToken` in subsequent `GET` requests to get
+ each successive page of results.
+
+ """
+ uri = '/2012-09-25/pipelines'.format()
+ params = {}
+ if ascending is not None:
+ params['Ascending'] = ascending
+ if page_token is not None:
+ params['PageToken'] = page_token
+ return self.make_request('GET', uri, expected_status=200,
+ params=params)
+
+ def list_presets(self, ascending=None, page_token=None):
+ """
+ The ListPresets operation gets a list of the default presets
+ included with Elastic Transcoder and the presets that you've
+ added in an AWS region.
+
+ :type ascending: string
+ :param ascending: To list presets in chronological order by the date
+ and time that they were created, enter `True`. To list presets in
+ reverse chronological order, enter `False`.
+
+ :type page_token: string
+ :param page_token: When Elastic Transcoder returns more than one page
+ of results, use `pageToken` in subsequent `GET` requests to get
+ each successive page of results.
+
+ """
+ uri = '/2012-09-25/presets'.format()
+ params = {}
+ if ascending is not None:
+ params['Ascending'] = ascending
+ if page_token is not None:
+ params['PageToken'] = page_token
+ return self.make_request('GET', uri, expected_status=200,
+ params=params)
+
+ def read_job(self, id=None):
+ """
+ The ReadJob operation returns detailed information about a
+ job.
+
+ :type id: string
+ :param id: The identifier of the job for which you want to get detailed
+ information.
+
+ """
+ uri = '/2012-09-25/jobs/{0}'.format(id)
+ return self.make_request('GET', uri, expected_status=200)
+
+ def read_pipeline(self, id=None):
+ """
+ The ReadPipeline operation gets detailed information about a
+ pipeline.
+
+ :type id: string
+ :param id: The identifier of the pipeline to read.
+
+ """
+ uri = '/2012-09-25/pipelines/{0}'.format(id)
+ return self.make_request('GET', uri, expected_status=200)
+
+ def read_preset(self, id=None):
+ """
+ The ReadPreset operation gets detailed information about a
+ preset.
+
+ :type id: string
+ :param id: The identifier of the preset for which you want to get
+ detailed information.
+
+ """
+ uri = '/2012-09-25/presets/{0}'.format(id)
+ return self.make_request('GET', uri, expected_status=200)
+
+ def test_role(self, role=None, input_bucket=None, output_bucket=None,
+ topics=None):
+ """
+ The TestRole operation tests the IAM role used to create the
+ pipeline.
+
+ The `TestRole` action lets you determine whether the IAM role
+ you are using has sufficient permissions to let Elastic
+ Transcoder perform tasks associated with the transcoding
+ process. The action attempts to assume the specified IAM role,
+ checks read access to the input and output buckets, and tries
+ to send a test notification to Amazon SNS topics that you
+ specify.
+
+ :type role: string
+ :param role: The IAM Amazon Resource Name (ARN) for the role that you
+ want Elastic Transcoder to test.
+
+ :type input_bucket: string
+ :param input_bucket: The Amazon S3 bucket that contains media files to
+ be transcoded. The action attempts to read from this bucket.
+
+ :type output_bucket: string
+ :param output_bucket: The Amazon S3 bucket that Elastic Transcoder will
+ write transcoded media files to. The action attempts to read from
+ this bucket.
+
+ :type topics: list
+ :param topics: The ARNs of one or more Amazon Simple Notification
+ Service (Amazon SNS) topics that you want the action to send a test
+ notification to.
+
+ """
+ uri = '/2012-09-25/roleTests'
+ params = {}
+ if role is not None:
+ params['Role'] = role
+ if input_bucket is not None:
+ params['InputBucket'] = input_bucket
+ if output_bucket is not None:
+ params['OutputBucket'] = output_bucket
+ if topics is not None:
+ params['Topics'] = topics
+ return self.make_request('POST', uri, expected_status=200,
+ data=json.dumps(params))
+
+ def update_pipeline(self, id, name=None, input_bucket=None, role=None,
+ notifications=None, content_config=None,
+ thumbnail_config=None):
+ """
+ Use the `UpdatePipeline` operation to update settings for a
+ pipeline. When you change pipeline settings, your changes take
+ effect immediately. Jobs that you have already submitted and
+ that Elastic Transcoder has not started to process are
+ affected in addition to jobs that you submit after you change
+ settings.
+
+ :type id: string
+ :param id: The ID of the pipeline that you want to update.
+
+ :type name: string
+ :param name: The name of the pipeline. We recommend that the name be
+ unique within the AWS account, but uniqueness is not enforced.
+ Constraints: Maximum 40 characters
+
+ :type input_bucket: string
+ :param input_bucket: The Amazon S3 bucket in which you saved the media
+ files that you want to transcode and the graphics that you want to
+ use as watermarks.
+
+ :type role: string
+ :param role: The IAM Amazon Resource Name (ARN) for the role that you
+ want Elastic Transcoder to use to transcode jobs for this pipeline.
+
+ :type notifications: dict
+ :param notifications:
+ The Amazon Simple Notification Service (Amazon SNS) topic or topics to
+ notify in order to report job status.
+ To receive notifications, you must also subscribe to the new topic in
+ the Amazon SNS console.
+
+ :type content_config: dict
+ :param content_config:
+ The optional `ContentConfig` object specifies information about the
+ Amazon S3 bucket in which you want Elastic Transcoder to save
+ transcoded files and playlists: which bucket to use, which users
+ you want to have access to the files, the type of access you want
+ users to have, and the storage class that you want to assign to the
+ files.
+
+ If you specify values for `ContentConfig`, you must also specify values
+ for `ThumbnailConfig`.
+
+ If you specify values for `ContentConfig` and `ThumbnailConfig`, omit
+ the `OutputBucket` object.
+
+
+ + **Bucket**: The Amazon S3 bucket in which you want Elastic Transcoder
+ to save transcoded files and playlists.
+ + **Permissions** (Optional): The Permissions object specifies which
+ users you want to have access to transcoded files and the type of
+ access you want them to have. You can grant permissions to a
+ maximum of 30 users and/or predefined Amazon S3 groups.
+ + **Grantee Type**: Specify the type of value that appears in the
+ `Grantee` object:
+
+ + **Canonical**: The value in the `Grantee` object is either the
+ canonical user ID for an AWS account or an origin access identity
+ for an Amazon CloudFront distribution. For more information about
+ canonical user IDs, see Access Control List (ACL) Overview in the
+ Amazon Simple Storage Service Developer Guide. For more information
+ about using CloudFront origin access identities to require that
+ users use CloudFront URLs instead of Amazon S3 URLs, see Using an
+ Origin Access Identity to Restrict Access to Your Amazon S3
+ Content. A canonical user ID is not the same as an AWS account
+ number.
+ + **Email**: The value in the `Grantee` object is the registered email
+ address of an AWS account.
+ + **Group**: The value in the `Grantee` object is one of the following
+ predefined Amazon S3 groups: `AllUsers`, `AuthenticatedUsers`, or
+ `LogDelivery`.
+
+ + **Grantee**: The AWS user or group that you want to have access to
+ transcoded files and playlists. To identify the user or group, you
+ can specify the canonical user ID for an AWS account, an origin
+ access identity for a CloudFront distribution, the registered email
+ address of an AWS account, or a predefined Amazon S3 group
+ + **Access**: The permission that you want to give to the AWS user that
+ you specified in `Grantee`. Permissions are granted on the files
+ that Elastic Transcoder adds to the bucket, including playlists and
+ video files. Valid values include:
+
+ + `READ`: The grantee can read the objects and metadata for objects
+ that Elastic Transcoder adds to the Amazon S3 bucket.
+ + `READ_ACP`: The grantee can read the object ACL for objects that
+ Elastic Transcoder adds to the Amazon S3 bucket.
+ + `WRITE_ACP`: The grantee can write the ACL for the objects that
+ Elastic Transcoder adds to the Amazon S3 bucket.
+ + `FULL_CONTROL`: The grantee has `READ`, `READ_ACP`, and `WRITE_ACP`
+ permissions for the objects that Elastic Transcoder adds to the
+ Amazon S3 bucket.
+
+ + **StorageClass**: The Amazon S3 storage class, `Standard` or
+ `ReducedRedundancy`, that you want Elastic Transcoder to assign to
+ the video files and playlists that it stores in your Amazon S3
+ bucket.
+
+ :type thumbnail_config: dict
+ :param thumbnail_config:
+ The `ThumbnailConfig` object specifies several values, including the
+ Amazon S3 bucket in which you want Elastic Transcoder to save
+ thumbnail files, which users you want to have access to the files,
+ the type of access you want users to have, and the storage class
+ that you want to assign to the files.
+
+ If you specify values for `ContentConfig`, you must also specify values
+ for `ThumbnailConfig` even if you don't want to create thumbnails.
+
+ If you specify values for `ContentConfig` and `ThumbnailConfig`, omit
+ the `OutputBucket` object.
+
+
+ + **Bucket**: The Amazon S3 bucket in which you want Elastic Transcoder
+ to save thumbnail files.
+ + **Permissions** (Optional): The `Permissions` object specifies which
+ users and/or predefined Amazon S3 groups you want to have access to
+ thumbnail files, and the type of access you want them to have. You
+ can grant permissions to a maximum of 30 users and/or predefined
+ Amazon S3 groups.
+ + **GranteeType**: Specify the type of value that appears in the
+ Grantee object:
+
+ + **Canonical**: The value in the `Grantee` object is either the
+ canonical user ID for an AWS account or an origin access identity
+ for an Amazon CloudFront distribution. A canonical user ID is not
+ the same as an AWS account number.
+ + **Email**: The value in the `Grantee` object is the registered email
+ address of an AWS account.
+ + **Group**: The value in the `Grantee` object is one of the following
+ predefined Amazon S3 groups: `AllUsers`, `AuthenticatedUsers`, or
+ `LogDelivery`.
+
+ + **Grantee**: The AWS user or group that you want to have access to
+ thumbnail files. To identify the user or group, you can specify the
+ canonical user ID for an AWS account, an origin access identity for
+ a CloudFront distribution, the registered email address of an AWS
+ account, or a predefined Amazon S3 group.
+ + **Access**: The permission that you want to give to the AWS user that
+ you specified in `Grantee`. Permissions are granted on the
+ thumbnail files that Elastic Transcoder adds to the bucket. Valid
+ values include:
+
+ + `READ`: The grantee can read the thumbnails and metadata for objects
+ that Elastic Transcoder adds to the Amazon S3 bucket.
+ + `READ_ACP`: The grantee can read the object ACL for thumbnails that
+ Elastic Transcoder adds to the Amazon S3 bucket.
+ + `WRITE_ACP`: The grantee can write the ACL for the thumbnails that
+ Elastic Transcoder adds to the Amazon S3 bucket.
+ + `FULL_CONTROL`: The grantee has `READ`, `READ_ACP`, and `WRITE_ACP`
+ permissions for the thumbnails that Elastic Transcoder adds to the
+ Amazon S3 bucket.
+
+ + **StorageClass**: The Amazon S3 storage class, `Standard` or
+ `ReducedRedundancy`, that you want Elastic Transcoder to assign to
+ the thumbnails that it stores in your Amazon S3 bucket.
+
+ """
+ uri = '/2012-09-25/pipelines/{0}'.format(id)
+ params = {}
+ if name is not None:
+ params['Name'] = name
+ if input_bucket is not None:
+ params['InputBucket'] = input_bucket
+ if role is not None:
+ params['Role'] = role
+ if notifications is not None:
+ params['Notifications'] = notifications
+ if content_config is not None:
+ params['ContentConfig'] = content_config
+ if thumbnail_config is not None:
+ params['ThumbnailConfig'] = thumbnail_config
+ return self.make_request('PUT', uri, expected_status=200,
+ data=json.dumps(params))
+
+ def update_pipeline_notifications(self, id=None, notifications=None):
+ """
+ With the UpdatePipelineNotifications operation, you can update
+ Amazon Simple Notification Service (Amazon SNS) notifications
+ for a pipeline.
+
+ When you update notifications for a pipeline, Elastic
+ Transcoder returns the values that you specified in the
+ request.
+
+ :type id: string
+ :param id: The identifier of the pipeline for which you want to change
+ notification settings.
+
+ :type notifications: dict
+ :param notifications:
+ The topic ARN for the Amazon Simple Notification Service (Amazon SNS)
+ topic that you want to notify to report job status.
+ To receive notifications, you must also subscribe to the new topic in
+ the Amazon SNS console.
+
+ + **Progressing**: The topic ARN for the Amazon Simple Notification
+ Service (Amazon SNS) topic that you want to notify when Elastic
+ Transcoder has started to process jobs that are added to this
+ pipeline. This is the ARN that Amazon SNS returned when you created
+ the topic.
+ + **Completed**: The topic ARN for the Amazon SNS topic that you want
+ to notify when Elastic Transcoder has finished processing a job.
+ This is the ARN that Amazon SNS returned when you created the
+ topic.
+ + **Warning**: The topic ARN for the Amazon SNS topic that you want to
+ notify when Elastic Transcoder encounters a warning condition. This
+ is the ARN that Amazon SNS returned when you created the topic.
+ + **Error**: The topic ARN for the Amazon SNS topic that you want to
+ notify when Elastic Transcoder encounters an error condition. This
+ is the ARN that Amazon SNS returned when you created the topic.
+
+ """
+ uri = '/2012-09-25/pipelines/{0}/notifications'.format(id)
+ params = {}
+ if id is not None:
+ params['Id'] = id
+ if notifications is not None:
+ params['Notifications'] = notifications
+ return self.make_request('POST', uri, expected_status=200,
+ data=json.dumps(params))
+
+ def update_pipeline_status(self, id=None, status=None):
+ """
+ The UpdatePipelineStatus operation pauses or reactivates a
+ pipeline, so that the pipeline stops or restarts the
+ processing of jobs.
+
+ Changing the pipeline status is useful if you want to cancel
+ one or more jobs. You can't cancel jobs after Elastic
+ Transcoder has started processing them; if you pause the
+ pipeline to which you submitted the jobs, you have more time
+ to get the job IDs for the jobs that you want to cancel, and
+ to send a CancelJob request.
+
+ :type id: string
+ :param id: The identifier of the pipeline to update.
+
+ :type status: string
+ :param status:
+ The desired status of the pipeline:
+
+
+ + `Active`: The pipeline is processing jobs.
+ + `Paused`: The pipeline is not currently processing jobs.
+
+ """
+ uri = '/2012-09-25/pipelines/{0}/status'.format(id)
+ params = {}
+ if id is not None:
+ params['Id'] = id
+ if status is not None:
+ params['Status'] = status
+ return self.make_request('POST', uri, expected_status=200,
+ data=json.dumps(params))
+
+ def make_request(self, verb, resource, headers=None, data='',
+ expected_status=None, params=None):
+ if headers is None:
+ headers = {}
+ response = super(ElasticTranscoderConnection, self).make_request(
+ verb, resource, headers=headers, data=data, params=params)
+ body = json.loads(response.read().decode('utf-8'))
+ if response.status == expected_status:
+ return body
+ else:
+ error_type = response.getheader('x-amzn-ErrorType').split(':')[0]
+ error_class = self._faults.get(error_type, self.ResponseError)
+ raise error_class(response.status, response.reason, body)

Powered by Google App Engine
This is Rietveld 408576698