/*
* 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 appsync-2017-07-25.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.AppSync.Model
{
///
/// Container for the parameters to the CreateApiCache operation.
/// Creates a cache for the GraphQL API.
///
public partial class CreateApiCacheRequest : AmazonAppSyncRequest
{
private ApiCachingBehavior _apiCachingBehavior;
private string _apiId;
private bool? _atRestEncryptionEnabled;
private bool? _transitEncryptionEnabled;
private long? _ttl;
private ApiCacheType _type;
///
/// Gets and sets the property ApiCachingBehavior.
///
/// Caching behavior.
///
/// -
///
/// FULL_REQUEST_CACHING: All requests are fully cached.
///
///
-
///
/// PER_RESOLVER_CACHING: Individual resolvers that you specify are cached.
///
///
///
[AWSProperty(Required=true)]
public ApiCachingBehavior ApiCachingBehavior
{
get { return this._apiCachingBehavior; }
set { this._apiCachingBehavior = value; }
}
// Check to see if ApiCachingBehavior property is set
internal bool IsSetApiCachingBehavior()
{
return this._apiCachingBehavior != null;
}
///
/// Gets and sets the property ApiId.
///
/// The GraphQL API ID.
///
///
[AWSProperty(Required=true)]
public string ApiId
{
get { return this._apiId; }
set { this._apiId = value; }
}
// Check to see if ApiId property is set
internal bool IsSetApiId()
{
return this._apiId != null;
}
///
/// Gets and sets the property AtRestEncryptionEnabled.
///
/// At-rest encryption flag for cache. You cannot update this setting after creation.
///
///
public bool AtRestEncryptionEnabled
{
get { return this._atRestEncryptionEnabled.GetValueOrDefault(); }
set { this._atRestEncryptionEnabled = value; }
}
// Check to see if AtRestEncryptionEnabled property is set
internal bool IsSetAtRestEncryptionEnabled()
{
return this._atRestEncryptionEnabled.HasValue;
}
///
/// Gets and sets the property TransitEncryptionEnabled.
///
/// Transit encryption flag when connecting to cache. You cannot update this setting after
/// creation.
///
///
public bool TransitEncryptionEnabled
{
get { return this._transitEncryptionEnabled.GetValueOrDefault(); }
set { this._transitEncryptionEnabled = value; }
}
// Check to see if TransitEncryptionEnabled property is set
internal bool IsSetTransitEncryptionEnabled()
{
return this._transitEncryptionEnabled.HasValue;
}
///
/// Gets and sets the property Ttl.
///
/// TTL in seconds for cache entries.
///
///
///
/// Valid values are 1–3,600 seconds.
///
///
[AWSProperty(Required=true)]
public long Ttl
{
get { return this._ttl.GetValueOrDefault(); }
set { this._ttl = value; }
}
// Check to see if Ttl property is set
internal bool IsSetTtl()
{
return this._ttl.HasValue;
}
///
/// Gets and sets the property Type.
///
/// The cache instance type. Valid values are
///
/// -
///
///
SMALL
///
/// -
///
///
MEDIUM
///
/// -
///
///
LARGE
///
/// -
///
///
XLARGE
///
/// -
///
///
LARGE_2X
///
/// -
///
///
LARGE_4X
///
/// -
///
///
LARGE_8X
(not available in all regions)
///
/// -
///
///
LARGE_12X
///
///
///
/// Historically, instance types were identified by an EC2-style value. As of July 2020,
/// this is deprecated, and the generic identifiers above should be used.
///
///
///
/// The following legacy instance types are available, but their use is discouraged:
///
/// -
///
/// T2_SMALL: A t2.small instance type.
///
///
-
///
/// T2_MEDIUM: A t2.medium instance type.
///
///
-
///
/// R4_LARGE: A r4.large instance type.
///
///
-
///
/// R4_XLARGE: A r4.xlarge instance type.
///
///
-
///
/// R4_2XLARGE: A r4.2xlarge instance type.
///
///
-
///
/// R4_4XLARGE: A r4.4xlarge instance type.
///
///
-
///
/// R4_8XLARGE: A r4.8xlarge instance type.
///
///
///
[AWSProperty(Required=true)]
public ApiCacheType Type
{
get { return this._type; }
set { this._type = value; }
}
// Check to see if Type property is set
internal bool IsSetType()
{
return this._type != null;
}
}
}