/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the rbin-2021-06-15.normal.json service model.
*/
using System;
using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;
using Amazon.Runtime;
using Amazon.RecycleBin.Model;
namespace Amazon.RecycleBin
{
///
/// Interface for accessing RecycleBin
///
/// This is the Recycle Bin API Reference. This documentation provides descriptions
/// and syntax for each of the actions and data types in Recycle Bin.
///
///
///
/// Recycle Bin is a resource recovery feature that enables you to restore accidentally
/// deleted snapshots and EBS-backed AMIs. When using Recycle Bin, if your resources are
/// deleted, they are retained in the Recycle Bin for a time period that you specify.
///
///
///
/// You can restore a resource from the Recycle Bin at any time before its retention period
/// expires. After you restore a resource from the Recycle Bin, the resource is removed
/// from the Recycle Bin, and you can then use it in the same way you use any other resource
/// of that type in your account. If the retention period expires and the resource is
/// not restored, the resource is permanently deleted from the Recycle Bin and is no longer
/// available for recovery. For more information about Recycle Bin, see
/// Recycle Bin in the Amazon Elastic Compute Cloud User Guide.
///
///
public partial interface IAmazonRecycleBin : IAmazonService, IDisposable
{
#if AWS_ASYNC_ENUMERABLES_API
///
/// Paginators for the service
///
IRecycleBinPaginatorFactory Paginators { get; }
#endif
#region CreateRule
///
/// Creates a Recycle Bin retention rule. For more information, see
/// Create Recycle Bin retention rules in the Amazon Elastic Compute Cloud User
/// Guide.
///
/// Container for the necessary parameters to execute the CreateRule service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the CreateRule service method, as returned by RecycleBin.
///
/// The service could not respond to the request due to an internal problem.
///
///
/// The request would cause a service quota for the number of tags per resource to be
/// exceeded.
///
///
/// One or more of the parameters in the request is not valid.
///
/// REST API Reference for CreateRule Operation
Task CreateRuleAsync(CreateRuleRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
#endregion
#region DeleteRule
///
/// Deletes a Recycle Bin retention rule. For more information, see
/// Delete Recycle Bin retention rules in the Amazon Elastic Compute Cloud User
/// Guide.
///
/// Container for the necessary parameters to execute the DeleteRule service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the DeleteRule service method, as returned by RecycleBin.
///
/// The specified retention rule lock request can't be completed.
///
///
/// The service could not respond to the request due to an internal problem.
///
///
/// The specified resource was not found.
///
///
/// One or more of the parameters in the request is not valid.
///
/// REST API Reference for DeleteRule Operation
Task DeleteRuleAsync(DeleteRuleRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
#endregion
#region GetRule
///
/// Gets information about a Recycle Bin retention rule.
///
/// Container for the necessary parameters to execute the GetRule service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the GetRule service method, as returned by RecycleBin.
///
/// The service could not respond to the request due to an internal problem.
///
///
/// The specified resource was not found.
///
///
/// One or more of the parameters in the request is not valid.
///
/// REST API Reference for GetRule Operation
Task GetRuleAsync(GetRuleRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
#endregion
#region ListRules
///
/// Lists the Recycle Bin retention rules in the Region.
///
/// Container for the necessary parameters to execute the ListRules service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the ListRules service method, as returned by RecycleBin.
///
/// The service could not respond to the request due to an internal problem.
///
///
/// One or more of the parameters in the request is not valid.
///
/// REST API Reference for ListRules Operation
Task ListRulesAsync(ListRulesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
#endregion
#region ListTagsForResource
///
/// Lists the tags assigned to a retention rule.
///
/// Container for the necessary parameters to execute the ListTagsForResource service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the ListTagsForResource service method, as returned by RecycleBin.
///
/// The service could not respond to the request due to an internal problem.
///
///
/// The specified resource was not found.
///
///
/// One or more of the parameters in the request is not valid.
///
/// REST API Reference for ListTagsForResource Operation
Task ListTagsForResourceAsync(ListTagsForResourceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
#endregion
#region LockRule
///
/// Locks a retention rule. A locked retention rule can't be modified or deleted.
///
/// Container for the necessary parameters to execute the LockRule service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the LockRule service method, as returned by RecycleBin.
///
/// The specified retention rule lock request can't be completed.
///
///
/// The service could not respond to the request due to an internal problem.
///
///
/// The specified resource was not found.
///
///
/// One or more of the parameters in the request is not valid.
///
/// REST API Reference for LockRule Operation
Task LockRuleAsync(LockRuleRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
#endregion
#region TagResource
///
/// Assigns tags to the specified retention rule.
///
/// Container for the necessary parameters to execute the TagResource service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the TagResource service method, as returned by RecycleBin.
///
/// The service could not respond to the request due to an internal problem.
///
///
/// The specified resource was not found.
///
///
/// The request would cause a service quota for the number of tags per resource to be
/// exceeded.
///
///
/// One or more of the parameters in the request is not valid.
///
/// REST API Reference for TagResource Operation
Task TagResourceAsync(TagResourceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
#endregion
#region UnlockRule
///
/// Unlocks a retention rule. After a retention rule is unlocked, it can be modified or
/// deleted only after the unlock delay period expires.
///
/// Container for the necessary parameters to execute the UnlockRule service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the UnlockRule service method, as returned by RecycleBin.
///
/// The specified retention rule lock request can't be completed.
///
///
/// The service could not respond to the request due to an internal problem.
///
///
/// The specified resource was not found.
///
///
/// One or more of the parameters in the request is not valid.
///
/// REST API Reference for UnlockRule Operation
Task UnlockRuleAsync(UnlockRuleRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
#endregion
#region UntagResource
///
/// Unassigns a tag from a retention rule.
///
/// Container for the necessary parameters to execute the UntagResource service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the UntagResource service method, as returned by RecycleBin.
///
/// The service could not respond to the request due to an internal problem.
///
///
/// The specified resource was not found.
///
///
/// One or more of the parameters in the request is not valid.
///
/// REST API Reference for UntagResource Operation
Task UntagResourceAsync(UntagResourceRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
#endregion
#region UpdateRule
///
/// Updates an existing Recycle Bin retention rule. You can update a retention rule's
/// description, resource tags, and retention period at any time after creation. You can't
/// update a retention rule's resource type after creation. For more information, see
///
/// Update Recycle Bin retention rules in the Amazon Elastic Compute Cloud User
/// Guide.
///
/// Container for the necessary parameters to execute the UpdateRule service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the UpdateRule service method, as returned by RecycleBin.
///
/// The specified retention rule lock request can't be completed.
///
///
/// The service could not respond to the request due to an internal problem.
///
///
/// The specified resource was not found.
///
///
/// One or more of the parameters in the request is not valid.
///
/// REST API Reference for UpdateRule Operation
Task UpdateRuleAsync(UpdateRuleRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken));
#endregion
}
}