Container for the parameters to the ScheduleKeyDeletion operation. Schedules the deletion of a customer master key (CMK). You may provide a waiting period, specified in days, before deletion occurs. If you do not provide a waiting period, the default period of 30 days is used. When this operation is successful, the state of the CMK changes to PendingDeletion. Before the waiting period ends, you can use CancelKeyDeletion to cancel the deletion of the CMK. After the waiting period ends, AWS KMS deletes the CMK and all AWS KMS data associated with it, including all aliases that refer to it.

Deleting a CMK is a destructive and potentially dangerous operation. When a CMK is deleted, all data that was encrypted under the CMK is rendered unrecoverable. To restrict the use of a CMK without deleting it, use DisableKey.

For more information about scheduling a CMK for deletion, see Deleting Customer Master Keys in the AWS Key Management Service Developer Guide.

Inheritance: AmazonKeyManagementServiceRequest
        public object Execute(ExecutorContext context)
        {
            var cmdletContext = context as CmdletContext;
            // create request
            var request = new Amazon.KeyManagementService.Model.ScheduleKeyDeletionRequest();

            if (cmdletContext.KeyId != null)
            {
                request.KeyId = cmdletContext.KeyId;
            }
            if (cmdletContext.PendingWindowInDay != null)
            {
                request.PendingWindowInDays = cmdletContext.PendingWindowInDay.Value;
            }

            CmdletOutput output;

            // issue call
            var client = Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint);

            try
            {
                var    response       = CallAWSServiceOperation(client, request);
                object pipelineOutput = null;
                pipelineOutput = cmdletContext.Select(response, this);
                output         = new CmdletOutput
                {
                    PipelineOutput  = pipelineOutput,
                    ServiceResponse = response
                };
            }
            catch (Exception e)
            {
                output = new CmdletOutput {
                    ErrorResponse = e
                };
            }

            return(output);
        }
        /// <summary>
        /// Initiates the asynchronous execution of the ScheduleKeyDeletion operation.
        /// </summary>
        /// 
        /// <param name="request">Container for the necessary parameters to execute the ScheduleKeyDeletion operation.</param>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        public Task<ScheduleKeyDeletionResponse> ScheduleKeyDeletionAsync(ScheduleKeyDeletionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var marshaller = new ScheduleKeyDeletionRequestMarshaller();
            var unmarshaller = ScheduleKeyDeletionResponseUnmarshaller.Instance;

            return InvokeAsync<ScheduleKeyDeletionRequest,ScheduleKeyDeletionResponse>(request, marshaller, 
                unmarshaller, cancellationToken);
        }
 /// <summary>
 /// Schedules the deletion of a customer master key (CMK). You may provide a waiting period,
 /// specified in days, before deletion occurs. If you do not provide a waiting period,
 /// the default period of 30 days is used. When this operation is successful, the state
 /// of the CMK changes to <code>PendingDeletion</code>. Before the waiting period ends,
 /// you can use <a>CancelKeyDeletion</a> to cancel the deletion of the CMK. After the
 /// waiting period ends, AWS KMS deletes the CMK and all AWS KMS data associated with
 /// it, including all aliases that refer to it.
 /// 
 ///  <important> 
 /// <para>
 /// Deleting a CMK is a destructive and potentially dangerous operation. When a CMK is
 /// deleted, all data that was encrypted under the CMK is rendered unrecoverable. To restrict
 /// the use of a CMK without deleting it, use <a>DisableKey</a>.
 /// </para>
 ///  </important> 
 /// <para>
 /// For more information about scheduling a CMK for deletion, see <a href="http://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html">Deleting
 /// Customer Master Keys</a> in the <i>AWS Key Management Service Developer Guide</i>.
 /// </para>
 /// </summary>
 /// <param name="keyId">The unique identifier for the customer master key (CMK) to delete. To specify this value, use the unique key ID or the Amazon Resource Name (ARN) of the CMK. Examples: <ul> <li> Unique key ID: 1234abcd-12ab-34cd-56ef-1234567890ab </li> <li> Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab </li> </ul> To obtain the unique key ID and key ARN for a given CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.</param>
 /// <param name="pendingWindowInDays">The waiting period, specified in number of days. After the waiting period ends, AWS KMS deletes the customer master key (CMK). This value is optional. If you include a value, it must be between 7 and 30, inclusive. If you do not include a value, it defaults to 30.</param>
 /// <param name="cancellationToken">
 ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
 /// </param>
 /// 
 /// <returns>The response from the ScheduleKeyDeletion service method, as returned by KeyManagementService.</returns>
 /// <exception cref="Amazon.KeyManagementService.Model.DependencyTimeoutException">
 /// The system timed out while trying to fulfill the request. The request can be retried.
 /// </exception>
 /// <exception cref="Amazon.KeyManagementService.Model.InvalidArnException">
 /// The request was rejected because a specified ARN was not valid.
 /// </exception>
 /// <exception cref="Amazon.KeyManagementService.Model.KMSInternalException">
 /// The request was rejected because an internal exception occurred. The request can be
 /// retried.
 /// </exception>
 /// <exception cref="Amazon.KeyManagementService.Model.KMSInvalidStateException">
 /// The request was rejected because the state of the specified resource is not valid
 /// for this request.
 /// 
 ///  
 /// <para>
 /// For more information about how key state affects the use of a CMK, see <a href="http://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">How
 /// Key State Affects Use of a Customer Master Key</a> in the <i>AWS Key Management Service
 /// Developer Guide</i>.
 /// </para>
 /// </exception>
 /// <exception cref="Amazon.KeyManagementService.Model.NotFoundException">
 /// The request was rejected because the specified entity or resource could not be found.
 /// </exception>
 public Task<ScheduleKeyDeletionResponse> ScheduleKeyDeletionAsync(string keyId, int pendingWindowInDays, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
 {
     var request = new ScheduleKeyDeletionRequest();
     request.KeyId = keyId;
     request.PendingWindowInDays = pendingWindowInDays;
     return ScheduleKeyDeletionAsync(request, cancellationToken);
 }
        /// <summary>
        /// Schedules the deletion of a customer master key (CMK). You may provide a waiting period,
        /// specified in days, before deletion occurs. If you do not provide a waiting period,
        /// the default period of 30 days is used. When this operation is successful, the state
        /// of the CMK changes to <code>PendingDeletion</code>. Before the waiting period ends,
        /// you can use <a>CancelKeyDeletion</a> to cancel the deletion of the CMK. After the
        /// waiting period ends, AWS KMS deletes the CMK and all AWS KMS data associated with
        /// it, including all aliases that refer to it.
        /// 
        ///  <important> 
        /// <para>
        /// Deleting a CMK is a destructive and potentially dangerous operation. When a CMK is
        /// deleted, all data that was encrypted under the CMK is rendered unrecoverable. To restrict
        /// the use of a CMK without deleting it, use <a>DisableKey</a>.
        /// </para>
        ///  </important> 
        /// <para>
        /// For more information about scheduling a CMK for deletion, see <a href="http://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html">Deleting
        /// Customer Master Keys</a> in the <i>AWS Key Management Service Developer Guide</i>.
        /// </para>
        /// </summary>
        /// <param name="request">Container for the necessary parameters to execute the ScheduleKeyDeletion service method.</param>
        /// 
        /// <returns>The response from the ScheduleKeyDeletion service method, as returned by KeyManagementService.</returns>
        /// <exception cref="Amazon.KeyManagementService.Model.DependencyTimeoutException">
        /// The system timed out while trying to fulfill the request. The request can be retried.
        /// </exception>
        /// <exception cref="Amazon.KeyManagementService.Model.InvalidArnException">
        /// The request was rejected because a specified ARN was not valid.
        /// </exception>
        /// <exception cref="Amazon.KeyManagementService.Model.KMSInternalException">
        /// The request was rejected because an internal exception occurred. The request can be
        /// retried.
        /// </exception>
        /// <exception cref="Amazon.KeyManagementService.Model.KMSInvalidStateException">
        /// The request was rejected because the state of the specified resource is not valid
        /// for this request.
        /// 
        ///  
        /// <para>
        /// For more information about how key state affects the use of a CMK, see <a href="http://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">How
        /// Key State Affects Use of a Customer Master Key</a> in the <i>AWS Key Management Service
        /// Developer Guide</i>.
        /// </para>
        /// </exception>
        /// <exception cref="Amazon.KeyManagementService.Model.NotFoundException">
        /// The request was rejected because the specified entity or resource could not be found.
        /// </exception>
        public ScheduleKeyDeletionResponse ScheduleKeyDeletion(ScheduleKeyDeletionRequest request)
        {
            var marshaller = new ScheduleKeyDeletionRequestMarshaller();
            var unmarshaller = ScheduleKeyDeletionResponseUnmarshaller.Instance;

            return Invoke<ScheduleKeyDeletionRequest,ScheduleKeyDeletionResponse>(request, marshaller, unmarshaller);
        }
 /// <summary>
 /// Schedules the deletion of a customer master key (CMK). You may provide a waiting period,
 /// specified in days, before deletion occurs. If you do not provide a waiting period,
 /// the default period of 30 days is used. When this operation is successful, the state
 /// of the CMK changes to <code>PendingDeletion</code>. Before the waiting period ends,
 /// you can use <a>CancelKeyDeletion</a> to cancel the deletion of the CMK. After the
 /// waiting period ends, AWS KMS deletes the CMK and all AWS KMS data associated with
 /// it, including all aliases that refer to it.
 /// 
 ///  <important> 
 /// <para>
 /// Deleting a CMK is a destructive and potentially dangerous operation. When a CMK is
 /// deleted, all data that was encrypted under the CMK is rendered unrecoverable. To restrict
 /// the use of a CMK without deleting it, use <a>DisableKey</a>.
 /// </para>
 ///  </important> 
 /// <para>
 /// For more information about scheduling a CMK for deletion, see <a href="http://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html">Deleting
 /// Customer Master Keys</a> in the <i>AWS Key Management Service Developer Guide</i>.
 /// </para>
 /// </summary>
 /// <param name="keyId">The unique identifier for the customer master key (CMK) to delete. To specify this value, use the unique key ID or the Amazon Resource Name (ARN) of the CMK. Examples: <ul> <li> Unique key ID: 1234abcd-12ab-34cd-56ef-1234567890ab </li> <li> Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab </li> </ul> To obtain the unique key ID and key ARN for a given CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.</param>
 /// <param name="pendingWindowInDays">The waiting period, specified in number of days. After the waiting period ends, AWS KMS deletes the customer master key (CMK). This value is optional. If you include a value, it must be between 7 and 30, inclusive. If you do not include a value, it defaults to 30.</param>
 /// 
 /// <returns>The response from the ScheduleKeyDeletion service method, as returned by KeyManagementService.</returns>
 /// <exception cref="Amazon.KeyManagementService.Model.DependencyTimeoutException">
 /// The system timed out while trying to fulfill the request. The request can be retried.
 /// </exception>
 /// <exception cref="Amazon.KeyManagementService.Model.InvalidArnException">
 /// The request was rejected because a specified ARN was not valid.
 /// </exception>
 /// <exception cref="Amazon.KeyManagementService.Model.KMSInternalException">
 /// The request was rejected because an internal exception occurred. The request can be
 /// retried.
 /// </exception>
 /// <exception cref="Amazon.KeyManagementService.Model.KMSInvalidStateException">
 /// The request was rejected because the state of the specified resource is not valid
 /// for this request.
 /// 
 ///  
 /// <para>
 /// For more information about how key state affects the use of a CMK, see <a href="http://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">How
 /// Key State Affects Use of a Customer Master Key</a> in the <i>AWS Key Management Service
 /// Developer Guide</i>.
 /// </para>
 /// </exception>
 /// <exception cref="Amazon.KeyManagementService.Model.NotFoundException">
 /// The request was rejected because the specified entity or resource could not be found.
 /// </exception>
 public ScheduleKeyDeletionResponse ScheduleKeyDeletion(string keyId, int pendingWindowInDays)
 {
     var request = new ScheduleKeyDeletionRequest();
     request.KeyId = keyId;
     request.PendingWindowInDays = pendingWindowInDays;
     return ScheduleKeyDeletion(request);
 }
 /// <summary>
 /// Schedules the deletion of a customer master key (CMK). You may provide a waiting period,
 /// specified in days, before deletion occurs. If you do not provide a waiting period,
 /// the default period of 30 days is used. When this operation is successful, the state
 /// of the CMK changes to <code>PendingDeletion</code>. Before the waiting period ends,
 /// you can use <a>CancelKeyDeletion</a> to cancel the deletion of the CMK. After the
 /// waiting period ends, AWS KMS deletes the CMK and all AWS KMS data associated with
 /// it, including all aliases that refer to it.
 /// 
 ///  <important> 
 /// <para>
 /// Deleting a CMK is a destructive and potentially dangerous operation. When a CMK is
 /// deleted, all data that was encrypted under the CMK is rendered unrecoverable. To restrict
 /// the use of a CMK without deleting it, use <a>DisableKey</a>.
 /// </para>
 ///  </important> 
 /// <para>
 /// For more information about scheduling a CMK for deletion, see <a href="http://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html">Deleting
 /// Customer Master Keys</a> in the <i>AWS Key Management Service Developer Guide</i>.
 /// </para>
 /// </summary>
 /// <param name="keyId">The unique identifier for the customer master key (CMK) to delete. To specify this value, use the unique key ID or the Amazon Resource Name (ARN) of the CMK. Examples: <ul> <li> Unique key ID: 1234abcd-12ab-34cd-56ef-1234567890ab </li> <li> Key ARN: arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab </li> </ul> To obtain the unique key ID and key ARN for a given CMK, use <a>ListKeys</a> or <a>DescribeKey</a>.</param>
 /// 
 /// <returns>The response from the ScheduleKeyDeletion service method, as returned by KeyManagementService.</returns>
 /// <exception cref="Amazon.KeyManagementService.Model.DependencyTimeoutException">
 /// The system timed out while trying to fulfill the request. The request can be retried.
 /// </exception>
 /// <exception cref="Amazon.KeyManagementService.Model.InvalidArnException">
 /// The request was rejected because a specified ARN was not valid.
 /// </exception>
 /// <exception cref="Amazon.KeyManagementService.Model.KMSInternalException">
 /// The request was rejected because an internal exception occurred. The request can be
 /// retried.
 /// </exception>
 /// <exception cref="Amazon.KeyManagementService.Model.KMSInvalidStateException">
 /// The request was rejected because the state of the specified resource is not valid
 /// for this request.
 /// 
 ///  
 /// <para>
 /// For more information about how key state affects the use of a CMK, see <a href="http://docs.aws.amazon.com/kms/latest/developerguide/key-state.html">How
 /// Key State Affects Use of a Customer Master Key</a> in the <i>AWS Key Management Service
 /// Developer Guide</i>.
 /// </para>
 /// </exception>
 /// <exception cref="Amazon.KeyManagementService.Model.NotFoundException">
 /// The request was rejected because the specified entity or resource could not be found.
 /// </exception>
 public ScheduleKeyDeletionResponse ScheduleKeyDeletion(string keyId)
 {
     var request = new ScheduleKeyDeletionRequest();
     request.KeyId = keyId;
     return ScheduleKeyDeletion(request);
 }
 private Amazon.KeyManagementService.Model.ScheduleKeyDeletionResponse CallAWSServiceOperation(IAmazonKeyManagementService client, Amazon.KeyManagementService.Model.ScheduleKeyDeletionRequest request)
 {
     Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "AWS Key Management Service", "ScheduleKeyDeletion");
     try
     {
         #if DESKTOP
         return(client.ScheduleKeyDeletion(request));
         #elif CORECLR
         return(client.ScheduleKeyDeletionAsync(request).GetAwaiter().GetResult());
         #else
                 #error "Unknown build edition"
         #endif
     }
     catch (AmazonServiceException exc)
     {
         var webException = exc.InnerException as System.Net.WebException;
         if (webException != null)
         {
             throw new Exception(Utils.Common.FormatNameResolutionFailureMessage(client.Config, webException.Message), webException);
         }
         throw;
     }
 }
        /// <summary>
        /// Initiates the asynchronous execution of the ScheduleKeyDeletion operation.
        /// </summary>
        /// 
        /// <param name="request">Container for the necessary parameters to execute the ScheduleKeyDeletion operation on AmazonKeyManagementServiceClient.</param>
        /// <param name="callback">An AsyncCallback delegate that is invoked when the operation completes.</param>
        /// <param name="state">A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.</param>
        /// 
        /// <returns>An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndScheduleKeyDeletion
        ///         operation.</returns>
        public IAsyncResult BeginScheduleKeyDeletion(ScheduleKeyDeletionRequest request, AsyncCallback callback, object state)
        {
            var marshaller = new ScheduleKeyDeletionRequestMarshaller();
            var unmarshaller = ScheduleKeyDeletionResponseUnmarshaller.Instance;

            return BeginInvoke<ScheduleKeyDeletionRequest>(request, marshaller, unmarshaller,
                callback, state);
        }