All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.services.mediastore.DefaultMediaStoreClient Maven / Gradle / Ivy

Go to download

The AWS Java SDK for AWS Elemental MediaStore module holds the client classes that are used for communicating with AWS Elemental MediaStore Service

There is a newer version: 2.29.39
Show newest version
/*
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
 */

package software.amazon.awssdk.services.mediastore;

import java.util.Collections;
import java.util.List;
import java.util.function.Consumer;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.annotations.SdkInternalApi;
import software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler;
import software.amazon.awssdk.awscore.exception.AwsServiceException;
import software.amazon.awssdk.awscore.internal.AwsProtocolMetadata;
import software.amazon.awssdk.awscore.internal.AwsServiceProtocol;
import software.amazon.awssdk.awscore.retry.AwsRetryStrategy;
import software.amazon.awssdk.core.RequestOverrideConfiguration;
import software.amazon.awssdk.core.SdkPlugin;
import software.amazon.awssdk.core.SdkRequest;
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
import software.amazon.awssdk.core.client.config.SdkClientConfiguration;
import software.amazon.awssdk.core.client.config.SdkClientOption;
import software.amazon.awssdk.core.client.handler.ClientExecutionParams;
import software.amazon.awssdk.core.client.handler.SyncClientHandler;
import software.amazon.awssdk.core.exception.SdkClientException;
import software.amazon.awssdk.core.http.HttpResponseHandler;
import software.amazon.awssdk.core.metrics.CoreMetric;
import software.amazon.awssdk.core.retry.RetryMode;
import software.amazon.awssdk.metrics.MetricCollector;
import software.amazon.awssdk.metrics.MetricPublisher;
import software.amazon.awssdk.metrics.NoOpMetricCollector;
import software.amazon.awssdk.protocols.core.ExceptionMetadata;
import software.amazon.awssdk.protocols.json.AwsJsonProtocol;
import software.amazon.awssdk.protocols.json.AwsJsonProtocolFactory;
import software.amazon.awssdk.protocols.json.BaseAwsJsonProtocolFactory;
import software.amazon.awssdk.protocols.json.JsonOperationMetadata;
import software.amazon.awssdk.retries.api.RetryStrategy;
import software.amazon.awssdk.services.mediastore.internal.MediaStoreServiceClientConfigurationBuilder;
import software.amazon.awssdk.services.mediastore.model.ContainerInUseException;
import software.amazon.awssdk.services.mediastore.model.ContainerNotFoundException;
import software.amazon.awssdk.services.mediastore.model.CorsPolicyNotFoundException;
import software.amazon.awssdk.services.mediastore.model.CreateContainerRequest;
import software.amazon.awssdk.services.mediastore.model.CreateContainerResponse;
import software.amazon.awssdk.services.mediastore.model.DeleteContainerPolicyRequest;
import software.amazon.awssdk.services.mediastore.model.DeleteContainerPolicyResponse;
import software.amazon.awssdk.services.mediastore.model.DeleteContainerRequest;
import software.amazon.awssdk.services.mediastore.model.DeleteContainerResponse;
import software.amazon.awssdk.services.mediastore.model.DeleteCorsPolicyRequest;
import software.amazon.awssdk.services.mediastore.model.DeleteCorsPolicyResponse;
import software.amazon.awssdk.services.mediastore.model.DeleteLifecyclePolicyRequest;
import software.amazon.awssdk.services.mediastore.model.DeleteLifecyclePolicyResponse;
import software.amazon.awssdk.services.mediastore.model.DeleteMetricPolicyRequest;
import software.amazon.awssdk.services.mediastore.model.DeleteMetricPolicyResponse;
import software.amazon.awssdk.services.mediastore.model.DescribeContainerRequest;
import software.amazon.awssdk.services.mediastore.model.DescribeContainerResponse;
import software.amazon.awssdk.services.mediastore.model.GetContainerPolicyRequest;
import software.amazon.awssdk.services.mediastore.model.GetContainerPolicyResponse;
import software.amazon.awssdk.services.mediastore.model.GetCorsPolicyRequest;
import software.amazon.awssdk.services.mediastore.model.GetCorsPolicyResponse;
import software.amazon.awssdk.services.mediastore.model.GetLifecyclePolicyRequest;
import software.amazon.awssdk.services.mediastore.model.GetLifecyclePolicyResponse;
import software.amazon.awssdk.services.mediastore.model.GetMetricPolicyRequest;
import software.amazon.awssdk.services.mediastore.model.GetMetricPolicyResponse;
import software.amazon.awssdk.services.mediastore.model.InternalServerErrorException;
import software.amazon.awssdk.services.mediastore.model.LimitExceededException;
import software.amazon.awssdk.services.mediastore.model.ListContainersRequest;
import software.amazon.awssdk.services.mediastore.model.ListContainersResponse;
import software.amazon.awssdk.services.mediastore.model.ListTagsForResourceRequest;
import software.amazon.awssdk.services.mediastore.model.ListTagsForResourceResponse;
import software.amazon.awssdk.services.mediastore.model.MediaStoreException;
import software.amazon.awssdk.services.mediastore.model.PolicyNotFoundException;
import software.amazon.awssdk.services.mediastore.model.PutContainerPolicyRequest;
import software.amazon.awssdk.services.mediastore.model.PutContainerPolicyResponse;
import software.amazon.awssdk.services.mediastore.model.PutCorsPolicyRequest;
import software.amazon.awssdk.services.mediastore.model.PutCorsPolicyResponse;
import software.amazon.awssdk.services.mediastore.model.PutLifecyclePolicyRequest;
import software.amazon.awssdk.services.mediastore.model.PutLifecyclePolicyResponse;
import software.amazon.awssdk.services.mediastore.model.PutMetricPolicyRequest;
import software.amazon.awssdk.services.mediastore.model.PutMetricPolicyResponse;
import software.amazon.awssdk.services.mediastore.model.StartAccessLoggingRequest;
import software.amazon.awssdk.services.mediastore.model.StartAccessLoggingResponse;
import software.amazon.awssdk.services.mediastore.model.StopAccessLoggingRequest;
import software.amazon.awssdk.services.mediastore.model.StopAccessLoggingResponse;
import software.amazon.awssdk.services.mediastore.model.TagResourceRequest;
import software.amazon.awssdk.services.mediastore.model.TagResourceResponse;
import software.amazon.awssdk.services.mediastore.model.UntagResourceRequest;
import software.amazon.awssdk.services.mediastore.model.UntagResourceResponse;
import software.amazon.awssdk.services.mediastore.transform.CreateContainerRequestMarshaller;
import software.amazon.awssdk.services.mediastore.transform.DeleteContainerPolicyRequestMarshaller;
import software.amazon.awssdk.services.mediastore.transform.DeleteContainerRequestMarshaller;
import software.amazon.awssdk.services.mediastore.transform.DeleteCorsPolicyRequestMarshaller;
import software.amazon.awssdk.services.mediastore.transform.DeleteLifecyclePolicyRequestMarshaller;
import software.amazon.awssdk.services.mediastore.transform.DeleteMetricPolicyRequestMarshaller;
import software.amazon.awssdk.services.mediastore.transform.DescribeContainerRequestMarshaller;
import software.amazon.awssdk.services.mediastore.transform.GetContainerPolicyRequestMarshaller;
import software.amazon.awssdk.services.mediastore.transform.GetCorsPolicyRequestMarshaller;
import software.amazon.awssdk.services.mediastore.transform.GetLifecyclePolicyRequestMarshaller;
import software.amazon.awssdk.services.mediastore.transform.GetMetricPolicyRequestMarshaller;
import software.amazon.awssdk.services.mediastore.transform.ListContainersRequestMarshaller;
import software.amazon.awssdk.services.mediastore.transform.ListTagsForResourceRequestMarshaller;
import software.amazon.awssdk.services.mediastore.transform.PutContainerPolicyRequestMarshaller;
import software.amazon.awssdk.services.mediastore.transform.PutCorsPolicyRequestMarshaller;
import software.amazon.awssdk.services.mediastore.transform.PutLifecyclePolicyRequestMarshaller;
import software.amazon.awssdk.services.mediastore.transform.PutMetricPolicyRequestMarshaller;
import software.amazon.awssdk.services.mediastore.transform.StartAccessLoggingRequestMarshaller;
import software.amazon.awssdk.services.mediastore.transform.StopAccessLoggingRequestMarshaller;
import software.amazon.awssdk.services.mediastore.transform.TagResourceRequestMarshaller;
import software.amazon.awssdk.services.mediastore.transform.UntagResourceRequestMarshaller;
import software.amazon.awssdk.utils.Logger;

