createApiCache method

Future<CreateApiCacheResponse> createApiCache({
  1. required ApiCachingBehavior apiCachingBehavior,
  2. required String apiId,
  3. required int ttl,
  4. required ApiCacheType type,
  5. bool? atRestEncryptionEnabled,
  6. bool? transitEncryptionEnabled,
})

Creates a cache for the GraphQL API.

May throw BadRequestException. May throw ConcurrentModificationException. May throw NotFoundException. May throw UnauthorizedException. May throw InternalFailureException.

Parameter apiCachingBehavior : Caching behavior.

  • FULL_REQUEST_CACHING: All requests are fully cached.
  • PER_RESOLVER_CACHING: Individual resolvers that you specify are cached.

Parameter apiId : The GraphQL API Id.

Parameter ttl : TTL in seconds for cache entries.

Valid values are between 1 and 3600 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
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.

Parameter atRestEncryptionEnabled : At rest encryption flag for cache. This setting cannot be updated after creation.

Parameter transitEncryptionEnabled : Transit encryption flag when connecting to cache. This setting cannot be updated after creation.

Implementation

Future<CreateApiCacheResponse> createApiCache({
  required ApiCachingBehavior apiCachingBehavior,
  required String apiId,
  required int ttl,
  required ApiCacheType type,
  bool? atRestEncryptionEnabled,
  bool? transitEncryptionEnabled,
}) async {
  ArgumentError.checkNotNull(apiCachingBehavior, 'apiCachingBehavior');
  ArgumentError.checkNotNull(apiId, 'apiId');
  ArgumentError.checkNotNull(ttl, 'ttl');
  ArgumentError.checkNotNull(type, 'type');
  final $payload = <String, dynamic>{
    'apiCachingBehavior': apiCachingBehavior.toValue(),
    'ttl': ttl,
    'type': type.toValue(),
    if (atRestEncryptionEnabled != null)
      'atRestEncryptionEnabled': atRestEncryptionEnabled,
    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);
}