1// Code generated by smithy-go-codegen DO NOT EDIT. 2 3package appsync 4 5import ( 6 "context" 7 awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware" 8 "github.com/aws/aws-sdk-go-v2/aws/signer/v4" 9 "github.com/aws/aws-sdk-go-v2/service/appsync/types" 10 "github.com/aws/smithy-go/middleware" 11 smithyhttp "github.com/aws/smithy-go/transport/http" 12) 13 14// Creates a cache for the GraphQL API. 15func (c *Client) CreateApiCache(ctx context.Context, params *CreateApiCacheInput, optFns ...func(*Options)) (*CreateApiCacheOutput, error) { 16 if params == nil { 17 params = &CreateApiCacheInput{} 18 } 19 20 result, metadata, err := c.invokeOperation(ctx, "CreateApiCache", params, optFns, addOperationCreateApiCacheMiddlewares) 21 if err != nil { 22 return nil, err 23 } 24 25 out := result.(*CreateApiCacheOutput) 26 out.ResultMetadata = metadata 27 return out, nil 28} 29 30// Represents the input of a CreateApiCache operation. 31type CreateApiCacheInput struct { 32 33 // Caching behavior. 34 // 35 // * FULL_REQUEST_CACHING: All requests are fully cached. 36 // 37 // * 38 // PER_RESOLVER_CACHING: Individual resolvers that you specify are cached. 39 // 40 // This member is required. 41 ApiCachingBehavior types.ApiCachingBehavior 42 43 // The GraphQL API Id. 44 // 45 // This member is required. 46 ApiId *string 47 48 // TTL in seconds for cache entries. Valid values are between 1 and 3600 seconds. 49 // 50 // This member is required. 51 Ttl int64 52 53 // The cache instance type. Valid values are 54 // 55 // * SMALL 56 // 57 // * MEDIUM 58 // 59 // * LARGE 60 // 61 // * 62 // XLARGE 63 // 64 // * LARGE_2X 65 // 66 // * LARGE_4X 67 // 68 // * LARGE_8X (not available in all regions) 69 // 70 // * 71 // LARGE_12X 72 // 73 // Historically, instance types were identified by an EC2-style value. 74 // As of July 2020, this is deprecated, and the generic identifiers above should be 75 // used. The following legacy instance types are available, but their use is 76 // discouraged: 77 // 78 // * T2_SMALL: A t2.small instance type. 79 // 80 // * T2_MEDIUM: A t2.medium 81 // instance type. 82 // 83 // * R4_LARGE: A r4.large instance type. 84 // 85 // * R4_XLARGE: A r4.xlarge 86 // instance type. 87 // 88 // * R4_2XLARGE: A r4.2xlarge instance type. 89 // 90 // * R4_4XLARGE: A 91 // r4.4xlarge instance type. 92 // 93 // * R4_8XLARGE: A r4.8xlarge instance type. 94 // 95 // This member is required. 96 Type types.ApiCacheType 97 98 // At rest encryption flag for cache. This setting cannot be updated after 99 // creation. 100 AtRestEncryptionEnabled bool 101 102 // Transit encryption flag when connecting to cache. This setting cannot be updated 103 // after creation. 104 TransitEncryptionEnabled bool 105} 106 107// Represents the output of a CreateApiCache operation. 108type CreateApiCacheOutput struct { 109 110 // The ApiCache object. 111 ApiCache *types.ApiCache 112 113 // Metadata pertaining to the operation's result. 114 ResultMetadata middleware.Metadata 115} 116 117func addOperationCreateApiCacheMiddlewares(stack *middleware.Stack, options Options) (err error) { 118 err = stack.Serialize.Add(&awsRestjson1_serializeOpCreateApiCache{}, middleware.After) 119 if err != nil { 120 return err 121 } 122 err = stack.Deserialize.Add(&awsRestjson1_deserializeOpCreateApiCache{}, middleware.After) 123 if err != nil { 124 return err 125 } 126 if err = addSetLoggerMiddleware(stack, options); err != nil { 127 return err 128 } 129 if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil { 130 return err 131 } 132 if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil { 133 return err 134 } 135 if err = addResolveEndpointMiddleware(stack, options); err != nil { 136 return err 137 } 138 if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil { 139 return err 140 } 141 if err = addRetryMiddlewares(stack, options); err != nil { 142 return err 143 } 144 if err = addHTTPSignerV4Middleware(stack, options); err != nil { 145 return err 146 } 147 if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil { 148 return err 149 } 150 if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil { 151 return err 152 } 153 if err = addClientUserAgent(stack); err != nil { 154 return err 155 } 156 if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil { 157 return err 158 } 159 if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil { 160 return err 161 } 162 if err = addOpCreateApiCacheValidationMiddleware(stack); err != nil { 163 return err 164 } 165 if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateApiCache(options.Region), middleware.Before); err != nil { 166 return err 167 } 168 if err = addRequestIDRetrieverMiddleware(stack); err != nil { 169 return err 170 } 171 if err = addResponseErrorMiddleware(stack); err != nil { 172 return err 173 } 174 if err = addRequestResponseLogging(stack, options); err != nil { 175 return err 176 } 177 return nil 178} 179 180func newServiceMetadataMiddleware_opCreateApiCache(region string) *awsmiddleware.RegisterServiceMetadata { 181 return &awsmiddleware.RegisterServiceMetadata{ 182 Region: region, 183 ServiceID: ServiceID, 184 SigningName: "appsync", 185 OperationName: "CreateApiCache", 186 } 187} 188