/*
* 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 storagegateway-2013-06-30.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.StorageGateway.Model
{
///
/// Container for the parameters to the RefreshCache operation.
/// Refreshes the cached inventory of objects for the specified file share. This operation
/// finds objects in the Amazon S3 bucket that were added, removed, or replaced since
/// the gateway last listed the bucket's contents and cached the results. This operation
/// does not import files into the S3 File Gateway cache storage. It only updates the
/// cached inventory to reflect changes in the inventory of the objects in the S3 bucket.
/// This operation is only supported in the S3 File Gateway types.
///
///
///
/// You can subscribe to be notified through an Amazon CloudWatch event when your RefreshCache
/// operation completes. For more information, see Getting
/// notified about file operations in the Storage Gateway User Guide. This
/// operation is Only supported for S3 File Gateways.
///
///
///
/// When this API is called, it only initiates the refresh operation. When the API call
/// completes and returns a success code, it doesn't necessarily mean that the file refresh
/// has completed. You should use the refresh-complete notification to determine that
/// the operation has completed before you check for new files on the gateway file share.
/// You can subscribe to be notified through a CloudWatch event when your RefreshCache
/// operation completes.
///
///
///
/// Throttle limit: This API is asynchronous, so the gateway will accept no more than
/// two refreshes at any time. We recommend using the refresh-complete CloudWatch event
/// notification before issuing additional requests. For more information, see Getting
/// notified about file operations in the Storage Gateway User Guide.
///
/// -
///
/// Wait at least 60 seconds between consecutive RefreshCache API requests.
///
///
-
///
/// RefreshCache does not evict cache entries if invoked consecutively within 60 seconds
/// of a previous RefreshCache request.
///
///
-
///
/// If you invoke the RefreshCache API when two requests are already being processed,
/// any new request will cause an
InvalidGatewayRequestException
error because
/// too many requests were sent to the server.
///
///
///
/// The S3 bucket name does not need to be included when entering the list of folders
/// in the FolderList parameter.
///
///
///
/// For more information, see Getting
/// notified about file operations in the Storage Gateway User Guide.
///
///
public partial class RefreshCacheRequest : AmazonStorageGatewayRequest
{
private string _fileShareARN;
private List _folderList = new List();
private bool? _recursive;
///
/// Gets and sets the property FileShareARN.
///
/// The Amazon Resource Name (ARN) of the file share you want to refresh.
///
///
[AWSProperty(Required=true, Min=50, Max=500)]
public string FileShareARN
{
get { return this._fileShareARN; }
set { this._fileShareARN = value; }
}
// Check to see if FileShareARN property is set
internal bool IsSetFileShareARN()
{
return this._fileShareARN != null;
}
///
/// Gets and sets the property FolderList.
///
/// A comma-separated list of the paths of folders to refresh in the cache. The default
/// is ["/"
]. The default refreshes objects and folders at the root of the
/// Amazon S3 bucket. If Recursive
is set to true
, the entire
/// S3 bucket that the file share has access to is refreshed.
///
///
[AWSProperty(Min=1, Max=50)]
public List FolderList
{
get { return this._folderList; }
set { this._folderList = value; }
}
// Check to see if FolderList property is set
internal bool IsSetFolderList()
{
return this._folderList != null && this._folderList.Count > 0;
}
///
/// Gets and sets the property Recursive.
///
/// A value that specifies whether to recursively refresh folders in the cache. The refresh
/// includes folders that were in the cache the last time the gateway listed the folder's
/// contents. If this value set to true
, each folder that is listed in FolderList
/// is recursively updated. Otherwise, subfolders listed in FolderList
are
/// not refreshed. Only objects that are in folders listed directly under FolderList
/// are found and used for the update. The default is true
.
///
///
///
/// Valid Values: true
| false
///
///
public bool Recursive
{
get { return this._recursive.GetValueOrDefault(); }
set { this._recursive = value; }
}
// Check to see if Recursive property is set
internal bool IsSetRecursive()
{
return this._recursive.HasValue;
}
}
}