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

com.amazonaws.services.secretsmanager.AWSSecretsManagerClient Maven / Gradle / Ivy

Go to download

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

There is a newer version: 1.12.780
Show newest version
/*
 * Copyright 2017-2022 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 com.amazonaws.services.secretsmanager;

import org.w3c.dom.*;

import java.net.*;
import java.util.*;

import javax.annotation.Generated;

import org.apache.commons.logging.*;

import com.amazonaws.*;
import com.amazonaws.annotation.SdkInternalApi;
import com.amazonaws.auth.*;

import com.amazonaws.handlers.*;
import com.amazonaws.http.*;
import com.amazonaws.internal.*;
import com.amazonaws.internal.auth.*;
import com.amazonaws.metrics.*;
import com.amazonaws.regions.*;
import com.amazonaws.transform.*;
import com.amazonaws.util.*;
import com.amazonaws.protocol.json.*;
import com.amazonaws.util.AWSRequestMetrics.Field;
import com.amazonaws.annotation.ThreadSafe;
import com.amazonaws.client.AwsSyncClientParams;
import com.amazonaws.client.builder.AdvancedConfig;

import com.amazonaws.services.secretsmanager.AWSSecretsManagerClientBuilder;

import com.amazonaws.AmazonServiceException;

import com.amazonaws.services.secretsmanager.model.*;
import com.amazonaws.services.secretsmanager.model.transform.*;

/**
 * Client for accessing AWS Secrets Manager. All service calls made using this client are blocking, and will not return
 * until the service call completes.
 * 

* Amazon Web Services Secrets Manager *

* Amazon Web Services Secrets Manager provides a service to enable you to store, manage, and retrieve, secrets. *

*

* This guide provides descriptions of the Secrets Manager API. For more information about using this service, see the * Amazon Web Services Secrets * Manager User Guide. *

*

* API Version *

*

* This version of the Secrets Manager API Reference documents the Secrets Manager API version 2017-10-17. *

* *

* As an alternative to using the API, you can use one of the Amazon Web Services SDKs, which consist of libraries and * sample code for various programming languages and platforms such as Java, Ruby, .NET, iOS, and Android. The SDKs * provide a convenient way to create programmatic access to Amazon Web Services Secrets Manager. For example, the SDKs * provide cryptographically signing requests, managing errors, and retrying requests automatically. For more * information about the Amazon Web Services SDKs, including downloading and installing them, see Tools for Amazon Web Services. *

*
*

* We recommend you use the Amazon Web Services SDKs to make programmatic API calls to Secrets Manager. However, you * also can use the Secrets Manager HTTP Query API to make direct calls to the Secrets Manager web service. To learn * more about the Secrets Manager HTTP Query API, see Making Query Requests in * the Amazon Web Services Secrets Manager User Guide. *

*

* Secrets Manager API supports GET and POST requests for all actions, and doesn't require you to use GET for some * actions and POST for others. However, GET requests are subject to the limitation size of a URL. Therefore, for * operations that require larger sizes, use a POST request. *

*

* Support and Feedback for Amazon Web Services Secrets Manager *

*

* We welcome your feedback. Send your comments to [email protected], or post your feedback * and questions in the Amazon Web Services Secrets * Manager Discussion Forum. For more information about the Amazon Web Services Discussion Forums, see Forums Help. *

*

* How examples are presented *

*

* The JSON that Amazon Web Services Secrets Manager expects as your request parameters and the service returns as a * response to HTTP query requests contain single, long strings without line breaks or white space formatting. The JSON * shown in the examples displays the code formatted with both line breaks and white space to improve readability. When * example input parameters can also cause long strings extending beyond the screen, you can insert line breaks to * enhance readability. You should always submit the input as a single JSON text string. *

*

* Logging API Requests *

*

* Amazon Web Services Secrets Manager supports Amazon Web Services CloudTrail, a service that records Amazon Web * Services API calls for your Amazon Web Services account and delivers log files to an Amazon S3 bucket. By using * information that's collected by Amazon Web Services CloudTrail, you can determine the requests successfully made to * Secrets Manager, who made the request, when it was made, and so on. For more about Amazon Web Services Secrets * Manager and support for Amazon Web Services CloudTrail, see Logging * Amazon Web Services Secrets Manager Events with Amazon Web Services CloudTrail in the Amazon Web Services * Secrets Manager User Guide. To learn more about CloudTrail, including enabling it and find your log files, see * the Amazon * Web Services CloudTrail User Guide. *

*/ @ThreadSafe @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AWSSecretsManagerClient extends AmazonWebServiceClient implements AWSSecretsManager { /** Provider for AWS credentials. */ private final AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory.getLog(AWSSecretsManager.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "secretsmanager"; /** Client configuration factory providing ClientConfigurations tailored to this client */ protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory(); private final AdvancedConfig advancedConfig; private static final com.amazonaws.protocol.json.SdkJsonProtocolFactory protocolFactory = new com.amazonaws.protocol.json.SdkJsonProtocolFactory( new JsonClientMetadata() .withProtocolVersion("1.1") .withSupportsCbor(false) .withSupportsIon(false) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("EncryptionFailure").withExceptionUnmarshaller( com.amazonaws.services.secretsmanager.model.transform.EncryptionFailureExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidParameterException").withExceptionUnmarshaller( com.amazonaws.services.secretsmanager.model.transform.InvalidParameterExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("PublicPolicyException").withExceptionUnmarshaller( com.amazonaws.services.secretsmanager.model.transform.PublicPolicyExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("MalformedPolicyDocumentException").withExceptionUnmarshaller( com.amazonaws.services.secretsmanager.model.transform.MalformedPolicyDocumentExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("DecryptionFailure").withExceptionUnmarshaller( com.amazonaws.services.secretsmanager.model.transform.DecryptionFailureExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidRequestException").withExceptionUnmarshaller( com.amazonaws.services.secretsmanager.model.transform.InvalidRequestExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceNotFoundException").withExceptionUnmarshaller( com.amazonaws.services.secretsmanager.model.transform.ResourceNotFoundExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InternalServiceError").withExceptionUnmarshaller( com.amazonaws.services.secretsmanager.model.transform.InternalServiceErrorExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceExistsException").withExceptionUnmarshaller( com.amazonaws.services.secretsmanager.model.transform.ResourceExistsExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidNextTokenException").withExceptionUnmarshaller( com.amazonaws.services.secretsmanager.model.transform.InvalidNextTokenExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("LimitExceededException").withExceptionUnmarshaller( com.amazonaws.services.secretsmanager.model.transform.LimitExceededExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("PreconditionNotMetException").withExceptionUnmarshaller( com.amazonaws.services.secretsmanager.model.transform.PreconditionNotMetExceptionUnmarshaller.getInstance())) .withBaseServiceExceptionClass(com.amazonaws.services.secretsmanager.model.AWSSecretsManagerException.class)); public static AWSSecretsManagerClientBuilder builder() { return AWSSecretsManagerClientBuilder.standard(); } /** * Constructs a new client to invoke service methods on AWS Secrets Manager using the specified parameters. * *

* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientParams * Object providing client parameters. */ AWSSecretsManagerClient(AwsSyncClientParams clientParams) { this(clientParams, false); } /** * Constructs a new client to invoke service methods on AWS Secrets Manager using the specified parameters. * *

* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientParams * Object providing client parameters. */ AWSSecretsManagerClient(AwsSyncClientParams clientParams, boolean endpointDiscoveryEnabled) { super(clientParams); this.awsCredentialsProvider = clientParams.getCredentialsProvider(); this.advancedConfig = clientParams.getAdvancedConfig(); init(); } private void init() { setServiceNameIntern(DEFAULT_SIGNING_NAME); setEndpointPrefix(ENDPOINT_PREFIX); // calling this.setEndPoint(...) will also modify the signer accordingly setEndpoint("secretsmanager.us-east-1.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s.addAll(chainFactory.newRequestHandlerChain("/com/amazonaws/services/secretsmanager/request.handlers")); requestHandler2s.addAll(chainFactory.newRequestHandler2Chain("/com/amazonaws/services/secretsmanager/request.handler2s")); requestHandler2s.addAll(chainFactory.getGlobalHandlers()); } /** *

* Turns off automatic rotation, and if a rotation is currently in progress, cancels the rotation. *

*

* To turn on automatic rotation again, call RotateSecret. *

* *

* If you cancel a rotation in progress, it can leave the VersionStage labels in an unexpected state. * Depending on the step of the rotation in progress, you might need to remove the staging label * AWSPENDING from the partially created version, specified by the VersionId response * value. We recommend you also evaluate the partially rotated new version to see if it should be deleted. You can * delete a version by removing all staging labels from it. *

*
* * @param cancelRotateSecretRequest * @return Result of the CancelRotateSecret operation returned by the service. * @throws ResourceNotFoundException * Secrets Manager can't find the resource that you asked for. * @throws InvalidParameterException * The parameter name is invalid value. * @throws InternalServiceErrorException * An error occurred on the server side. * @throws InvalidRequestException * A parameter value is not valid for the current state of the resource.

*

* Possible causes: *

*
    *
  • *

    * The secret is scheduled for deletion. *

    *
  • *
  • *

    * You tried to enable rotation on a secret that doesn't already have a Lambda function ARN configured and * you didn't include such an ARN as a parameter in this call. *

    *
  • * @sample AWSSecretsManager.CancelRotateSecret * @see AWS API Documentation */ @Override public CancelRotateSecretResult cancelRotateSecret(CancelRotateSecretRequest request) { request = beforeClientExecution(request); return executeCancelRotateSecret(request); } @SdkInternalApi final CancelRotateSecretResult executeCancelRotateSecret(CancelRotateSecretRequest cancelRotateSecretRequest) { ExecutionContext executionContext = createExecutionContext(cancelRotateSecretRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CancelRotateSecretRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(cancelRotateSecretRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Secrets Manager"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CancelRotateSecret"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CancelRotateSecretResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

    * Creates a new secret. A secret is a set of credentials, such as a user name and password, that you store * in an encrypted form in Secrets Manager. The secret also includes the connection information to access a database * or other service, which Secrets Manager doesn't encrypt. A secret in Secrets Manager consists of both the * protected secret data and the important information needed to manage the secret. *

    *

    * For information about creating a secret in the console, see Create a * secret. *

    *

    * To create a secret, you can provide the secret value to be encrypted in either the SecretString * parameter or the SecretBinary parameter, but not both. If you include SecretString or * SecretBinary then Secrets Manager creates an initial secret version and automatically attaches the * staging label AWSCURRENT to it. *

    *

    * If you don't specify an KMS encryption key, Secrets Manager uses the Amazon Web Services managed key * aws/secretsmanager. If this key doesn't already exist in your account, then Secrets Manager creates * it for you automatically. All users and roles in the Amazon Web Services account automatically have access to use * aws/secretsmanager. Creating aws/secretsmanager can result in a one-time significant * delay in returning the result. *

    *

    * If the secret is in a different Amazon Web Services account from the credentials calling the API, then you can't * use aws/secretsmanager to encrypt the secret, and you must create and use a customer managed KMS * key. *

    * * @param createSecretRequest * @return Result of the CreateSecret operation returned by the service. * @throws InvalidParameterException * The parameter name is invalid value. * @throws InvalidRequestException * A parameter value is not valid for the current state of the resource.

    *

    * Possible causes: *

    *
      *
    • *

      * The secret is scheduled for deletion. *

      *
    • *
    • *

      * You tried to enable rotation on a secret that doesn't already have a Lambda function ARN configured and * you didn't include such an ARN as a parameter in this call. *

      *
    • * @throws LimitExceededException * The request failed because it would exceed one of the Secrets Manager quotas. * @throws EncryptionFailureException * Secrets Manager can't encrypt the protected secret text using the provided KMS key. Check that the KMS * key is available, enabled, and not in an invalid state. For more information, see Key state: Effect on your KMS * key. * @throws ResourceExistsException * A resource with the ID you requested already exists. * @throws ResourceNotFoundException * Secrets Manager can't find the resource that you asked for. * @throws MalformedPolicyDocumentException * The resource policy has syntax errors. * @throws InternalServiceErrorException * An error occurred on the server side. * @throws PreconditionNotMetException * The request failed because you did not complete all the prerequisite steps. * @sample AWSSecretsManager.CreateSecret * @see AWS * API Documentation */ @Override public CreateSecretResult createSecret(CreateSecretRequest request) { request = beforeClientExecution(request); return executeCreateSecret(request); } @SdkInternalApi final CreateSecretResult executeCreateSecret(CreateSecretRequest createSecretRequest) { ExecutionContext executionContext = createExecutionContext(createSecretRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateSecretRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createSecretRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Secrets Manager"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateSecret"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateSecretResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

      * Deletes the resource-based permission policy attached to the secret. To attach a policy to a secret, use * PutResourcePolicy. *

      * * @param deleteResourcePolicyRequest * @return Result of the DeleteResourcePolicy operation returned by the service. * @throws ResourceNotFoundException * Secrets Manager can't find the resource that you asked for. * @throws InternalServiceErrorException * An error occurred on the server side. * @throws InvalidRequestException * A parameter value is not valid for the current state of the resource.

      *

      * Possible causes: *

      *
        *
      • *

        * The secret is scheduled for deletion. *

        *
      • *
      • *

        * You tried to enable rotation on a secret that doesn't already have a Lambda function ARN configured and * you didn't include such an ARN as a parameter in this call. *

        *
      • * @throws InvalidParameterException * The parameter name is invalid value. * @sample AWSSecretsManager.DeleteResourcePolicy * @see AWS API Documentation */ @Override public DeleteResourcePolicyResult deleteResourcePolicy(DeleteResourcePolicyRequest request) { request = beforeClientExecution(request); return executeDeleteResourcePolicy(request); } @SdkInternalApi final DeleteResourcePolicyResult executeDeleteResourcePolicy(DeleteResourcePolicyRequest deleteResourcePolicyRequest) { ExecutionContext executionContext = createExecutionContext(deleteResourcePolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteResourcePolicyRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteResourcePolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Secrets Manager"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteResourcePolicy"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteResourcePolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

        * Deletes a secret and all of its versions. You can specify a recovery window during which you can restore the * secret. The minimum recovery window is 7 days. The default recovery window is 30 days. Secrets Manager attaches a * DeletionDate stamp to the secret that specifies the end of the recovery window. At the end of the * recovery window, Secrets Manager deletes the secret permanently. *

        *

        * For information about deleting a secret in the console, see https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_delete-secret.html. *

        *

        * Secrets Manager performs the permanent secret deletion at the end of the waiting period as a background task with * low priority. There is no guarantee of a specific time after the recovery window for the permanent delete to * occur. *

        *

        * At any time before recovery window ends, you can use RestoreSecret to remove the DeletionDate * and cancel the deletion of the secret. *

        *

        * In a secret scheduled for deletion, you cannot access the encrypted secret value. To access that information, * first cancel the deletion with RestoreSecret and then retrieve the information. *

        * * @param deleteSecretRequest * @return Result of the DeleteSecret operation returned by the service. * @throws ResourceNotFoundException * Secrets Manager can't find the resource that you asked for. * @throws InvalidParameterException * The parameter name is invalid value. * @throws InvalidRequestException * A parameter value is not valid for the current state of the resource.

        *

        * Possible causes: *

        *
          *
        • *

          * The secret is scheduled for deletion. *

          *
        • *
        • *

          * You tried to enable rotation on a secret that doesn't already have a Lambda function ARN configured and * you didn't include such an ARN as a parameter in this call. *

          *
        • * @throws InternalServiceErrorException * An error occurred on the server side. * @sample AWSSecretsManager.DeleteSecret * @see AWS * API Documentation */ @Override public DeleteSecretResult deleteSecret(DeleteSecretRequest request) { request = beforeClientExecution(request); return executeDeleteSecret(request); } @SdkInternalApi final DeleteSecretResult executeDeleteSecret(DeleteSecretRequest deleteSecretRequest) { ExecutionContext executionContext = createExecutionContext(deleteSecretRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteSecretRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteSecretRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Secrets Manager"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteSecret"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteSecretResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

          * Retrieves the details of a secret. It does not include the encrypted secret value. Secrets Manager only returns * fields that have a value in the response. *

          * * @param describeSecretRequest * @return Result of the DescribeSecret operation returned by the service. * @throws ResourceNotFoundException * Secrets Manager can't find the resource that you asked for. * @throws InternalServiceErrorException * An error occurred on the server side. * @throws InvalidParameterException * The parameter name is invalid value. * @sample AWSSecretsManager.DescribeSecret * @see AWS * API Documentation */ @Override public DescribeSecretResult describeSecret(DescribeSecretRequest request) { request = beforeClientExecution(request); return executeDescribeSecret(request); } @SdkInternalApi final DescribeSecretResult executeDescribeSecret(DescribeSecretRequest describeSecretRequest) { ExecutionContext executionContext = createExecutionContext(describeSecretRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DescribeSecretRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(describeSecretRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Secrets Manager"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DescribeSecret"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DescribeSecretResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

          * Generates a random password. We recommend that you specify the maximum length and include every character type * that the system you are generating a password for can support. *

          * * @param getRandomPasswordRequest * @return Result of the GetRandomPassword operation returned by the service. * @throws InvalidParameterException * The parameter name is invalid value. * @throws InvalidRequestException * A parameter value is not valid for the current state of the resource.

          *

          * Possible causes: *

          *
            *
          • *

            * The secret is scheduled for deletion. *

            *
          • *
          • *

            * You tried to enable rotation on a secret that doesn't already have a Lambda function ARN configured and * you didn't include such an ARN as a parameter in this call. *

            *
          • * @throws InternalServiceErrorException * An error occurred on the server side. * @sample AWSSecretsManager.GetRandomPassword * @see AWS API Documentation */ @Override public GetRandomPasswordResult getRandomPassword(GetRandomPasswordRequest request) { request = beforeClientExecution(request); return executeGetRandomPassword(request); } @SdkInternalApi final GetRandomPasswordResult executeGetRandomPassword(GetRandomPasswordRequest getRandomPasswordRequest) { ExecutionContext executionContext = createExecutionContext(getRandomPasswordRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetRandomPasswordRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getRandomPasswordRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Secrets Manager"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetRandomPassword"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetRandomPasswordResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

            * Retrieves the JSON text of the resource-based policy document attached to the secret. For more information about * permissions policies attached to a secret, see Permissions policies attached to a secret. *

            * * @param getResourcePolicyRequest * @return Result of the GetResourcePolicy operation returned by the service. * @throws ResourceNotFoundException * Secrets Manager can't find the resource that you asked for. * @throws InternalServiceErrorException * An error occurred on the server side. * @throws InvalidRequestException * A parameter value is not valid for the current state of the resource.

            *

            * Possible causes: *

            *
              *
            • *

              * The secret is scheduled for deletion. *

              *
            • *
            • *

              * You tried to enable rotation on a secret that doesn't already have a Lambda function ARN configured and * you didn't include such an ARN as a parameter in this call. *

              *
            • * @throws InvalidParameterException * The parameter name is invalid value. * @sample AWSSecretsManager.GetResourcePolicy * @see AWS API Documentation */ @Override public GetResourcePolicyResult getResourcePolicy(GetResourcePolicyRequest request) { request = beforeClientExecution(request); return executeGetResourcePolicy(request); } @SdkInternalApi final GetResourcePolicyResult executeGetResourcePolicy(GetResourcePolicyRequest getResourcePolicyRequest) { ExecutionContext executionContext = createExecutionContext(getResourcePolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetResourcePolicyRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getResourcePolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Secrets Manager"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetResourcePolicy"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetResourcePolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

              * Retrieves the contents of the encrypted fields SecretString or SecretBinary from the * specified version of a secret, whichever contains content. *

              *

              * For information about retrieving the secret value in the console, see Retrieve secrets. *

              *

              * To run this command, you must have secretsmanager:GetSecretValue permissions. If the secret is * encrypted using a customer-managed key instead of the Amazon Web Services managed key * aws/secretsmanager, then you also need kms:Decrypt permissions for that key. *

              * * @param getSecretValueRequest * @return Result of the GetSecretValue operation returned by the service. * @throws ResourceNotFoundException * Secrets Manager can't find the resource that you asked for. * @throws InvalidParameterException * The parameter name is invalid value. * @throws InvalidRequestException * A parameter value is not valid for the current state of the resource.

              *

              * Possible causes: *

              *
                *
              • *

                * The secret is scheduled for deletion. *

                *
              • *
              • *

                * You tried to enable rotation on a secret that doesn't already have a Lambda function ARN configured and * you didn't include such an ARN as a parameter in this call. *

                *
              • * @throws DecryptionFailureException * Secrets Manager can't decrypt the protected secret text using the provided KMS key. * @throws InternalServiceErrorException * An error occurred on the server side. * @sample AWSSecretsManager.GetSecretValue * @see AWS * API Documentation */ @Override public GetSecretValueResult getSecretValue(GetSecretValueRequest request) { request = beforeClientExecution(request); return executeGetSecretValue(request); } @SdkInternalApi final GetSecretValueResult executeGetSecretValue(GetSecretValueRequest getSecretValueRequest) { ExecutionContext executionContext = createExecutionContext(getSecretValueRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetSecretValueRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getSecretValueRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Secrets Manager"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetSecretValue"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetSecretValueResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                * Lists the versions for a secret. *

                *

                * To list the secrets in the account, use ListSecrets. *

                *

                * To get the secret value from SecretString or SecretBinary, call GetSecretValue. *

                *

                * Minimum permissions *

                *

                * To run this command, you must have secretsmanager:ListSecretVersionIds permissions. *

                * * @param listSecretVersionIdsRequest * @return Result of the ListSecretVersionIds operation returned by the service. * @throws InvalidNextTokenException * The NextToken value is invalid. * @throws ResourceNotFoundException * Secrets Manager can't find the resource that you asked for. * @throws InternalServiceErrorException * An error occurred on the server side. * @throws InvalidParameterException * The parameter name is invalid value. * @sample AWSSecretsManager.ListSecretVersionIds * @see AWS API Documentation */ @Override public ListSecretVersionIdsResult listSecretVersionIds(ListSecretVersionIdsRequest request) { request = beforeClientExecution(request); return executeListSecretVersionIds(request); } @SdkInternalApi final ListSecretVersionIdsResult executeListSecretVersionIds(ListSecretVersionIdsRequest listSecretVersionIdsRequest) { ExecutionContext executionContext = createExecutionContext(listSecretVersionIdsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListSecretVersionIdsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listSecretVersionIdsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Secrets Manager"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListSecretVersionIds"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListSecretVersionIdsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                * Lists the secrets that are stored by Secrets Manager in the Amazon Web Services account. *

                *

                * To list the versions of a secret, use ListSecretVersionIds. *

                *

                * To get the secret value from SecretString or SecretBinary, call GetSecretValue. *

                *

                * For information about finding secrets in the console, see Enhanced search * capabilities for secrets in Secrets Manager. *

                *

                * Minimum permissions *

                *

                * To run this command, you must have secretsmanager:ListSecrets permissions. *

                * * @param listSecretsRequest * @return Result of the ListSecrets operation returned by the service. * @throws InvalidParameterException * The parameter name is invalid value. * @throws InvalidNextTokenException * The NextToken value is invalid. * @throws InternalServiceErrorException * An error occurred on the server side. * @sample AWSSecretsManager.ListSecrets * @see AWS API * Documentation */ @Override public ListSecretsResult listSecrets(ListSecretsRequest request) { request = beforeClientExecution(request); return executeListSecrets(request); } @SdkInternalApi final ListSecretsResult executeListSecrets(ListSecretsRequest listSecretsRequest) { ExecutionContext executionContext = createExecutionContext(listSecretsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListSecretsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listSecretsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Secrets Manager"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListSecrets"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListSecretsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                * Attaches a resource-based permission policy to a secret. A resource-based policy is optional. For more * information, see Authentication and access * control for Secrets Manager *

                *

                * For information about attaching a policy in the console, see Attach a permissions policy to a secret. *

                * * @param putResourcePolicyRequest * @return Result of the PutResourcePolicy operation returned by the service. * @throws MalformedPolicyDocumentException * The resource policy has syntax errors. * @throws ResourceNotFoundException * Secrets Manager can't find the resource that you asked for. * @throws InvalidParameterException * The parameter name is invalid value. * @throws InternalServiceErrorException * An error occurred on the server side. * @throws InvalidRequestException * A parameter value is not valid for the current state of the resource.

                *

                * Possible causes: *

                *
                  *
                • *

                  * The secret is scheduled for deletion. *

                  *
                • *
                • *

                  * You tried to enable rotation on a secret that doesn't already have a Lambda function ARN configured and * you didn't include such an ARN as a parameter in this call. *

                  *
                • * @throws PublicPolicyException * The BlockPublicPolicy parameter is set to true, and the resource policy did not prevent * broad access to the secret. * @sample AWSSecretsManager.PutResourcePolicy * @see AWS API Documentation */ @Override public PutResourcePolicyResult putResourcePolicy(PutResourcePolicyRequest request) { request = beforeClientExecution(request); return executePutResourcePolicy(request); } @SdkInternalApi final PutResourcePolicyResult executePutResourcePolicy(PutResourcePolicyRequest putResourcePolicyRequest) { ExecutionContext executionContext = createExecutionContext(putResourcePolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutResourcePolicyRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putResourcePolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Secrets Manager"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutResourcePolicy"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutResourcePolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                  * Creates a new version with a new encrypted secret value and attaches it to the secret. The version can contain a * new SecretString value or a new SecretBinary value. *

                  *

                  * We recommend you avoid calling PutSecretValue at a sustained rate of more than once every 10 * minutes. When you update the secret value, Secrets Manager creates a new version of the secret. Secrets Manager * removes outdated versions when there are more than 100, but it does not remove versions created less than 24 * hours ago. If you call PutSecretValue more than once every 10 minutes, you create more versions than * Secrets Manager removes, and you will reach the quota for secret versions. *

                  *

                  * You can specify the staging labels to attach to the new version in VersionStages. If you don't * include VersionStages, then Secrets Manager automatically moves the staging label * AWSCURRENT to this version. If this operation creates the first version for the secret, then Secrets * Manager automatically attaches the staging label AWSCURRENT to it . *

                  *

                  * If this operation moves the staging label AWSCURRENT from another version to this version, then * Secrets Manager also automatically moves the staging label AWSPREVIOUS to the version that * AWSCURRENT was removed from. *

                  *

                  * This operation is idempotent. If a version with a VersionId with the same value as the * ClientRequestToken parameter already exists, and you specify the same secret data, the operation * succeeds but does nothing. However, if the secret data is different, then the operation fails because you can't * modify an existing version; you can only create new ones. *

                  * * @param putSecretValueRequest * @return Result of the PutSecretValue operation returned by the service. * @throws InvalidParameterException * The parameter name is invalid value. * @throws InvalidRequestException * A parameter value is not valid for the current state of the resource.

                  *

                  * Possible causes: *

                  *
                    *
                  • *

                    * The secret is scheduled for deletion. *

                    *
                  • *
                  • *

                    * You tried to enable rotation on a secret that doesn't already have a Lambda function ARN configured and * you didn't include such an ARN as a parameter in this call. *

                    *
                  • * @throws LimitExceededException * The request failed because it would exceed one of the Secrets Manager quotas. * @throws EncryptionFailureException * Secrets Manager can't encrypt the protected secret text using the provided KMS key. Check that the KMS * key is available, enabled, and not in an invalid state. For more information, see Key state: Effect on your KMS * key. * @throws ResourceExistsException * A resource with the ID you requested already exists. * @throws ResourceNotFoundException * Secrets Manager can't find the resource that you asked for. * @throws InternalServiceErrorException * An error occurred on the server side. * @sample AWSSecretsManager.PutSecretValue * @see AWS * API Documentation */ @Override public PutSecretValueResult putSecretValue(PutSecretValueRequest request) { request = beforeClientExecution(request); return executePutSecretValue(request); } @SdkInternalApi final PutSecretValueResult executePutSecretValue(PutSecretValueRequest putSecretValueRequest) { ExecutionContext executionContext = createExecutionContext(putSecretValueRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutSecretValueRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putSecretValueRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Secrets Manager"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutSecretValue"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutSecretValueResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                    * For a secret that is replicated to other Regions, deletes the secret replicas from the Regions you specify. *

                    * * @param removeRegionsFromReplicationRequest * @return Result of the RemoveRegionsFromReplication operation returned by the service. * @throws ResourceNotFoundException * Secrets Manager can't find the resource that you asked for. * @throws InvalidRequestException * A parameter value is not valid for the current state of the resource.

                    *

                    * Possible causes: *

                    *
                      *
                    • *

                      * The secret is scheduled for deletion. *

                      *
                    • *
                    • *

                      * You tried to enable rotation on a secret that doesn't already have a Lambda function ARN configured and * you didn't include such an ARN as a parameter in this call. *

                      *
                    • * @throws InvalidParameterException * The parameter name is invalid value. * @throws InternalServiceErrorException * An error occurred on the server side. * @sample AWSSecretsManager.RemoveRegionsFromReplication * @see AWS API Documentation */ @Override public RemoveRegionsFromReplicationResult removeRegionsFromReplication(RemoveRegionsFromReplicationRequest request) { request = beforeClientExecution(request); return executeRemoveRegionsFromReplication(request); } @SdkInternalApi final RemoveRegionsFromReplicationResult executeRemoveRegionsFromReplication(RemoveRegionsFromReplicationRequest removeRegionsFromReplicationRequest) { ExecutionContext executionContext = createExecutionContext(removeRegionsFromReplicationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RemoveRegionsFromReplicationRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(removeRegionsFromReplicationRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Secrets Manager"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "RemoveRegionsFromReplication"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new RemoveRegionsFromReplicationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                      * Replicates the secret to a new Regions. See Multi-Region secrets. *

                      * * @param replicateSecretToRegionsRequest * @return Result of the ReplicateSecretToRegions operation returned by the service. * @throws ResourceNotFoundException * Secrets Manager can't find the resource that you asked for. * @throws InvalidRequestException * A parameter value is not valid for the current state of the resource.

                      *

                      * Possible causes: *

                      *
                        *
                      • *

                        * The secret is scheduled for deletion. *

                        *
                      • *
                      • *

                        * You tried to enable rotation on a secret that doesn't already have a Lambda function ARN configured and * you didn't include such an ARN as a parameter in this call. *

                        *
                      • * @throws InvalidParameterException * The parameter name is invalid value. * @throws InternalServiceErrorException * An error occurred on the server side. * @sample AWSSecretsManager.ReplicateSecretToRegions * @see AWS API Documentation */ @Override public ReplicateSecretToRegionsResult replicateSecretToRegions(ReplicateSecretToRegionsRequest request) { request = beforeClientExecution(request); return executeReplicateSecretToRegions(request); } @SdkInternalApi final ReplicateSecretToRegionsResult executeReplicateSecretToRegions(ReplicateSecretToRegionsRequest replicateSecretToRegionsRequest) { ExecutionContext executionContext = createExecutionContext(replicateSecretToRegionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ReplicateSecretToRegionsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(replicateSecretToRegionsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Secrets Manager"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ReplicateSecretToRegions"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ReplicateSecretToRegionsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                        * Cancels the scheduled deletion of a secret by removing the DeletedDate time stamp. You can access a * secret again after it has been restored. *

                        * * @param restoreSecretRequest * @return Result of the RestoreSecret operation returned by the service. * @throws ResourceNotFoundException * Secrets Manager can't find the resource that you asked for. * @throws InvalidParameterException * The parameter name is invalid value. * @throws InvalidRequestException * A parameter value is not valid for the current state of the resource.

                        *

                        * Possible causes: *

                        *
                          *
                        • *

                          * The secret is scheduled for deletion. *

                          *
                        • *
                        • *

                          * You tried to enable rotation on a secret that doesn't already have a Lambda function ARN configured and * you didn't include such an ARN as a parameter in this call. *

                          *
                        • * @throws InternalServiceErrorException * An error occurred on the server side. * @sample AWSSecretsManager.RestoreSecret * @see AWS * API Documentation */ @Override public RestoreSecretResult restoreSecret(RestoreSecretRequest request) { request = beforeClientExecution(request); return executeRestoreSecret(request); } @SdkInternalApi final RestoreSecretResult executeRestoreSecret(RestoreSecretRequest restoreSecretRequest) { ExecutionContext executionContext = createExecutionContext(restoreSecretRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RestoreSecretRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(restoreSecretRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Secrets Manager"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "RestoreSecret"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new RestoreSecretResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                          * Configures and starts the asynchronous process of rotating the secret. *

                          *

                          * If you include the configuration parameters, the operation sets the values for the secret and then immediately * starts a rotation. If you don't include the configuration parameters, the operation starts a rotation with the * values already stored in the secret. For more information about rotation, see Rotate secrets. *

                          *

                          * To configure rotation, you include the ARN of an Amazon Web Services Lambda function and the schedule for the * rotation. The Lambda rotation function creates a new version of the secret and creates or updates the credentials * on the database or service to match. After testing the new credentials, the function marks the new secret version * with the staging label AWSCURRENT. Then anyone who retrieves the secret gets the new version. For * more information, see How rotation * works. *

                          *

                          * When rotation is successful, the AWSPENDING staging label might be attached to the same version as * the AWSCURRENT version, or it might not be attached to any version. *

                          *

                          * If the AWSPENDING staging label is present but not attached to the same version as * AWSCURRENT, then any later invocation of RotateSecret assumes that a previous rotation * request is still in progress and returns an error. *

                          *

                          * To run this command, you must have secretsmanager:RotateSecret permissions and * lambda:InvokeFunction permissions on the function specified in the secret's metadata. *

                          * * @param rotateSecretRequest * @return Result of the RotateSecret operation returned by the service. * @throws ResourceNotFoundException * Secrets Manager can't find the resource that you asked for. * @throws InvalidParameterException * The parameter name is invalid value. * @throws InternalServiceErrorException * An error occurred on the server side. * @throws InvalidRequestException * A parameter value is not valid for the current state of the resource.

                          *

                          * Possible causes: *

                          *
                            *
                          • *

                            * The secret is scheduled for deletion. *

                            *
                          • *
                          • *

                            * You tried to enable rotation on a secret that doesn't already have a Lambda function ARN configured and * you didn't include such an ARN as a parameter in this call. *

                            *
                          • * @sample AWSSecretsManager.RotateSecret * @see AWS * API Documentation */ @Override public RotateSecretResult rotateSecret(RotateSecretRequest request) { request = beforeClientExecution(request); return executeRotateSecret(request); } @SdkInternalApi final RotateSecretResult executeRotateSecret(RotateSecretRequest rotateSecretRequest) { ExecutionContext executionContext = createExecutionContext(rotateSecretRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new RotateSecretRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(rotateSecretRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Secrets Manager"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "RotateSecret"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new RotateSecretResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                            * Removes the link between the replica secret and the primary secret and promotes the replica to a primary secret * in the replica Region. *

                            *

                            * You must call this operation from the Region in which you want to promote the replica to a primary secret. *

                            * * @param stopReplicationToReplicaRequest * @return Result of the StopReplicationToReplica operation returned by the service. * @throws ResourceNotFoundException * Secrets Manager can't find the resource that you asked for. * @throws InvalidRequestException * A parameter value is not valid for the current state of the resource.

                            *

                            * Possible causes: *

                            *
                              *
                            • *

                              * The secret is scheduled for deletion. *

                              *
                            • *
                            • *

                              * You tried to enable rotation on a secret that doesn't already have a Lambda function ARN configured and * you didn't include such an ARN as a parameter in this call. *

                              *
                            • * @throws InvalidParameterException * The parameter name is invalid value. * @throws InternalServiceErrorException * An error occurred on the server side. * @sample AWSSecretsManager.StopReplicationToReplica * @see AWS API Documentation */ @Override public StopReplicationToReplicaResult stopReplicationToReplica(StopReplicationToReplicaRequest request) { request = beforeClientExecution(request); return executeStopReplicationToReplica(request); } @SdkInternalApi final StopReplicationToReplicaResult executeStopReplicationToReplica(StopReplicationToReplicaRequest stopReplicationToReplicaRequest) { ExecutionContext executionContext = createExecutionContext(stopReplicationToReplicaRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new StopReplicationToReplicaRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(stopReplicationToReplicaRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Secrets Manager"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "StopReplicationToReplica"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new StopReplicationToReplicaResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                              * Attaches tags to a secret. Tags consist of a key name and a value. Tags are part of the secret's metadata. They * are not associated with specific versions of the secret. This operation appends tags to the existing list of * tags. *

                              *

                              * The following restrictions apply to tags: *

                              *
                                *
                              • *

                                * Maximum number of tags per secret: 50 *

                                *
                              • *
                              • *

                                * Maximum key length: 127 Unicode characters in UTF-8 *

                                *
                              • *
                              • *

                                * Maximum value length: 255 Unicode characters in UTF-8 *

                                *
                              • *
                              • *

                                * Tag keys and values are case sensitive. *

                                *
                              • *
                              • *

                                * Do not use the aws: prefix in your tag names or values because Amazon Web Services reserves it for * Amazon Web Services use. You can't edit or delete tag names or values with this prefix. Tags with this prefix do * not count against your tags per secret limit. *

                                *
                              • *
                              • *

                                * If you use your tagging schema across multiple services and resources, other services might have restrictions on * allowed characters. Generally allowed characters: letters, spaces, and numbers representable in UTF-8, plus the * following special characters: + - = . _ : / @. *

                                *
                              • *
                              * *

                              * If you use tags as part of your security strategy, then adding or removing a tag can change permissions. If * successfully completing this operation would result in you losing your permissions for this secret, then the * operation is blocked and returns an Access Denied error. *

                              *
                              * * @param tagResourceRequest * @return Result of the TagResource operation returned by the service. * @throws ResourceNotFoundException * Secrets Manager can't find the resource that you asked for. * @throws InvalidRequestException * A parameter value is not valid for the current state of the resource.

                              *

                              * Possible causes: *

                              *
                                *
                              • *

                                * The secret is scheduled for deletion. *

                                *
                              • *
                              • *

                                * You tried to enable rotation on a secret that doesn't already have a Lambda function ARN configured and * you didn't include such an ARN as a parameter in this call. *

                                *
                              • * @throws InvalidParameterException * The parameter name is invalid value. * @throws InternalServiceErrorException * An error occurred on the server side. * @sample AWSSecretsManager.TagResource * @see AWS API * Documentation */ @Override public TagResourceResult tagResource(TagResourceRequest request) { request = beforeClientExecution(request); return executeTagResource(request); } @SdkInternalApi final TagResourceResult executeTagResource(TagResourceRequest tagResourceRequest) { ExecutionContext executionContext = createExecutionContext(tagResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new TagResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(tagResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Secrets Manager"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "TagResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new TagResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                                * Removes specific tags from a secret. *

                                *

                                * This operation is idempotent. If a requested tag is not attached to the secret, no error is returned and the * secret metadata is unchanged. *

                                * *

                                * If you use tags as part of your security strategy, then removing a tag can change permissions. If successfully * completing this operation would result in you losing your permissions for this secret, then the operation is * blocked and returns an Access Denied error. *

                                *
                                * * @param untagResourceRequest * @return Result of the UntagResource operation returned by the service. * @throws ResourceNotFoundException * Secrets Manager can't find the resource that you asked for. * @throws InvalidRequestException * A parameter value is not valid for the current state of the resource.

                                *

                                * Possible causes: *

                                *
                                  *
                                • *

                                  * The secret is scheduled for deletion. *

                                  *
                                • *
                                • *

                                  * You tried to enable rotation on a secret that doesn't already have a Lambda function ARN configured and * you didn't include such an ARN as a parameter in this call. *

                                  *
                                • * @throws InvalidParameterException * The parameter name is invalid value. * @throws InternalServiceErrorException * An error occurred on the server side. * @sample AWSSecretsManager.UntagResource * @see AWS * API Documentation */ @Override public UntagResourceResult untagResource(UntagResourceRequest request) { request = beforeClientExecution(request); return executeUntagResource(request); } @SdkInternalApi final UntagResourceResult executeUntagResource(UntagResourceRequest untagResourceRequest) { ExecutionContext executionContext = createExecutionContext(untagResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UntagResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(untagResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Secrets Manager"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UntagResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UntagResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                                  * Modifies the details of a secret, including metadata and the secret value. To change the secret value, you can * also use PutSecretValue. *

                                  *

                                  * To change the rotation configuration of a secret, use RotateSecret instead. *

                                  *

                                  * We recommend you avoid calling UpdateSecret at a sustained rate of more than once every 10 minutes. * When you call UpdateSecret to update the secret value, Secrets Manager creates a new version of the * secret. Secrets Manager removes outdated versions when there are more than 100, but it does not remove versions * created less than 24 hours ago. If you update the secret value more than once every 10 minutes, you create more * versions than Secrets Manager removes, and you will reach the quota for secret versions. *

                                  *

                                  * If you include SecretString or SecretBinary to create a new secret version, Secrets * Manager automatically attaches the staging label AWSCURRENT to the new version. *

                                  *

                                  * If you call this operation with a VersionId that matches an existing version's * ClientRequestToken, the operation results in an error. You can't modify an existing version, you can * only create a new version. To remove a version, remove all staging labels from it. See * UpdateSecretVersionStage. *

                                  *

                                  * If you don't specify an KMS encryption key, Secrets Manager uses the Amazon Web Services managed key * aws/secretsmanager. If this key doesn't already exist in your account, then Secrets Manager creates * it for you automatically. All users and roles in the Amazon Web Services account automatically have access to use * aws/secretsmanager. Creating aws/secretsmanager can result in a one-time significant * delay in returning the result. *

                                  *

                                  * If the secret is in a different Amazon Web Services account from the credentials calling the API, then you can't * use aws/secretsmanager to encrypt the secret, and you must create and use a customer managed key. *

                                  *

                                  * To run this command, you must have secretsmanager:UpdateSecret permissions. If you use a customer * managed key, you must also have kms:GenerateDataKey and kms:Decrypt permissions . *

                                  * * @param updateSecretRequest * @return Result of the UpdateSecret operation returned by the service. * @throws InvalidParameterException * The parameter name is invalid value. * @throws InvalidRequestException * A parameter value is not valid for the current state of the resource.

                                  *

                                  * Possible causes: *

                                  *
                                    *
                                  • *

                                    * The secret is scheduled for deletion. *

                                    *
                                  • *
                                  • *

                                    * You tried to enable rotation on a secret that doesn't already have a Lambda function ARN configured and * you didn't include such an ARN as a parameter in this call. *

                                    *
                                  • * @throws LimitExceededException * The request failed because it would exceed one of the Secrets Manager quotas. * @throws EncryptionFailureException * Secrets Manager can't encrypt the protected secret text using the provided KMS key. Check that the KMS * key is available, enabled, and not in an invalid state. For more information, see Key state: Effect on your KMS * key. * @throws ResourceExistsException * A resource with the ID you requested already exists. * @throws ResourceNotFoundException * Secrets Manager can't find the resource that you asked for. * @throws MalformedPolicyDocumentException * The resource policy has syntax errors. * @throws InternalServiceErrorException * An error occurred on the server side. * @throws PreconditionNotMetException * The request failed because you did not complete all the prerequisite steps. * @sample AWSSecretsManager.UpdateSecret * @see AWS * API Documentation */ @Override public UpdateSecretResult updateSecret(UpdateSecretRequest request) { request = beforeClientExecution(request); return executeUpdateSecret(request); } @SdkInternalApi final UpdateSecretResult executeUpdateSecret(UpdateSecretRequest updateSecretRequest) { ExecutionContext executionContext = createExecutionContext(updateSecretRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateSecretRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateSecretRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Secrets Manager"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateSecret"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateSecretResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                                    * Modifies the staging labels attached to a version of a secret. Secrets Manager uses staging labels to track a * version as it progresses through the secret rotation process. Each staging label can be attached to only one * version at a time. To add a staging label to a version when it is already attached to another version, Secrets * Manager first removes it from the other version first and then attaches it to this one. For more information * about versions and staging labels, see Concepts: * Version. *

                                    *

                                    * The staging labels that you specify in the VersionStage parameter are added to the existing list of * staging labels for the version. *

                                    *

                                    * You can move the AWSCURRENT staging label to this version by including it in this call. *

                                    * *

                                    * Whenever you move AWSCURRENT, Secrets Manager automatically moves the label AWSPREVIOUS * to the version that AWSCURRENT was removed from. *

                                    *
                                    *

                                    * If this action results in the last label being removed from a version, then the version is considered to be * 'deprecated' and can be deleted by Secrets Manager. *

                                    * * @param updateSecretVersionStageRequest * @return Result of the UpdateSecretVersionStage operation returned by the service. * @throws ResourceNotFoundException * Secrets Manager can't find the resource that you asked for. * @throws InvalidParameterException * The parameter name is invalid value. * @throws InvalidRequestException * A parameter value is not valid for the current state of the resource.

                                    *

                                    * Possible causes: *

                                    *
                                      *
                                    • *

                                      * The secret is scheduled for deletion. *

                                      *
                                    • *
                                    • *

                                      * You tried to enable rotation on a secret that doesn't already have a Lambda function ARN configured and * you didn't include such an ARN as a parameter in this call. *

                                      *
                                    • * @throws LimitExceededException * The request failed because it would exceed one of the Secrets Manager quotas. * @throws InternalServiceErrorException * An error occurred on the server side. * @sample AWSSecretsManager.UpdateSecretVersionStage * @see AWS API Documentation */ @Override public UpdateSecretVersionStageResult updateSecretVersionStage(UpdateSecretVersionStageRequest request) { request = beforeClientExecution(request); return executeUpdateSecretVersionStage(request); } @SdkInternalApi final UpdateSecretVersionStageResult executeUpdateSecretVersionStage(UpdateSecretVersionStageRequest updateSecretVersionStageRequest) { ExecutionContext executionContext = createExecutionContext(updateSecretVersionStageRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateSecretVersionStageRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(updateSecretVersionStageRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Secrets Manager"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateSecretVersionStage"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateSecretVersionStageResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

                                      * Validates that a resource policy does not grant a wide range of principals access to your secret. A * resource-based policy is optional for secrets. *

                                      *

                                      * The API performs three checks when validating the policy: *

                                      *
                                        *
                                      • *

                                        * Sends a call to Zelkova, an automated reasoning engine, to ensure your resource policy does not allow broad access to your * secret, for example policies that use a wildcard for the principal. *

                                        *
                                      • *
                                      • *

                                        * Checks for correct syntax in a policy. *

                                        *
                                      • *
                                      • *

                                        * Verifies the policy does not lock out a caller. *

                                        *
                                      • *
                                      * * @param validateResourcePolicyRequest * @return Result of the ValidateResourcePolicy operation returned by the service. * @throws MalformedPolicyDocumentException * The resource policy has syntax errors. * @throws ResourceNotFoundException * Secrets Manager can't find the resource that you asked for. * @throws InvalidParameterException * The parameter name is invalid value. * @throws InternalServiceErrorException * An error occurred on the server side. * @throws InvalidRequestException * A parameter value is not valid for the current state of the resource.

                                      *

                                      * Possible causes: *

                                      *
                                        *
                                      • *

                                        * The secret is scheduled for deletion. *

                                        *
                                      • *
                                      • *

                                        * You tried to enable rotation on a secret that doesn't already have a Lambda function ARN configured and * you didn't include such an ARN as a parameter in this call. *

                                        *
                                      • * @sample AWSSecretsManager.ValidateResourcePolicy * @see AWS API Documentation */ @Override public ValidateResourcePolicyResult validateResourcePolicy(ValidateResourcePolicyRequest request) { request = beforeClientExecution(request); return executeValidateResourcePolicy(request); } @SdkInternalApi final ValidateResourcePolicyResult executeValidateResourcePolicy(ValidateResourcePolicyRequest validateResourcePolicyRequest) { ExecutionContext executionContext = createExecutionContext(validateResourcePolicyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ValidateResourcePolicyRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(validateResourcePolicyRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "Secrets Manager"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ValidateResourcePolicy"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ValidateResourcePolicyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * Returns additional metadata for a previously executed successful, request, typically used for debugging issues * where a service isn't acting as expected. This data isn't considered part of the result data returned by an * operation, so it's available through this separate, diagnostic interface. *

                                        * Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic * information for an executed request, you should use this method to retrieve it as soon as possible after * executing the request. * * @param request * The originally executed request * * @return The response metadata for the specified request, or null if none is available. */ public ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request) { return client.getResponseMetadataForRequest(request); } /** * Normal invoke with authentication. Credentials are required and may be overriden at the request level. **/ private Response invoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { return invoke(request, responseHandler, executionContext, null, null); } /** * Normal invoke with authentication. Credentials are required and may be overriden at the request level. **/ private Response invoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext, URI cachedEndpoint, URI uriFromEndpointTrait) { executionContext.setCredentialsProvider(CredentialUtils.getCredentialsProvider(request.getOriginalRequest(), awsCredentialsProvider)); return doInvoke(request, responseHandler, executionContext, cachedEndpoint, uriFromEndpointTrait); } /** * Invoke with no authentication. Credentials are not required and any credentials set on the client or request will * be ignored for this operation. **/ private Response anonymousInvoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { return doInvoke(request, responseHandler, executionContext, null, null); } /** * Invoke the request using the http client. Assumes credentials (or lack thereof) have been configured in the * ExecutionContext beforehand. **/ private Response doInvoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext, URI discoveredEndpoint, URI uriFromEndpointTrait) { if (discoveredEndpoint != null) { request.setEndpoint(discoveredEndpoint); request.getOriginalRequest().getRequestClientOptions().appendUserAgent("endpoint-discovery"); } else if (uriFromEndpointTrait != null) { request.setEndpoint(uriFromEndpointTrait); } else { request.setEndpoint(endpoint); } request.setTimeOffset(timeOffset); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(new JsonErrorResponseMetadata()); return client.execute(request, responseHandler, errorResponseHandler, executionContext); } @com.amazonaws.annotation.SdkInternalApi static com.amazonaws.protocol.json.SdkJsonProtocolFactory getProtocolFactory() { return protocolFactory; } @Override public void shutdown() { super.shutdown(); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy