createApiCache method
Creates a cache for the GraphQL API.
May throw BadRequestException.
May throw ConcurrentModificationException.
May throw InternalFailureException.
May throw NotFoundException.
May throw UnauthorizedException.
Parameter apiCachingBehavior :
Caching behavior.
- FULL_REQUEST_CACHING: All requests from the same user are cached. Individual resolvers are automatically cached. All API calls will try to return responses from the cache.
- PER_RESOLVER_CACHING: Individual resolvers that you specify are cached.
- OPERATION_LEVEL_CACHING: Full requests are cached together and returned without executing resolvers.
Parameter apiId :
The GraphQL API ID.
Parameter ttl :
TTL in seconds for cache entries.
Valid values are 1–3,600 seconds.
Parameter 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
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.
Parameter atRestEncryptionEnabled :
At-rest encryption flag for cache. You cannot update this setting after
creation.
Parameter healthMetricsConfig :
Controls how cache health metrics will be emitted to CloudWatch. Cache
health metrics include:
- NetworkBandwidthOutAllowanceExceeded: The network packets dropped because the throughput exceeded the aggregated bandwidth limit. This is useful for diagnosing bottlenecks in a cache configuration.
- EngineCPUUtilization: The CPU utilization (percentage) allocated to the Redis process. This is useful for diagnosing bottlenecks in a cache configuration.
ENABLED or DISABLED.
Parameter transitEncryptionEnabled :
Transit encryption flag when connecting to cache. You cannot update this
setting after creation.
Implementation
Future<CreateApiCacheResponse> createApiCache({
required ApiCachingBehavior apiCachingBehavior,
required String apiId,
required int ttl,
required ApiCacheType type,
bool? atRestEncryptionEnabled,
CacheHealthMetricsConfig? healthMetricsConfig,
bool? transitEncryptionEnabled,
}) async {
final $payload = <String, dynamic>{
'apiCachingBehavior': apiCachingBehavior.value,
'ttl': ttl,
'type': type.value,
if (atRestEncryptionEnabled != null)
'atRestEncryptionEnabled': atRestEncryptionEnabled,
if (healthMetricsConfig != null)
'healthMetricsConfig': healthMetricsConfig.value,
if (transitEncryptionEnabled != null)
'transitEncryptionEnabled': transitEncryptionEnabled,
};
final response = await _protocol.send(
payload: $payload,
method: 'POST',
requestUri: '/v1/apis/${Uri.encodeComponent(apiId)}/ApiCaches',
exceptionFnMap: _exceptionFns,
);
return CreateApiCacheResponse.fromJson(response);
}