/**
 * Internal implementation of {@link MediaStoreClient}.
 *
 * @see MediaStoreClient#builder()
 */
@Generated("software.amazon.awssdk:codegen")
@SdkInternalApi
final class DefaultMediaStoreClient implements MediaStoreClient {
    private static final Logger log = Logger.loggerFor(DefaultMediaStoreClient.class);

    private static final AwsProtocolMetadata protocolMetadata = AwsProtocolMetadata.builder()
            .serviceProtocol(AwsServiceProtocol.AWS_JSON).build();

    private final SyncClientHandler clientHandler;

    private final AwsJsonProtocolFactory protocolFactory;

    private final SdkClientConfiguration clientConfiguration;

    protected DefaultMediaStoreClient(SdkClientConfiguration clientConfiguration) {
        this.clientHandler = new AwsSyncClientHandler(clientConfiguration);
        this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build();
        this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build();
    }

    /**
     * 

* Creates a storage container to hold objects. A container is similar to a bucket in the Amazon S3 service. *

* * @param createContainerRequest * @return Result of the CreateContainer operation returned by the service. * @throws ContainerInUseException * The container that you specified in the request already exists or is being updated. * @throws LimitExceededException * A service limit has been exceeded. * @throws InternalServerErrorException * The service is temporarily unavailable. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws MediaStoreException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample MediaStoreClient.CreateContainer * @see AWS * API Documentation */ @Override public CreateContainerResponse createContainer(CreateContainerRequest createContainerRequest) throws ContainerInUseException, LimitExceededException, InternalServerErrorException, AwsServiceException, SdkClientException, MediaStoreException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, CreateContainerResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createContainerRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, createContainerRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "MediaStore"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateContainer"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("CreateContainer").withProtocolMetadata(protocolMetadata) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withInput(createContainerRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new CreateContainerRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Deletes the specified container. Before you make a DeleteContainer request, delete any objects in * the container or in any folders in the container. You can delete only empty containers. *

* * @param deleteContainerRequest * @return Result of the DeleteContainer operation returned by the service. * @throws ContainerInUseException * The container that you specified in the request already exists or is being updated. * @throws ContainerNotFoundException * The container that you specified in the request does not exist. * @throws InternalServerErrorException * The service is temporarily unavailable. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws MediaStoreException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample MediaStoreClient.DeleteContainer * @see AWS * API Documentation */ @Override public DeleteContainerResponse deleteContainer(DeleteContainerRequest deleteContainerRequest) throws ContainerInUseException, ContainerNotFoundException, InternalServerErrorException, AwsServiceException, SdkClientException, MediaStoreException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, DeleteContainerResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteContainerRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteContainerRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "MediaStore"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteContainer"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteContainer").withProtocolMetadata(protocolMetadata) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withInput(deleteContainerRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeleteContainerRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Deletes the access policy that is associated with the specified container. *

* * @param deleteContainerPolicyRequest * @return Result of the DeleteContainerPolicy operation returned by the service. * @throws ContainerInUseException * The container that you specified in the request already exists or is being updated. * @throws ContainerNotFoundException * The container that you specified in the request does not exist. * @throws PolicyNotFoundException * The policy that you specified in the request does not exist. * @throws InternalServerErrorException * The service is temporarily unavailable. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws MediaStoreException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample MediaStoreClient.DeleteContainerPolicy * @see AWS API Documentation */ @Override public DeleteContainerPolicyResponse deleteContainerPolicy(DeleteContainerPolicyRequest deleteContainerPolicyRequest) throws ContainerInUseException, ContainerNotFoundException, PolicyNotFoundException, InternalServerErrorException, AwsServiceException, SdkClientException, MediaStoreException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DeleteContainerPolicyResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteContainerPolicyRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteContainerPolicyRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "MediaStore"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteContainerPolicy"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteContainerPolicy").withProtocolMetadata(protocolMetadata) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withInput(deleteContainerPolicyRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeleteContainerPolicyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Deletes the cross-origin resource sharing (CORS) configuration information that is set for the container. *

*

* To use this operation, you must have permission to perform the MediaStore:DeleteCorsPolicy action. * The container owner has this permission by default and can grant this permission to others. *

* * @param deleteCorsPolicyRequest * @return Result of the DeleteCorsPolicy operation returned by the service. * @throws ContainerInUseException * The container that you specified in the request already exists or is being updated. * @throws ContainerNotFoundException * The container that you specified in the request does not exist. * @throws CorsPolicyNotFoundException * The CORS policy that you specified in the request does not exist. * @throws InternalServerErrorException * The service is temporarily unavailable. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws MediaStoreException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample MediaStoreClient.DeleteCorsPolicy * @see AWS * API Documentation */ @Override public DeleteCorsPolicyResponse deleteCorsPolicy(DeleteCorsPolicyRequest deleteCorsPolicyRequest) throws ContainerInUseException, ContainerNotFoundException, CorsPolicyNotFoundException, InternalServerErrorException, AwsServiceException, SdkClientException, MediaStoreException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, DeleteCorsPolicyResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteCorsPolicyRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteCorsPolicyRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "MediaStore"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteCorsPolicy"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteCorsPolicy").withProtocolMetadata(protocolMetadata) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withInput(deleteCorsPolicyRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeleteCorsPolicyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Removes an object lifecycle policy from a container. It takes up to 20 minutes for the change to take effect. *

* * @param deleteLifecyclePolicyRequest * @return Result of the DeleteLifecyclePolicy operation returned by the service. * @throws ContainerInUseException * The container that you specified in the request already exists or is being updated. * @throws ContainerNotFoundException * The container that you specified in the request does not exist. * @throws PolicyNotFoundException * The policy that you specified in the request does not exist. * @throws InternalServerErrorException * The service is temporarily unavailable. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws MediaStoreException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample MediaStoreClient.DeleteLifecyclePolicy * @see AWS API Documentation */ @Override public DeleteLifecyclePolicyResponse deleteLifecyclePolicy(DeleteLifecyclePolicyRequest deleteLifecyclePolicyRequest) throws ContainerInUseException, ContainerNotFoundException, PolicyNotFoundException, InternalServerErrorException, AwsServiceException, SdkClientException, MediaStoreException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DeleteLifecyclePolicyResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteLifecyclePolicyRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteLifecyclePolicyRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "MediaStore"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteLifecyclePolicy"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteLifecyclePolicy").withProtocolMetadata(protocolMetadata) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withInput(deleteLifecyclePolicyRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeleteLifecyclePolicyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Deletes the metric policy that is associated with the specified container. If there is no metric policy * associated with the container, MediaStore doesn't send metrics to CloudWatch. *

* * @param deleteMetricPolicyRequest * @return Result of the DeleteMetricPolicy operation returned by the service. * @throws ContainerInUseException * The container that you specified in the request already exists or is being updated. * @throws ContainerNotFoundException * The container that you specified in the request does not exist. * @throws PolicyNotFoundException * The policy that you specified in the request does not exist. * @throws InternalServerErrorException * The service is temporarily unavailable. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws MediaStoreException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample MediaStoreClient.DeleteMetricPolicy * @see AWS * API Documentation */ @Override public DeleteMetricPolicyResponse deleteMetricPolicy(DeleteMetricPolicyRequest deleteMetricPolicyRequest) throws ContainerInUseException, ContainerNotFoundException, PolicyNotFoundException, InternalServerErrorException, AwsServiceException, SdkClientException, MediaStoreException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, DeleteMetricPolicyResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteMetricPolicyRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteMetricPolicyRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "MediaStore"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteMetricPolicy"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DeleteMetricPolicy").withProtocolMetadata(protocolMetadata) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withInput(deleteMetricPolicyRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DeleteMetricPolicyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Retrieves the properties of the requested container. This request is commonly used to retrieve the endpoint of a * container. An endpoint is a value assigned by the service when a new container is created. A container's endpoint * does not change after it has been assigned. The DescribeContainer request returns a single * Container object based on ContainerName. To return all Container objects * that are associated with a specified AWS account, use ListContainers. *

* * @param describeContainerRequest * @return Result of the DescribeContainer operation returned by the service. * @throws ContainerNotFoundException * The container that you specified in the request does not exist. * @throws InternalServerErrorException * The service is temporarily unavailable. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws MediaStoreException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample MediaStoreClient.DescribeContainer * @see AWS * API Documentation */ @Override public DescribeContainerResponse describeContainer(DescribeContainerRequest describeContainerRequest) throws ContainerNotFoundException, InternalServerErrorException, AwsServiceException, SdkClientException, MediaStoreException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, DescribeContainerResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeContainerRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, describeContainerRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "MediaStore"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeContainer"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("DescribeContainer").withProtocolMetadata(protocolMetadata) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withInput(describeContainerRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new DescribeContainerRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Retrieves the access policy for the specified container. For information about the data that is included in an * access policy, see the AWS Identity and Access Management * User Guide. *

* * @param getContainerPolicyRequest * @return Result of the GetContainerPolicy operation returned by the service. * @throws ContainerInUseException * The container that you specified in the request already exists or is being updated. * @throws ContainerNotFoundException * The container that you specified in the request does not exist. * @throws PolicyNotFoundException * The policy that you specified in the request does not exist. * @throws InternalServerErrorException * The service is temporarily unavailable. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws MediaStoreException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample MediaStoreClient.GetContainerPolicy * @see AWS * API Documentation */ @Override public GetContainerPolicyResponse getContainerPolicy(GetContainerPolicyRequest getContainerPolicyRequest) throws ContainerInUseException, ContainerNotFoundException, PolicyNotFoundException, InternalServerErrorException, AwsServiceException, SdkClientException, MediaStoreException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, GetContainerPolicyResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getContainerPolicyRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getContainerPolicyRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "MediaStore"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetContainerPolicy"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("GetContainerPolicy").withProtocolMetadata(protocolMetadata) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withInput(getContainerPolicyRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new GetContainerPolicyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Returns the cross-origin resource sharing (CORS) configuration information that is set for the container. *

*

* To use this operation, you must have permission to perform the MediaStore:GetCorsPolicy action. By * default, the container owner has this permission and can grant it to others. *

* * @param getCorsPolicyRequest * @return Result of the GetCorsPolicy operation returned by the service. * @throws ContainerInUseException * The container that you specified in the request already exists or is being updated. * @throws ContainerNotFoundException * The container that you specified in the request does not exist. * @throws CorsPolicyNotFoundException * The CORS policy that you specified in the request does not exist. * @throws InternalServerErrorException * The service is temporarily unavailable. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws MediaStoreException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample MediaStoreClient.GetCorsPolicy * @see AWS API * Documentation */ @Override public GetCorsPolicyResponse getCorsPolicy(GetCorsPolicyRequest getCorsPolicyRequest) throws ContainerInUseException, ContainerNotFoundException, CorsPolicyNotFoundException, InternalServerErrorException, AwsServiceException, SdkClientException, MediaStoreException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, GetCorsPolicyResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getCorsPolicyRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getCorsPolicyRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "MediaStore"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetCorsPolicy"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("GetCorsPolicy").withProtocolMetadata(protocolMetadata) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withInput(getCorsPolicyRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new GetCorsPolicyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Retrieves the object lifecycle policy that is assigned to a container. *

* * @param getLifecyclePolicyRequest * @return Result of the GetLifecyclePolicy operation returned by the service. * @throws ContainerInUseException * The container that you specified in the request already exists or is being updated. * @throws ContainerNotFoundException * The container that you specified in the request does not exist. * @throws PolicyNotFoundException * The policy that you specified in the request does not exist. * @throws InternalServerErrorException * The service is temporarily unavailable. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws MediaStoreException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample MediaStoreClient.GetLifecyclePolicy * @see AWS * API Documentation */ @Override public GetLifecyclePolicyResponse getLifecyclePolicy(GetLifecyclePolicyRequest getLifecyclePolicyRequest) throws ContainerInUseException, ContainerNotFoundException, PolicyNotFoundException, InternalServerErrorException, AwsServiceException, SdkClientException, MediaStoreException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, GetLifecyclePolicyResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getLifecyclePolicyRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getLifecyclePolicyRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "MediaStore"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetLifecyclePolicy"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("GetLifecyclePolicy").withProtocolMetadata(protocolMetadata) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withInput(getLifecyclePolicyRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new GetLifecyclePolicyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Returns the metric policy for the specified container. *

* * @param getMetricPolicyRequest * @return Result of the GetMetricPolicy operation returned by the service. * @throws ContainerNotFoundException * The container that you specified in the request does not exist. * @throws PolicyNotFoundException * The policy that you specified in the request does not exist. * @throws ContainerInUseException * The container that you specified in the request already exists or is being updated. * @throws InternalServerErrorException * The service is temporarily unavailable. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws MediaStoreException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample MediaStoreClient.GetMetricPolicy * @see AWS * API Documentation */ @Override public GetMetricPolicyResponse getMetricPolicy(GetMetricPolicyRequest getMetricPolicyRequest) throws ContainerNotFoundException, PolicyNotFoundException, ContainerInUseException, InternalServerErrorException, AwsServiceException, SdkClientException, MediaStoreException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, GetMetricPolicyResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(getMetricPolicyRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, getMetricPolicyRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "MediaStore"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetMetricPolicy"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("GetMetricPolicy").withProtocolMetadata(protocolMetadata) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withInput(getMetricPolicyRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new GetMetricPolicyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Lists the properties of all containers in AWS Elemental MediaStore. *

*

* You can query to receive all the containers in one response. Or you can include the MaxResults * parameter to receive a limited number of containers in each response. In this case, the response includes a * token. To get the next set of containers, send the command again, this time with the NextToken * parameter (with the returned token as its value). The next set of responses appears, with a token if there are * still more containers to receive. *

*

* See also DescribeContainer, which gets the properties of one container. *

* * @param listContainersRequest * @return Result of the ListContainers operation returned by the service. * @throws InternalServerErrorException * The service is temporarily unavailable. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws MediaStoreException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample MediaStoreClient.ListContainers * @see AWS API * Documentation */ @Override public ListContainersResponse listContainers(ListContainersRequest listContainersRequest) throws InternalServerErrorException, AwsServiceException, SdkClientException, MediaStoreException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, ListContainersResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listContainersRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listContainersRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "MediaStore"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListContainers"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListContainers").withProtocolMetadata(protocolMetadata) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withInput(listContainersRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListContainersRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Returns a list of the tags assigned to the specified container. *

* * @param listTagsForResourceRequest * @return Result of the ListTagsForResource operation returned by the service. * @throws ContainerInUseException * The container that you specified in the request already exists or is being updated. * @throws ContainerNotFoundException * The container that you specified in the request does not exist. * @throws InternalServerErrorException * The service is temporarily unavailable. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws MediaStoreException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample MediaStoreClient.ListTagsForResource * @see AWS API Documentation */ @Override public ListTagsForResourceResponse listTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest) throws ContainerInUseException, ContainerNotFoundException, InternalServerErrorException, AwsServiceException, SdkClientException, MediaStoreException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, ListTagsForResourceResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listTagsForResourceRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, listTagsForResourceRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "MediaStore"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListTagsForResource"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("ListTagsForResource").withProtocolMetadata(protocolMetadata) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withInput(listTagsForResourceRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new ListTagsForResourceRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Creates an access policy for the specified container to restrict the users and clients that can access it. For * information about the data that is included in an access policy, see the AWS Identity and Access Management User Guide. *

*

* For this release of the REST API, you can create only one policy for a container. If you enter * PutContainerPolicy twice, the second command modifies the existing policy. *

* * @param putContainerPolicyRequest * @return Result of the PutContainerPolicy operation returned by the service. * @throws ContainerNotFoundException * The container that you specified in the request does not exist. * @throws ContainerInUseException * The container that you specified in the request already exists or is being updated. * @throws InternalServerErrorException * The service is temporarily unavailable. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws MediaStoreException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample MediaStoreClient.PutContainerPolicy * @see AWS * API Documentation */ @Override public PutContainerPolicyResponse putContainerPolicy(PutContainerPolicyRequest putContainerPolicyRequest) throws ContainerNotFoundException, ContainerInUseException, InternalServerErrorException, AwsServiceException, SdkClientException, MediaStoreException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, PutContainerPolicyResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(putContainerPolicyRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, putContainerPolicyRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "MediaStore"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "PutContainerPolicy"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("PutContainerPolicy").withProtocolMetadata(protocolMetadata) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withInput(putContainerPolicyRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new PutContainerPolicyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Sets the cross-origin resource sharing (CORS) configuration on a container so that the container can service * cross-origin requests. For example, you might want to enable a request whose origin is http://www.example.com to * access your AWS Elemental MediaStore container at my.example.container.com by using the browser's XMLHttpRequest * capability. *

*

* To enable CORS on a container, you attach a CORS policy to the container. In the CORS policy, you configure rules * that identify origins and the HTTP methods that can be executed on your container. The policy can contain up to * 398,000 characters. You can add up to 100 rules to a CORS policy. If more than one rule applies, the service uses * the first applicable rule listed. *

*

* To learn more about CORS, see Cross-Origin Resource Sharing (CORS) in * AWS Elemental MediaStore. *

* * @param putCorsPolicyRequest * @return Result of the PutCorsPolicy operation returned by the service. * @throws ContainerNotFoundException * The container that you specified in the request does not exist. * @throws ContainerInUseException * The container that you specified in the request already exists or is being updated. * @throws InternalServerErrorException * The service is temporarily unavailable. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws MediaStoreException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample MediaStoreClient.PutCorsPolicy * @see AWS API * Documentation */ @Override public PutCorsPolicyResponse putCorsPolicy(PutCorsPolicyRequest putCorsPolicyRequest) throws ContainerNotFoundException, ContainerInUseException, InternalServerErrorException, AwsServiceException, SdkClientException, MediaStoreException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, PutCorsPolicyResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(putCorsPolicyRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, putCorsPolicyRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "MediaStore"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "PutCorsPolicy"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("PutCorsPolicy").withProtocolMetadata(protocolMetadata) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withInput(putCorsPolicyRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new PutCorsPolicyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Writes an object lifecycle policy to a container. If the container already has an object lifecycle policy, the * service replaces the existing policy with the new policy. It takes up to 20 minutes for the change to take * effect. *

*

* For information about how to construct an object lifecycle policy, see Components of * an Object Lifecycle Policy. *

* * @param putLifecyclePolicyRequest * @return Result of the PutLifecyclePolicy operation returned by the service. * @throws ContainerInUseException * The container that you specified in the request already exists or is being updated. * @throws ContainerNotFoundException * The container that you specified in the request does not exist. * @throws InternalServerErrorException * The service is temporarily unavailable. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws MediaStoreException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample MediaStoreClient.PutLifecyclePolicy * @see AWS * API Documentation */ @Override public PutLifecyclePolicyResponse putLifecyclePolicy(PutLifecyclePolicyRequest putLifecyclePolicyRequest) throws ContainerInUseException, ContainerNotFoundException, InternalServerErrorException, AwsServiceException, SdkClientException, MediaStoreException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, PutLifecyclePolicyResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(putLifecyclePolicyRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, putLifecyclePolicyRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "MediaStore"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "PutLifecyclePolicy"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("PutLifecyclePolicy").withProtocolMetadata(protocolMetadata) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withInput(putLifecyclePolicyRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new PutLifecyclePolicyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* The metric policy that you want to add to the container. A metric policy allows AWS Elemental MediaStore to send * metrics to Amazon CloudWatch. It takes up to 20 minutes for the new policy to take effect. *

* * @param putMetricPolicyRequest * @return Result of the PutMetricPolicy operation returned by the service. * @throws ContainerInUseException * The container that you specified in the request already exists or is being updated. * @throws ContainerNotFoundException * The container that you specified in the request does not exist. * @throws InternalServerErrorException * The service is temporarily unavailable. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws MediaStoreException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample MediaStoreClient.PutMetricPolicy * @see AWS * API Documentation */ @Override public PutMetricPolicyResponse putMetricPolicy(PutMetricPolicyRequest putMetricPolicyRequest) throws ContainerInUseException, ContainerNotFoundException, InternalServerErrorException, AwsServiceException, SdkClientException, MediaStoreException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, PutMetricPolicyResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(putMetricPolicyRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, putMetricPolicyRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "MediaStore"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "PutMetricPolicy"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("PutMetricPolicy").withProtocolMetadata(protocolMetadata) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withInput(putMetricPolicyRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new PutMetricPolicyRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Starts access logging on the specified container. When you enable access logging on a container, MediaStore * delivers access logs for objects stored in that container to Amazon CloudWatch Logs. *

* * @param startAccessLoggingRequest * @return Result of the StartAccessLogging operation returned by the service. * @throws ContainerInUseException * The container that you specified in the request already exists or is being updated. * @throws ContainerNotFoundException * The container that you specified in the request does not exist. * @throws InternalServerErrorException * The service is temporarily unavailable. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws MediaStoreException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample MediaStoreClient.StartAccessLogging * @see AWS * API Documentation */ @Override public StartAccessLoggingResponse startAccessLogging(StartAccessLoggingRequest startAccessLoggingRequest) throws ContainerInUseException, ContainerNotFoundException, InternalServerErrorException, AwsServiceException, SdkClientException, MediaStoreException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler( operationMetadata, StartAccessLoggingResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(startAccessLoggingRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, startAccessLoggingRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "MediaStore"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "StartAccessLogging"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("StartAccessLogging").withProtocolMetadata(protocolMetadata) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withInput(startAccessLoggingRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new StartAccessLoggingRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Stops access logging on the specified container. When you stop access logging on a container, MediaStore stops * sending access logs to Amazon CloudWatch Logs. These access logs are not saved and are not retrievable. *

* * @param stopAccessLoggingRequest * @return Result of the StopAccessLogging operation returned by the service. * @throws ContainerInUseException * The container that you specified in the request already exists or is being updated. * @throws ContainerNotFoundException * The container that you specified in the request does not exist. * @throws InternalServerErrorException * The service is temporarily unavailable. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws MediaStoreException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample MediaStoreClient.StopAccessLogging * @see AWS * API Documentation */ @Override public StopAccessLoggingResponse stopAccessLogging(StopAccessLoggingRequest stopAccessLoggingRequest) throws ContainerInUseException, ContainerNotFoundException, InternalServerErrorException, AwsServiceException, SdkClientException, MediaStoreException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, StopAccessLoggingResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(stopAccessLoggingRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, stopAccessLoggingRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "MediaStore"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "StopAccessLogging"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("StopAccessLogging").withProtocolMetadata(protocolMetadata) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withInput(stopAccessLoggingRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new StopAccessLoggingRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Adds tags to the specified AWS Elemental MediaStore container. Tags are key:value pairs that you can associate * with AWS resources. For example, the tag key might be "customer" and the tag value might be "companyA." You can * specify one or more tags to add to each container. You can add up to 50 tags to each container. For more * information about tagging, including naming and usage conventions, see Tagging Resources in MediaStore. *

* * @param tagResourceRequest * @return Result of the TagResource operation returned by the service. * @throws ContainerInUseException * The container that you specified in the request already exists or is being updated. * @throws ContainerNotFoundException * The container that you specified in the request does not exist. * @throws InternalServerErrorException * The service is temporarily unavailable. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws MediaStoreException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample MediaStoreClient.TagResource * @see AWS API * Documentation */ @Override public TagResourceResponse tagResource(TagResourceRequest tagResourceRequest) throws ContainerInUseException, ContainerNotFoundException, InternalServerErrorException, AwsServiceException, SdkClientException, MediaStoreException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, TagResourceResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(tagResourceRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, tagResourceRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "MediaStore"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "TagResource"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("TagResource").withProtocolMetadata(protocolMetadata).withResponseHandler(responseHandler) .withErrorResponseHandler(errorResponseHandler).withRequestConfiguration(clientConfiguration) .withInput(tagResourceRequest).withMetricCollector(apiCallMetricCollector) .withMarshaller(new TagResourceRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } /** *

* Removes tags from the specified container. You can specify one or more tags to remove. *

* * @param untagResourceRequest * @return Result of the UntagResource operation returned by the service. * @throws ContainerInUseException * The container that you specified in the request already exists or is being updated. * @throws ContainerNotFoundException * The container that you specified in the request does not exist. * @throws InternalServerErrorException * The service is temporarily unavailable. * @throws SdkException * Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for * catch all scenarios. * @throws SdkClientException * If any client side error occurs such as an IO related failure, failure to get credentials, etc. * @throws MediaStoreException * Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type. * @sample MediaStoreClient.UntagResource * @see AWS API * Documentation */ @Override public UntagResourceResponse untagResource(UntagResourceRequest untagResourceRequest) throws ContainerInUseException, ContainerNotFoundException, InternalServerErrorException, AwsServiceException, SdkClientException, MediaStoreException { JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false) .isPayloadJson(true).build(); HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata, UntagResourceResponse::builder); HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory, operationMetadata); SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(untagResourceRequest, this.clientConfiguration); List metricPublishers = resolveMetricPublishers(clientConfiguration, untagResourceRequest .overrideConfiguration().orElse(null)); MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector .create("ApiCall"); try { apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "MediaStore"); apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UntagResource"); return clientHandler.execute(new ClientExecutionParams() .withOperationName("UntagResource").withProtocolMetadata(protocolMetadata) .withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler) .withRequestConfiguration(clientConfiguration).withInput(untagResourceRequest) .withMetricCollector(apiCallMetricCollector) .withMarshaller(new UntagResourceRequestMarshaller(protocolFactory))); } finally { metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect())); } } @Override public final String serviceName() { return SERVICE_NAME; } private static List resolveMetricPublishers(SdkClientConfiguration clientConfiguration, RequestOverrideConfiguration requestOverrideConfiguration) { List publishers = null; if (requestOverrideConfiguration != null) { publishers = requestOverrideConfiguration.metricPublishers(); } if (publishers == null || publishers.isEmpty()) { publishers = clientConfiguration.option(SdkClientOption.METRIC_PUBLISHERS); } if (publishers == null) { publishers = Collections.emptyList(); } return publishers; } private HttpResponseHandler createErrorResponseHandler(BaseAwsJsonProtocolFactory protocolFactory, JsonOperationMetadata operationMetadata) { return protocolFactory.createErrorResponseHandler(operationMetadata); } private void updateRetryStrategyClientConfiguration(SdkClientConfiguration.Builder configuration) { ClientOverrideConfiguration.Builder builder = configuration.asOverrideConfigurationBuilder(); RetryMode retryMode = builder.retryMode(); if (retryMode != null) { configuration.option(SdkClientOption.RETRY_STRATEGY, AwsRetryStrategy.forRetryMode(retryMode)); } else { Consumer> configurator = builder.retryStrategyConfigurator(); if (configurator != null) { RetryStrategy.Builder defaultBuilder = AwsRetryStrategy.defaultRetryStrategy().toBuilder(); configurator.accept(defaultBuilder); configuration.option(SdkClientOption.RETRY_STRATEGY, defaultBuilder.build()); } else { RetryStrategy retryStrategy = builder.retryStrategy(); if (retryStrategy != null) { configuration.option(SdkClientOption.RETRY_STRATEGY, retryStrategy); } } } configuration.option(SdkClientOption.CONFIGURED_RETRY_MODE, null); configuration.option(SdkClientOption.CONFIGURED_RETRY_STRATEGY, null); configuration.option(SdkClientOption.CONFIGURED_RETRY_CONFIGURATOR, null); } private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, SdkClientConfiguration clientConfiguration) { List plugins = request.overrideConfiguration().map(c -> c.plugins()).orElse(Collections.emptyList()); SdkClientConfiguration.Builder configuration = clientConfiguration.toBuilder(); if (plugins.isEmpty()) { return configuration.build(); } MediaStoreServiceClientConfigurationBuilder serviceConfigBuilder = new MediaStoreServiceClientConfigurationBuilder( configuration); for (SdkPlugin plugin : plugins) { plugin.configureClient(serviceConfigBuilder); } updateRetryStrategyClientConfiguration(configuration); return configuration.build(); } private > T init(T builder) { return builder .clientConfiguration(clientConfiguration) .defaultServiceExceptionSupplier(MediaStoreException::builder) .protocol(AwsJsonProtocol.AWS_JSON) .protocolVersion("1.1") .registerModeledException( ExceptionMetadata.builder().errorCode("ContainerInUseException") .exceptionBuilderSupplier(ContainerInUseException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("CorsPolicyNotFoundException") .exceptionBuilderSupplier(CorsPolicyNotFoundException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("ContainerNotFoundException") .exceptionBuilderSupplier(ContainerNotFoundException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("PolicyNotFoundException") .exceptionBuilderSupplier(PolicyNotFoundException::builder).httpStatusCode(400).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("InternalServerError") .exceptionBuilderSupplier(InternalServerErrorException::builder).httpStatusCode(500).build()) .registerModeledException( ExceptionMetadata.builder().errorCode("LimitExceededException") .exceptionBuilderSupplier(LimitExceededException::builder).httpStatusCode(400).build()); } @Override public final MediaStoreServiceClientConfiguration serviceClientConfiguration() { return new MediaStoreServiceClientConfigurationBuilder(this.clientConfiguration.toBuilder()).build(); } @Override public void close() { clientHandler.close(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy