Documentation ¶
Overview ¶
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
The CDK Construct Library for AWS::AppSync
Index ¶
- func AppsyncFunction_IsConstruct(x interface{}) *bool
- func AppsyncFunction_IsOwnedResource(construct constructs.IConstruct) *bool
- func AppsyncFunction_IsResource(construct constructs.IConstruct) *bool
- func BackedDataSource_IsConstruct(x interface{}) *bool
- func BaseDataSource_IsConstruct(x interface{}) *bool
- func DynamoDbDataSource_IsConstruct(x interface{}) *bool
- func ElasticsearchDataSource_IsConstruct(x interface{}) *bool
- func GraphqlApiBase_IsConstruct(x interface{}) *bool
- func GraphqlApiBase_IsOwnedResource(construct constructs.IConstruct) *bool
- func GraphqlApiBase_IsResource(construct constructs.IConstruct) *bool
- func GraphqlApi_IsConstruct(x interface{}) *bool
- func GraphqlApi_IsOwnedResource(construct constructs.IConstruct) *bool
- func GraphqlApi_IsResource(construct constructs.IConstruct) *bool
- func HttpDataSource_IsConstruct(x interface{}) *bool
- func LambdaDataSource_IsConstruct(x interface{}) *bool
- func NewAppsyncFunction_Override(a AppsyncFunction, scope constructs.Construct, id *string, ...)
- func NewAssign_Override(a Assign, attr *string, arg *string)
- func NewAttributeValuesStep_Override(a AttributeValuesStep, attr *string, container *string, assignments *[]Assign)
- func NewAttributeValues_Override(a AttributeValues, container *string, assignments *[]Assign)
- func NewBackedDataSource_Override(b BackedDataSource, scope constructs.Construct, id *string, ...)
- func NewBaseDataSource_Override(b BaseDataSource, scope constructs.Construct, id *string, ...)
- func NewDynamoDbDataSource_Override(d DynamoDbDataSource, scope constructs.Construct, id *string, ...)
- func NewElasticsearchDataSource_Override(e ElasticsearchDataSource, scope constructs.Construct, id *string, ...)deprecated
- func NewEnumType_Override(e EnumType, name *string, options *EnumTypeOptions)
- func NewField_Override(f Field, options *FieldOptions)
- func NewGraphqlApiBase_Override(g GraphqlApiBase, scope constructs.Construct, id *string, ...)
- func NewGraphqlApi_Override(g GraphqlApi, scope constructs.Construct, id *string, props *GraphqlApiProps)
- func NewGraphqlType_Override(g GraphqlType, type_ Type, options *GraphqlTypeOptions)
- func NewHttpDataSource_Override(h HttpDataSource, scope constructs.Construct, id *string, ...)
- func NewInputType_Override(i InputType, name *string, props *IntermediateTypeOptions)
- func NewInterfaceType_Override(i InterfaceType, name *string, props *IntermediateTypeOptions)
- func NewLambdaDataSource_Override(l LambdaDataSource, scope constructs.Construct, id *string, ...)
- func NewMappingTemplate_Override(m MappingTemplate)
- func NewNoneDataSource_Override(n NoneDataSource, scope constructs.Construct, id *string, ...)
- func NewObjectType_Override(o ObjectType, name *string, props *ObjectTypeOptions)
- func NewOpenSearchDataSource_Override(o OpenSearchDataSource, scope constructs.Construct, id *string, ...)
- func NewPartitionKeyStep_Override(p PartitionKeyStep, key *string)
- func NewPartitionKey_Override(p PartitionKey, pkey Assign)
- func NewPrimaryKey_Override(p PrimaryKey, pkey Assign, skey Assign)
- func NewRdsDataSource_Override(r RdsDataSource, scope constructs.Construct, id *string, ...)
- func NewResolvableField_Override(r ResolvableField, options *ResolvableFieldOptions)
- func NewResolver_Override(r Resolver, scope constructs.Construct, id *string, props *ResolverProps)
- func NewSchema_Override(s Schema, options *SchemaOptions)
- func NewSortKeyStep_Override(s SortKeyStep, pkey Assign, skey *string)
- func NewUnionType_Override(u UnionType, name *string, options *UnionTypeOptions)
- func NewValues_Override(v Values)
- func NoneDataSource_IsConstruct(x interface{}) *bool
- func OpenSearchDataSource_IsConstruct(x interface{}) *bool
- func RdsDataSource_IsConstruct(x interface{}) *bool
- func Resolver_IsConstruct(x interface{}) *bool
- type AddFieldOptions
- type ApiKeyConfig
- type AppsyncFunction
- type AppsyncFunctionAttributes
- type AppsyncFunctionProps
- type Assign
- type AttributeValues
- type AttributeValuesStep
- type AuthorizationConfig
- type AuthorizationMode
- type AuthorizationType
- type AwsIamConfig
- type BackedDataSource
- type BackedDataSourceProps
- type BaseAppsyncFunctionProps
- type BaseDataSource
- type BaseDataSourceProps
- type BaseResolverProps
- type BaseTypeOptions
- type CachingConfig
- type DataSourceOptions
- type Directive
- type DomainOptions
- type DynamoDbDataSource
- type DynamoDbDataSourceProps
- type ElasticsearchDataSourcedeprecated
- type ElasticsearchDataSourcePropsdeprecated
- type EnumType
- type EnumTypeOptions
- type ExtendedDataSourceProps
- type ExtendedResolverProps
- type Field
- type FieldLogLevel
- type FieldOptions
- type GraphqlApi
- type GraphqlApiAttributes
- type GraphqlApiBase
- type GraphqlApiProps
- type GraphqlType
- func Field_AwsDate(options *BaseTypeOptions) GraphqlType
- func Field_AwsDateTime(options *BaseTypeOptions) GraphqlType
- func Field_AwsEmail(options *BaseTypeOptions) GraphqlType
- func Field_AwsIpAddress(options *BaseTypeOptions) GraphqlType
- func Field_AwsJson(options *BaseTypeOptions) GraphqlType
- func Field_AwsPhone(options *BaseTypeOptions) GraphqlType
- func Field_AwsTime(options *BaseTypeOptions) GraphqlType
- func Field_AwsTimestamp(options *BaseTypeOptions) GraphqlType
- func Field_AwsUrl(options *BaseTypeOptions) GraphqlType
- func Field_Boolean(options *BaseTypeOptions) GraphqlType
- func Field_Float(options *BaseTypeOptions) GraphqlType
- func Field_Id(options *BaseTypeOptions) GraphqlType
- func Field_Int(options *BaseTypeOptions) GraphqlType
- func Field_Intermediate(options *GraphqlTypeOptions) GraphqlType
- func Field_String(options *BaseTypeOptions) GraphqlType
- func GraphqlType_AwsDate(options *BaseTypeOptions) GraphqlType
- func GraphqlType_AwsDateTime(options *BaseTypeOptions) GraphqlType
- func GraphqlType_AwsEmail(options *BaseTypeOptions) GraphqlType
- func GraphqlType_AwsIpAddress(options *BaseTypeOptions) GraphqlType
- func GraphqlType_AwsJson(options *BaseTypeOptions) GraphqlType
- func GraphqlType_AwsPhone(options *BaseTypeOptions) GraphqlType
- func GraphqlType_AwsTime(options *BaseTypeOptions) GraphqlType
- func GraphqlType_AwsTimestamp(options *BaseTypeOptions) GraphqlType
- func GraphqlType_AwsUrl(options *BaseTypeOptions) GraphqlType
- func GraphqlType_Boolean(options *BaseTypeOptions) GraphqlType
- func GraphqlType_Float(options *BaseTypeOptions) GraphqlType
- func GraphqlType_Id(options *BaseTypeOptions) GraphqlType
- func GraphqlType_Int(options *BaseTypeOptions) GraphqlType
- func GraphqlType_Intermediate(options *GraphqlTypeOptions) GraphqlType
- func GraphqlType_String(options *BaseTypeOptions) GraphqlType
- func NewGraphqlType(type_ Type, options *GraphqlTypeOptions) GraphqlType
- func ResolvableField_AwsDate(options *BaseTypeOptions) GraphqlType
- func ResolvableField_AwsDateTime(options *BaseTypeOptions) GraphqlType
- func ResolvableField_AwsEmail(options *BaseTypeOptions) GraphqlType
- func ResolvableField_AwsIpAddress(options *BaseTypeOptions) GraphqlType
- func ResolvableField_AwsJson(options *BaseTypeOptions) GraphqlType
- func ResolvableField_AwsPhone(options *BaseTypeOptions) GraphqlType
- func ResolvableField_AwsTime(options *BaseTypeOptions) GraphqlType
- func ResolvableField_AwsTimestamp(options *BaseTypeOptions) GraphqlType
- func ResolvableField_AwsUrl(options *BaseTypeOptions) GraphqlType
- func ResolvableField_Boolean(options *BaseTypeOptions) GraphqlType
- func ResolvableField_Float(options *BaseTypeOptions) GraphqlType
- func ResolvableField_Id(options *BaseTypeOptions) GraphqlType
- func ResolvableField_Int(options *BaseTypeOptions) GraphqlType
- func ResolvableField_Intermediate(options *GraphqlTypeOptions) GraphqlType
- func ResolvableField_String(options *BaseTypeOptions) GraphqlType
- type GraphqlTypeOptions
- type HttpDataSource
- type HttpDataSourceOptions
- type HttpDataSourceProps
- type IAppsyncFunction
- type IField
- type IGraphqlApi
- type IIntermediateType
- type IamResource
- type InputType
- type InterfaceType
- type IntermediateTypeOptions
- type KeyCondition
- func KeyCondition_BeginsWith(keyName *string, arg *string) KeyCondition
- func KeyCondition_Between(keyName *string, arg1 *string, arg2 *string) KeyCondition
- func KeyCondition_Eq(keyName *string, arg *string) KeyCondition
- func KeyCondition_Ge(keyName *string, arg *string) KeyCondition
- func KeyCondition_Gt(keyName *string, arg *string) KeyCondition
- func KeyCondition_Le(keyName *string, arg *string) KeyCondition
- func KeyCondition_Lt(keyName *string, arg *string) KeyCondition
- type LambdaAuthorizerConfig
- type LambdaDataSource
- type LambdaDataSourceProps
- type LogConfig
- type MappingTemplate
- func MappingTemplate_DynamoDbDeleteItem(keyName *string, idArg *string) MappingTemplate
- func MappingTemplate_DynamoDbGetItem(keyName *string, idArg *string, consistentRead *bool) MappingTemplate
- func MappingTemplate_DynamoDbPutItem(key PrimaryKey, values AttributeValues) MappingTemplate
- func MappingTemplate_DynamoDbQuery(cond KeyCondition, indexName *string, consistentRead *bool) MappingTemplate
- func MappingTemplate_DynamoDbResultItem() MappingTemplate
- func MappingTemplate_DynamoDbResultList() MappingTemplate
- func MappingTemplate_DynamoDbScanTable(consistentRead *bool) MappingTemplate
- func MappingTemplate_FromFile(fileName *string) MappingTemplate
- func MappingTemplate_FromString(template *string) MappingTemplate
- func MappingTemplate_LambdaRequest(payload *string, operation *string) MappingTemplate
- func MappingTemplate_LambdaResult() MappingTemplate
- type NoneDataSource
- type NoneDataSourceProps
- type ObjectType
- type ObjectTypeOptions
- type OpenIdConnectConfig
- type OpenSearchDataSource
- type OpenSearchDataSourceProps
- type PartitionKey
- type PartitionKeyStep
- type PrimaryKey
- type RdsDataSource
- type RdsDataSourceProps
- type ResolvableField
- type ResolvableFieldOptions
- type Resolver
- type ResolverProps
- type Schema
- type SchemaOptions
- type SortKeyStep
- type Type
- type UnionType
- type UnionTypeOptions
- type UserPoolConfig
- type UserPoolDefaultAction
- type Values
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AppsyncFunction_IsConstruct ¶
func AppsyncFunction_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.
func AppsyncFunction_IsOwnedResource ¶
func AppsyncFunction_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise. Experimental.
func AppsyncFunction_IsResource ¶
func AppsyncFunction_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource. Experimental.
func BackedDataSource_IsConstruct ¶
func BackedDataSource_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.
func BaseDataSource_IsConstruct ¶
func BaseDataSource_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.
func DynamoDbDataSource_IsConstruct ¶
func DynamoDbDataSource_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.
func ElasticsearchDataSource_IsConstruct ¶
func ElasticsearchDataSource_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: - use `OpenSearchDataSource`.
func GraphqlApiBase_IsConstruct ¶
func GraphqlApiBase_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.
func GraphqlApiBase_IsOwnedResource ¶
func GraphqlApiBase_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise. Experimental.
func GraphqlApiBase_IsResource ¶
func GraphqlApiBase_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource. Experimental.
func GraphqlApi_IsConstruct ¶
func GraphqlApi_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.
func GraphqlApi_IsOwnedResource ¶
func GraphqlApi_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise. Experimental.
func GraphqlApi_IsResource ¶
func GraphqlApi_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource. Experimental.
func HttpDataSource_IsConstruct ¶
func HttpDataSource_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.
func LambdaDataSource_IsConstruct ¶
func LambdaDataSource_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.
func NewAppsyncFunction_Override ¶
func NewAppsyncFunction_Override(a AppsyncFunction, scope constructs.Construct, id *string, props *AppsyncFunctionProps)
Experimental.
func NewAssign_Override ¶
Experimental.
func NewAttributeValuesStep_Override ¶
func NewAttributeValuesStep_Override(a AttributeValuesStep, attr *string, container *string, assignments *[]Assign)
Experimental.
func NewAttributeValues_Override ¶
func NewAttributeValues_Override(a AttributeValues, container *string, assignments *[]Assign)
Experimental.
func NewBackedDataSource_Override ¶
func NewBackedDataSource_Override(b BackedDataSource, scope constructs.Construct, id *string, props *BackedDataSourceProps, extended *ExtendedDataSourceProps)
Experimental.
func NewBaseDataSource_Override ¶
func NewBaseDataSource_Override(b BaseDataSource, scope constructs.Construct, id *string, props *BackedDataSourceProps, extended *ExtendedDataSourceProps)
Experimental.
func NewDynamoDbDataSource_Override ¶
func NewDynamoDbDataSource_Override(d DynamoDbDataSource, scope constructs.Construct, id *string, props *DynamoDbDataSourceProps)
Experimental.
func NewElasticsearchDataSource_Override
deprecated
func NewElasticsearchDataSource_Override(e ElasticsearchDataSource, scope constructs.Construct, id *string, props *ElasticsearchDataSourceProps)
Deprecated: - use `OpenSearchDataSource`.
func NewEnumType_Override ¶
func NewEnumType_Override(e EnumType, name *string, options *EnumTypeOptions)
Experimental.
func NewGraphqlApiBase_Override ¶
func NewGraphqlApiBase_Override(g GraphqlApiBase, scope constructs.Construct, id *string, props *awscdk.ResourceProps)
Experimental.
func NewGraphqlApi_Override ¶
func NewGraphqlApi_Override(g GraphqlApi, scope constructs.Construct, id *string, props *GraphqlApiProps)
Experimental.
func NewGraphqlType_Override ¶
func NewGraphqlType_Override(g GraphqlType, type_ Type, options *GraphqlTypeOptions)
Experimental.
func NewHttpDataSource_Override ¶
func NewHttpDataSource_Override(h HttpDataSource, scope constructs.Construct, id *string, props *HttpDataSourceProps)
Experimental.
func NewInputType_Override ¶
func NewInputType_Override(i InputType, name *string, props *IntermediateTypeOptions)
Experimental.
func NewInterfaceType_Override ¶
func NewInterfaceType_Override(i InterfaceType, name *string, props *IntermediateTypeOptions)
Experimental.
func NewLambdaDataSource_Override ¶
func NewLambdaDataSource_Override(l LambdaDataSource, scope constructs.Construct, id *string, props *LambdaDataSourceProps)
Experimental.
func NewMappingTemplate_Override ¶
func NewMappingTemplate_Override(m MappingTemplate)
Experimental.
func NewNoneDataSource_Override ¶
func NewNoneDataSource_Override(n NoneDataSource, scope constructs.Construct, id *string, props *NoneDataSourceProps)
Experimental.
func NewObjectType_Override ¶
func NewObjectType_Override(o ObjectType, name *string, props *ObjectTypeOptions)
Experimental.
func NewOpenSearchDataSource_Override ¶
func NewOpenSearchDataSource_Override(o OpenSearchDataSource, scope constructs.Construct, id *string, props *OpenSearchDataSourceProps)
Experimental.
func NewPartitionKeyStep_Override ¶
func NewPartitionKeyStep_Override(p PartitionKeyStep, key *string)
Experimental.
func NewPartitionKey_Override ¶
func NewPartitionKey_Override(p PartitionKey, pkey Assign)
Experimental.
func NewPrimaryKey_Override ¶
func NewPrimaryKey_Override(p PrimaryKey, pkey Assign, skey Assign)
Experimental.
func NewRdsDataSource_Override ¶
func NewRdsDataSource_Override(r RdsDataSource, scope constructs.Construct, id *string, props *RdsDataSourceProps)
Experimental.
func NewResolvableField_Override ¶
func NewResolvableField_Override(r ResolvableField, options *ResolvableFieldOptions)
Experimental.
func NewResolver_Override ¶
func NewResolver_Override(r Resolver, scope constructs.Construct, id *string, props *ResolverProps)
Experimental.
func NewSortKeyStep_Override ¶
func NewSortKeyStep_Override(s SortKeyStep, pkey Assign, skey *string)
Experimental.
func NewUnionType_Override ¶
func NewUnionType_Override(u UnionType, name *string, options *UnionTypeOptions)
Experimental.
func NoneDataSource_IsConstruct ¶
func NoneDataSource_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.
func OpenSearchDataSource_IsConstruct ¶
func OpenSearchDataSource_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.
func RdsDataSource_IsConstruct ¶
func RdsDataSource_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.
func Resolver_IsConstruct ¶
func Resolver_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`. Experimental.
Types ¶
type AddFieldOptions ¶
type AddFieldOptions struct { // The resolvable field to add. // // This option must be configured for Object, Interface, // Input and Union Types. // Experimental. Field IField `field:"optional" json:"field" yaml:"field"` // The name of the field. // // This option must be configured for Object, Interface, // Input and Enum Types. // Experimental. FieldName *string `field:"optional" json:"fieldName" yaml:"fieldName"` }
The options to add a field to an Intermediate Type.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" var field field addFieldOptions := &addFieldOptions{ field: field, fieldName: jsii.String("fieldName"), }
Experimental.
type ApiKeyConfig ¶
type ApiKeyConfig struct { // Description of API key. // Experimental. Description *string `field:"optional" json:"description" yaml:"description"` // The time from creation time after which the API key expires. // // It must be a minimum of 1 day and a maximum of 365 days from date of creation. // Rounded down to the nearest hour. // Experimental. Expires awscdk.Expiration `field:"optional" json:"expires" yaml:"expires"` // Unique name of the API Key. // Experimental. Name *string `field:"optional" json:"name" yaml:"name"` }
Configuration for API Key authorization in AppSync.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" import cdk "github.com/aws/aws-cdk-go/awscdk" var expiration expiration apiKeyConfig := &apiKeyConfig{ description: jsii.String("description"), expires: expiration, name: jsii.String("name"), }
Experimental.
type AppsyncFunction ¶
type AppsyncFunction interface { awscdk.Resource IAppsyncFunction // the data source of this AppSync Function. // Experimental. DataSource() BaseDataSource // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. // Experimental. Env() *awscdk.ResourceEnvironment // the ARN of the AppSync function. // Experimental. FunctionArn() *string // the ID of the AppSync function. // Experimental. FunctionId() *string // the name of this AppSync Function. // Experimental. FunctionName() *string // The tree node. // Experimental. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. // Experimental. PhysicalName() *string // The stack in which this resource is defined. // Experimental. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). // Experimental. ApplyRemovalPolicy(policy awscdk.RemovalPolicy) // Experimental. GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. // Experimental. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. // Experimental. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. // Experimental. ToString() *string }
AppSync Functions are local functions that perform certain operations onto a backend data source.
Developers can compose operations (Functions) and execute them in sequence with Pipeline Resolvers.
Example:
var api graphqlApi appsyncFunction := appsync.NewAppsyncFunction(this, jsii.String("function"), &appsyncFunctionProps{ name: jsii.String("appsync_function"), api: api, dataSource: api.addNoneDataSource(jsii.String("none")), requestMappingTemplate: appsync.mappingTemplate.fromFile(jsii.String("request.vtl")), responseMappingTemplate: appsync.*mappingTemplate.fromFile(jsii.String("response.vtl")), })
Experimental.
func NewAppsyncFunction ¶
func NewAppsyncFunction(scope constructs.Construct, id *string, props *AppsyncFunctionProps) AppsyncFunction
Experimental.
type AppsyncFunctionAttributes ¶
type AppsyncFunctionAttributes struct { // the ARN of the AppSync function. // Experimental. FunctionArn *string `field:"required" json:"functionArn" yaml:"functionArn"` }
The attributes for imported AppSync Functions.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" appsyncFunctionAttributes := &appsyncFunctionAttributes{ functionArn: jsii.String("functionArn"), }
Experimental.
type AppsyncFunctionProps ¶
type AppsyncFunctionProps struct { // the name of the AppSync Function. // Experimental. Name *string `field:"required" json:"name" yaml:"name"` // the description for this AppSync Function. // Experimental. Description *string `field:"optional" json:"description" yaml:"description"` // the request mapping template for the AppSync Function. // Experimental. RequestMappingTemplate MappingTemplate `field:"optional" json:"requestMappingTemplate" yaml:"requestMappingTemplate"` // the response mapping template for the AppSync Function. // Experimental. ResponseMappingTemplate MappingTemplate `field:"optional" json:"responseMappingTemplate" yaml:"responseMappingTemplate"` // the GraphQL Api linked to this AppSync Function. // Experimental. Api IGraphqlApi `field:"required" json:"api" yaml:"api"` // the data source linked to this AppSync Function. // Experimental. DataSource BaseDataSource `field:"required" json:"dataSource" yaml:"dataSource"` }
the CDK properties for AppSync Functions.
Example:
var api graphqlApi appsyncFunction := appsync.NewAppsyncFunction(this, jsii.String("function"), &appsyncFunctionProps{ name: jsii.String("appsync_function"), api: api, dataSource: api.addNoneDataSource(jsii.String("none")), requestMappingTemplate: appsync.mappingTemplate.fromFile(jsii.String("request.vtl")), responseMappingTemplate: appsync.*mappingTemplate.fromFile(jsii.String("response.vtl")), })
Experimental.
type Assign ¶
type Assign interface { // Renders the assignment as a map element. // Experimental. PutInMap(map_ *string) *string // Renders the assignment as a VTL string. // Experimental. RenderAsAssignment() *string }
Utility class representing the assigment of a value to an attribute.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" assign := appsync_alpha.NewAssign(jsii.String("attr"), jsii.String("arg"))
Experimental.
type AttributeValues ¶
type AttributeValues interface { // Allows assigning a value to the specified attribute. // Experimental. Attribute(attr *string) AttributeValuesStep // Renders the attribute value assingments to a VTL string. // Experimental. RenderTemplate() *string // Renders the variables required for `renderTemplate`. // Experimental. RenderVariables() *string }
Specifies the attribute value assignments.
Example:
api := appsync.NewGraphqlApi(this, jsii.String("Api"), &graphqlApiProps{ name: jsii.String("demo"), schema: appsync.schema.fromAsset(path.join(__dirname, jsii.String("schema.graphql"))), authorizationConfig: &authorizationConfig{ defaultAuthorization: &authorizationMode{ authorizationType: appsync.authorizationType_IAM, }, }, xrayEnabled: jsii.Boolean(true), }) demoTable := dynamodb.NewTable(this, jsii.String("DemoTable"), &tableProps{ partitionKey: &attribute{ name: jsii.String("id"), type: dynamodb.attributeType_STRING, }, }) demoDS := api.addDynamoDbDataSource(jsii.String("demoDataSource"), demoTable) // Resolver for the Query "getDemos" that scans the DynamoDb table and returns the entire list. // Resolver Mapping Template Reference: // https://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference-dynamodb.html demoDS.createResolver(&baseResolverProps{ typeName: jsii.String("Query"), fieldName: jsii.String("getDemos"), requestMappingTemplate: appsync.mappingTemplate.dynamoDbScanTable(), responseMappingTemplate: appsync.*mappingTemplate.dynamoDbResultList(), }) // Resolver for the Mutation "addDemo" that puts the item into the DynamoDb table. demoDS.createResolver(&baseResolverProps{ typeName: jsii.String("Mutation"), fieldName: jsii.String("addDemo"), requestMappingTemplate: appsync.*mappingTemplate.dynamoDbPutItem(appsync.primaryKey.partition(jsii.String("id")).auto(), appsync.values.projecting(jsii.String("input"))), responseMappingTemplate: appsync.*mappingTemplate.dynamoDbResultItem(), }) //To enable DynamoDB read consistency with the `MappingTemplate`: demoDS.createResolver(&baseResolverProps{ typeName: jsii.String("Query"), fieldName: jsii.String("getDemosConsistent"), requestMappingTemplate: appsync.*mappingTemplate.dynamoDbScanTable(jsii.Boolean(true)), responseMappingTemplate: appsync.*mappingTemplate.dynamoDbResultList(), })
Experimental.
func NewAttributeValues ¶
func NewAttributeValues(container *string, assignments *[]Assign) AttributeValues
Experimental.
func Values_Projecting ¶
func Values_Projecting(arg *string) AttributeValues
Treats the specified object as a map of assignments, where the property names represent attribute names.
It’s opinionated about how it represents some of the nested objects: e.g., it will use lists (“L”) rather than sets (“SS”, “NS”, “BS”). By default it projects the argument container ("$ctx.args"). Experimental.
type AttributeValuesStep ¶
type AttributeValuesStep interface { // Assign the value to the current attribute. // Experimental. Is(val *string) AttributeValues }
Utility class to allow assigning a value to an attribute.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" var assign assign attributeValuesStep := appsync_alpha.NewAttributeValuesStep(jsii.String("attr"), jsii.String("container"), []assign{ assign, })
Experimental.
func NewAttributeValuesStep ¶
func NewAttributeValuesStep(attr *string, container *string, assignments *[]Assign) AttributeValuesStep
Experimental.
func Values_Attribute ¶
func Values_Attribute(attr *string) AttributeValuesStep
Allows assigning a value to the specified attribute. Experimental.
type AuthorizationConfig ¶
type AuthorizationConfig struct { // Additional authorization modes. // Experimental. AdditionalAuthorizationModes *[]*AuthorizationMode `field:"optional" json:"additionalAuthorizationModes" yaml:"additionalAuthorizationModes"` // Optional authorization configuration. // Experimental. DefaultAuthorization *AuthorizationMode `field:"optional" json:"defaultAuthorization" yaml:"defaultAuthorization"` }
Configuration of the API authorization modes.
Example:
import lambda "github.com/aws/aws-cdk-go/awscdk" var authFunction function appsync.NewGraphqlApi(this, jsii.String("api"), &graphqlApiProps{ name: jsii.String("api"), schema: appsync.schema.fromAsset(path.join(__dirname, jsii.String("appsync.test.graphql"))), authorizationConfig: &authorizationConfig{ defaultAuthorization: &authorizationMode{ authorizationType: appsync.authorizationType_LAMBDA, lambdaAuthorizerConfig: &lambdaAuthorizerConfig{ handler: authFunction, }, }, }, })
Experimental.
type AuthorizationMode ¶
type AuthorizationMode struct { // One of possible four values AppSync supports. // See: https://docs.aws.amazon.com/appsync/latest/devguide/security.html // // Experimental. AuthorizationType AuthorizationType `field:"required" json:"authorizationType" yaml:"authorizationType"` // If authorizationType is `AuthorizationType.API_KEY`, this option can be configured. // Experimental. ApiKeyConfig *ApiKeyConfig `field:"optional" json:"apiKeyConfig" yaml:"apiKeyConfig"` // If authorizationType is `AuthorizationType.LAMBDA`, this option is required. // Experimental. LambdaAuthorizerConfig *LambdaAuthorizerConfig `field:"optional" json:"lambdaAuthorizerConfig" yaml:"lambdaAuthorizerConfig"` // If authorizationType is `AuthorizationType.OIDC`, this option is required. // Experimental. OpenIdConnectConfig *OpenIdConnectConfig `field:"optional" json:"openIdConnectConfig" yaml:"openIdConnectConfig"` // If authorizationType is `AuthorizationType.USER_POOL`, this option is required. // Experimental. UserPoolConfig *UserPoolConfig `field:"optional" json:"userPoolConfig" yaml:"userPoolConfig"` }
Interface to specify default or additional authorization(s).
Example:
api := appsync.NewGraphqlApi(this, jsii.String("Api"), &graphqlApiProps{ name: jsii.String("demo"), schema: appsync.schema.fromAsset(path.join(__dirname, jsii.String("schema.graphql"))), authorizationConfig: &authorizationConfig{ defaultAuthorization: &authorizationMode{ authorizationType: appsync.authorizationType_IAM, }, }, xrayEnabled: jsii.Boolean(true), }) demoTable := dynamodb.NewTable(this, jsii.String("DemoTable"), &tableProps{ partitionKey: &attribute{ name: jsii.String("id"), type: dynamodb.attributeType_STRING, }, }) demoDS := api.addDynamoDbDataSource(jsii.String("demoDataSource"), demoTable) // Resolver for the Query "getDemos" that scans the DynamoDb table and returns the entire list. // Resolver Mapping Template Reference: // https://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference-dynamodb.html demoDS.createResolver(&baseResolverProps{ typeName: jsii.String("Query"), fieldName: jsii.String("getDemos"), requestMappingTemplate: appsync.mappingTemplate.dynamoDbScanTable(), responseMappingTemplate: appsync.*mappingTemplate.dynamoDbResultList(), }) // Resolver for the Mutation "addDemo" that puts the item into the DynamoDb table. demoDS.createResolver(&baseResolverProps{ typeName: jsii.String("Mutation"), fieldName: jsii.String("addDemo"), requestMappingTemplate: appsync.*mappingTemplate.dynamoDbPutItem(appsync.primaryKey.partition(jsii.String("id")).auto(), appsync.values.projecting(jsii.String("input"))), responseMappingTemplate: appsync.*mappingTemplate.dynamoDbResultItem(), }) //To enable DynamoDB read consistency with the `MappingTemplate`: demoDS.createResolver(&baseResolverProps{ typeName: jsii.String("Query"), fieldName: jsii.String("getDemosConsistent"), requestMappingTemplate: appsync.*mappingTemplate.dynamoDbScanTable(jsii.Boolean(true)), responseMappingTemplate: appsync.*mappingTemplate.dynamoDbResultList(), })
Experimental.
type AuthorizationType ¶
type AuthorizationType string
enum with all possible values for AppSync authorization type.
Example:
api := appsync.NewGraphqlApi(this, jsii.String("Api"), &graphqlApiProps{ name: jsii.String("demo"), schema: appsync.schema.fromAsset(path.join(__dirname, jsii.String("schema.graphql"))), authorizationConfig: &authorizationConfig{ defaultAuthorization: &authorizationMode{ authorizationType: appsync.authorizationType_IAM, }, }, xrayEnabled: jsii.Boolean(true), }) demoTable := dynamodb.NewTable(this, jsii.String("DemoTable"), &tableProps{ partitionKey: &attribute{ name: jsii.String("id"), type: dynamodb.attributeType_STRING, }, }) demoDS := api.addDynamoDbDataSource(jsii.String("demoDataSource"), demoTable) // Resolver for the Query "getDemos" that scans the DynamoDb table and returns the entire list. // Resolver Mapping Template Reference: // https://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference-dynamodb.html demoDS.createResolver(&baseResolverProps{ typeName: jsii.String("Query"), fieldName: jsii.String("getDemos"), requestMappingTemplate: appsync.mappingTemplate.dynamoDbScanTable(), responseMappingTemplate: appsync.*mappingTemplate.dynamoDbResultList(), }) // Resolver for the Mutation "addDemo" that puts the item into the DynamoDb table. demoDS.createResolver(&baseResolverProps{ typeName: jsii.String("Mutation"), fieldName: jsii.String("addDemo"), requestMappingTemplate: appsync.*mappingTemplate.dynamoDbPutItem(appsync.primaryKey.partition(jsii.String("id")).auto(), appsync.values.projecting(jsii.String("input"))), responseMappingTemplate: appsync.*mappingTemplate.dynamoDbResultItem(), }) //To enable DynamoDB read consistency with the `MappingTemplate`: demoDS.createResolver(&baseResolverProps{ typeName: jsii.String("Query"), fieldName: jsii.String("getDemosConsistent"), requestMappingTemplate: appsync.*mappingTemplate.dynamoDbScanTable(jsii.Boolean(true)), responseMappingTemplate: appsync.*mappingTemplate.dynamoDbResultList(), })
Experimental.
const ( // API Key authorization type. // Experimental. AuthorizationType_API_KEY AuthorizationType = "API_KEY" // AWS IAM authorization type. // // Can be used with Cognito Identity Pool federated credentials. // Experimental. AuthorizationType_IAM AuthorizationType = "IAM" // Cognito User Pool authorization type. // Experimental. AuthorizationType_USER_POOL AuthorizationType = "USER_POOL" // OpenID Connect authorization type. // Experimental. AuthorizationType_OIDC AuthorizationType = "OIDC" // Lambda authorization type. // Experimental. AuthorizationType_LAMBDA AuthorizationType = "LAMBDA" )
type AwsIamConfig ¶
type AwsIamConfig struct { // The signing region for AWS IAM authorization. // Experimental. SigningRegion *string `field:"required" json:"signingRegion" yaml:"signingRegion"` // The signing service name for AWS IAM authorization. // Experimental. SigningServiceName *string `field:"required" json:"signingServiceName" yaml:"signingServiceName"` }
The authorization config in case the HTTP endpoint requires authorization.
Example:
api := appsync.NewGraphqlApi(this, jsii.String("api"), &graphqlApiProps{ name: jsii.String("api"), schema: appsync.schema.fromAsset(path.join(__dirname, jsii.String("schema.graphql"))), }) httpDs := api.addHttpDataSource(jsii.String("ds"), jsii.String("https://states.amazonaws.com"), &httpDataSourceOptions{ name: jsii.String("httpDsWithStepF"), description: jsii.String("from appsync to StepFunctions Workflow"), authorizationConfig: &awsIamConfig{ signingRegion: jsii.String("us-east-1"), signingServiceName: jsii.String("states"), }, }) httpDs.createResolver(&baseResolverProps{ typeName: jsii.String("Mutation"), fieldName: jsii.String("callStepFunction"), requestMappingTemplate: appsync.mappingTemplate.fromFile(jsii.String("request.vtl")), responseMappingTemplate: appsync.*mappingTemplate.fromFile(jsii.String("response.vtl")), })
Experimental.
type BackedDataSource ¶
type BackedDataSource interface { BaseDataSource awsiam.IGrantable // Experimental. Api() IGraphqlApi // Experimental. SetApi(val IGraphqlApi) // the underlying CFN data source resource. // Experimental. Ds() awsappsync.CfnDataSource // the principal of the data source to be IGrantable. // Experimental. GrantPrincipal() awsiam.IPrincipal // the name of the data source. // Experimental. Name() *string // The tree node. // Experimental. Node() constructs.Node // Experimental. ServiceRole() awsiam.IRole // Experimental. SetServiceRole(val awsiam.IRole) // creates a new appsync function for this datasource and API using the given properties. // Experimental. CreateFunction(props *BaseAppsyncFunctionProps) AppsyncFunction // creates a new resolver for this datasource and API using the given properties. // Experimental. CreateResolver(props *BaseResolverProps) Resolver // Returns a string representation of this construct. // Experimental. ToString() *string }
Abstract AppSync datasource implementation.
Do not use directly but use subclasses for resource backed datasources. Experimental.
type BackedDataSourceProps ¶
type BackedDataSourceProps struct { // The API to attach this data source to. // Experimental. Api IGraphqlApi `field:"required" json:"api" yaml:"api"` // the description of the data source. // Experimental. Description *string `field:"optional" json:"description" yaml:"description"` // The name of the data source. // Experimental. Name *string `field:"optional" json:"name" yaml:"name"` // The IAM service role to be assumed by AppSync to interact with the data source. // Experimental. ServiceRole awsiam.IRole `field:"optional" json:"serviceRole" yaml:"serviceRole"` }
properties for an AppSync datasource backed by a resource.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" import "github.com/aws/aws-cdk-go/awscdk" var graphqlApi graphqlApi var role role backedDataSourceProps := &backedDataSourceProps{ api: graphqlApi, // the properties below are optional description: jsii.String("description"), name: jsii.String("name"), serviceRole: role, }
Experimental.
type BaseAppsyncFunctionProps ¶
type BaseAppsyncFunctionProps struct { // the name of the AppSync Function. // Experimental. Name *string `field:"required" json:"name" yaml:"name"` // the description for this AppSync Function. // Experimental. Description *string `field:"optional" json:"description" yaml:"description"` // the request mapping template for the AppSync Function. // Experimental. RequestMappingTemplate MappingTemplate `field:"optional" json:"requestMappingTemplate" yaml:"requestMappingTemplate"` // the response mapping template for the AppSync Function. // Experimental. ResponseMappingTemplate MappingTemplate `field:"optional" json:"responseMappingTemplate" yaml:"responseMappingTemplate"` }
the base properties for AppSync Functions.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" var mappingTemplate mappingTemplate baseAppsyncFunctionProps := &baseAppsyncFunctionProps{ name: jsii.String("name"), // the properties below are optional description: jsii.String("description"), requestMappingTemplate: mappingTemplate, responseMappingTemplate: mappingTemplate, }
Experimental.
type BaseDataSource ¶
type BaseDataSource interface { constructs.Construct // Experimental. Api() IGraphqlApi // Experimental. SetApi(val IGraphqlApi) // the underlying CFN data source resource. // Experimental. Ds() awsappsync.CfnDataSource // the name of the data source. // Experimental. Name() *string // The tree node. // Experimental. Node() constructs.Node // Experimental. ServiceRole() awsiam.IRole // Experimental. SetServiceRole(val awsiam.IRole) // creates a new appsync function for this datasource and API using the given properties. // Experimental. CreateFunction(props *BaseAppsyncFunctionProps) AppsyncFunction // creates a new resolver for this datasource and API using the given properties. // Experimental. CreateResolver(props *BaseResolverProps) Resolver // Returns a string representation of this construct. // Experimental. ToString() *string }
Abstract AppSync datasource implementation.
Do not use directly but use subclasses for concrete datasources.
Example:
var api graphqlApi var dummyRequest mappingTemplate var dummyResponse mappingTemplate info := appsync.NewObjectType(jsii.String("Info"), &objectTypeOptions{ definition: map[string]iField{ "node": appsync.NewResolvableField(&ResolvableFieldOptions{ "returnType": appsync.GraphqlType.string(), "args": map[string]GraphqlType{ "id": appsync.GraphqlType.string(), }, "dataSource": api.addNoneDataSource(jsii.String("none")), "requestMappingTemplate": dummyRequest, "responseMappingTemplate": dummyResponse, }), }, })
Experimental.
type BaseDataSourceProps ¶
type BaseDataSourceProps struct { // The API to attach this data source to. // Experimental. Api IGraphqlApi `field:"required" json:"api" yaml:"api"` // the description of the data source. // Experimental. Description *string `field:"optional" json:"description" yaml:"description"` // The name of the data source. // Experimental. Name *string `field:"optional" json:"name" yaml:"name"` }
Base properties for an AppSync datasource.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" var graphqlApi graphqlApi baseDataSourceProps := &baseDataSourceProps{ api: graphqlApi, // the properties below are optional description: jsii.String("description"), name: jsii.String("name"), }
Experimental.
type BaseResolverProps ¶
type BaseResolverProps struct { // name of the GraphQL field in the given type this resolver is attached to. // Experimental. FieldName *string `field:"required" json:"fieldName" yaml:"fieldName"` // name of the GraphQL type this resolver is attached to. // Experimental. TypeName *string `field:"required" json:"typeName" yaml:"typeName"` // The caching configuration for this resolver. // Experimental. CachingConfig *CachingConfig `field:"optional" json:"cachingConfig" yaml:"cachingConfig"` // The maximum number of elements per batch, when using batch invoke. // Experimental. MaxBatchSize *float64 `field:"optional" json:"maxBatchSize" yaml:"maxBatchSize"` // configuration of the pipeline resolver. // Experimental. PipelineConfig *[]IAppsyncFunction `field:"optional" json:"pipelineConfig" yaml:"pipelineConfig"` // The request mapping template for this resolver. // Experimental. RequestMappingTemplate MappingTemplate `field:"optional" json:"requestMappingTemplate" yaml:"requestMappingTemplate"` // The response mapping template for this resolver. // Experimental. ResponseMappingTemplate MappingTemplate `field:"optional" json:"responseMappingTemplate" yaml:"responseMappingTemplate"` }
Basic properties for an AppSync resolver.
Example:
// Build a data source for AppSync to access the database. var api graphqlApi // Create username and password secret for DB Cluster secret := rds.NewDatabaseSecret(this, jsii.String("AuroraSecret"), &databaseSecretProps{ username: jsii.String("clusteradmin"), }) // The VPC to place the cluster in vpc := ec2.NewVpc(this, jsii.String("AuroraVpc")) // Create the serverless cluster, provide all values needed to customise the database. cluster := rds.NewServerlessCluster(this, jsii.String("AuroraCluster"), &serverlessClusterProps{ engine: rds.databaseClusterEngine_AURORA_MYSQL(), vpc: vpc, credentials: map[string]*string{ "username": jsii.String("clusteradmin"), }, clusterIdentifier: jsii.String("db-endpoint-test"), defaultDatabaseName: jsii.String("demos"), }) rdsDS := api.addRdsDataSource(jsii.String("rds"), cluster, secret, jsii.String("demos")) // Set up a resolver for an RDS query. rdsDS.createResolver(&baseResolverProps{ typeName: jsii.String("Query"), fieldName: jsii.String("getDemosRds"), requestMappingTemplate: appsync.mappingTemplate.fromString(jsii.String("\n {\n \"version\": \"2018-05-29\",\n \"statements\": [\n \"SELECT * FROM demos\"\n ]\n }\n ")), responseMappingTemplate: appsync.*mappingTemplate.fromString(jsii.String("\n $utils.toJson($utils.rds.toJsonObject($ctx.result)[0])\n ")), }) // Set up a resolver for an RDS mutation. rdsDS.createResolver(&baseResolverProps{ typeName: jsii.String("Mutation"), fieldName: jsii.String("addDemoRds"), requestMappingTemplate: appsync.*mappingTemplate.fromString(jsii.String("\n {\n \"version\": \"2018-05-29\",\n \"statements\": [\n \"INSERT INTO demos VALUES (:id, :version)\",\n \"SELECT * WHERE id = :id\"\n ],\n \"variableMap\": {\n \":id\": $util.toJson($util.autoId()),\n \":version\": $util.toJson($ctx.args.version)\n }\n }\n ")), responseMappingTemplate: appsync.*mappingTemplate.fromString(jsii.String("\n $utils.toJson($utils.rds.toJsonObject($ctx.result)[1][0])\n ")), })
Experimental.
type BaseTypeOptions ¶
type BaseTypeOptions struct { // property determining if this attribute is a list i.e. if true, attribute would be [Type]. // Experimental. IsList *bool `field:"optional" json:"isList" yaml:"isList"` // property determining if this attribute is non-nullable i.e. if true, attribute would be Type! // Experimental. IsRequired *bool `field:"optional" json:"isRequired" yaml:"isRequired"` // property determining if this attribute is a non-nullable list i.e. if true, attribute would be [ Type ]! or if isRequired true, attribe would be [ Type! ]! // Experimental. IsRequiredList *bool `field:"optional" json:"isRequiredList" yaml:"isRequiredList"` }
Base options for GraphQL Types.
Example:
api := appsync.NewGraphqlApi(this, jsii.String("Api"), &graphqlApiProps{ name: jsii.String("demo"), }) demo := appsync.NewObjectType(jsii.String("Demo"), &objectTypeOptions{ definition: map[string]iField{ "id": appsync.GraphqlType.string(&BaseTypeOptions{ "isRequired": jsii.Boolean(true), }), "version": appsync.GraphqlType.string(&BaseTypeOptions{ "isRequired": jsii.Boolean(true), }), }, }) api.addType(demo)
Experimental.
type CachingConfig ¶
type CachingConfig struct { // The TTL in seconds for a resolver that has caching enabled. // // Valid values are between 1 and 3600 seconds. // Experimental. Ttl awscdk.Duration `field:"required" json:"ttl" yaml:"ttl"` // The caching keys for a resolver that has caching enabled. // // Valid values are entries from the $context.arguments, $context.source, and $context.identity maps. // Experimental. CachingKeys *[]*string `field:"optional" json:"cachingKeys" yaml:"cachingKeys"` }
CachingConfig for AppSync resolvers.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" import cdk "github.com/aws/aws-cdk-go/awscdk" cachingConfig := &cachingConfig{ ttl: cdk.duration.minutes(jsii.Number(30)), // the properties below are optional cachingKeys: []*string{ jsii.String("cachingKeys"), }, }
Experimental.
type DataSourceOptions ¶
type DataSourceOptions struct { // The description of the data source. // Experimental. Description *string `field:"optional" json:"description" yaml:"description"` // The name of the data source, overrides the id given by cdk. // Experimental. Name *string `field:"optional" json:"name" yaml:"name"` }
Optional configuration for data sources.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" dataSourceOptions := &dataSourceOptions{ description: jsii.String("description"), name: jsii.String("name"), }
Experimental.
type Directive ¶
type Directive interface { // The authorization type of this directive. // Experimental. Mode() AuthorizationType // the authorization modes for this intermediate type. // Experimental. Modes() *[]AuthorizationType // Experimental. SetModes(val *[]AuthorizationType) // Mutation fields for a subscription directive. // Experimental. MutationFields() *[]*string // Generate the directive statement. // Experimental. ToString() *string }
Directives for types.
i.e. @aws_iam or @aws_subscribe
Example:
var api graphqlApi var film interfaceType api.addSubscription(jsii.String("addedFilm"), appsync.NewField(&fieldOptions{ returnType: film.attribute(), args: map[string]graphqlType{ "id": appsync.*graphqlType.id(&BaseTypeOptions{ "isRequired": jsii.Boolean(true), }), }, directives: []directive{ appsync.*directive.subscribe(jsii.String("addFilm")), }, }))
Experimental.
func Directive_ApiKey ¶
func Directive_ApiKey() Directive
Add the @aws_api_key directive. Experimental.
func Directive_Cognito ¶
Add the @aws_auth or @aws_cognito_user_pools directive. Experimental.
func Directive_Custom ¶
Add a custom directive. Experimental.
func Directive_Subscribe ¶
Add the @aws_subscribe directive.
Only use for top level Subscription type. Experimental.
type DomainOptions ¶
type DomainOptions struct { // The certificate to use with the domain name. // Experimental. Certificate awscertificatemanager.ICertificate `field:"required" json:"certificate" yaml:"certificate"` // The actual domain name. // // For example, `api.example.com`. // Experimental. DomainName *string `field:"required" json:"domainName" yaml:"domainName"` }
Domain name configuration for AppSync.
Example:
import acm "github.com/aws/aws-cdk-go/awscdk" import route53 "github.com/aws/aws-cdk-go/awscdk" // hosted zone and route53 features var hostedZoneId string zoneName := "example.com" myDomainName := "api.example.com" certificate := acm.NewCertificate(this, jsii.String("cert"), &certificateProps{ domainName: myDomainName, }) api := appsync.NewGraphqlApi(this, jsii.String("api"), &graphqlApiProps{ name: jsii.String("myApi"), domainName: &domainOptions{ certificate: certificate, domainName: myDomainName, }, }) // hosted zone for adding appsync domain zone := route53.hostedZone.fromHostedZoneAttributes(this, jsii.String("HostedZone"), &hostedZoneAttributes{ hostedZoneId: jsii.String(hostedZoneId), zoneName: jsii.String(zoneName), }) // create a cname to the appsync domain. will map to something like xxxx.cloudfront.net // create a cname to the appsync domain. will map to something like xxxx.cloudfront.net route53.NewCnameRecord(this, jsii.String("CnameApiRecord"), &cnameRecordProps{ recordName: jsii.String("api"), zone: zone, domainName: api.appSyncDomainName, })
Experimental.
type DynamoDbDataSource ¶
type DynamoDbDataSource interface { BackedDataSource // Experimental. Api() IGraphqlApi // Experimental. SetApi(val IGraphqlApi) // the underlying CFN data source resource. // Experimental. Ds() awsappsync.CfnDataSource // the principal of the data source to be IGrantable. // Experimental. GrantPrincipal() awsiam.IPrincipal // the name of the data source. // Experimental. Name() *string // The tree node. // Experimental. Node() constructs.Node // Experimental. ServiceRole() awsiam.IRole // Experimental. SetServiceRole(val awsiam.IRole) // creates a new appsync function for this datasource and API using the given properties. // Experimental. CreateFunction(props *BaseAppsyncFunctionProps) AppsyncFunction // creates a new resolver for this datasource and API using the given properties. // Experimental. CreateResolver(props *BaseResolverProps) Resolver // Returns a string representation of this construct. // Experimental. ToString() *string }
An AppSync datasource backed by a DynamoDB table.
Example:
api := appsync.NewGraphqlApi(this, jsii.String("Api"), &graphqlApiProps{ name: jsii.String("demo"), schema: appsync.schema.fromAsset(path.join(__dirname, jsii.String("schema.graphql"))), authorizationConfig: &authorizationConfig{ defaultAuthorization: &authorizationMode{ authorizationType: appsync.authorizationType_IAM, }, }, xrayEnabled: jsii.Boolean(true), }) demoTable := dynamodb.NewTable(this, jsii.String("DemoTable"), &tableProps{ partitionKey: &attribute{ name: jsii.String("id"), type: dynamodb.attributeType_STRING, }, }) demoDS := api.addDynamoDbDataSource(jsii.String("demoDataSource"), demoTable) // Resolver for the Query "getDemos" that scans the DynamoDb table and returns the entire list. // Resolver Mapping Template Reference: // https://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference-dynamodb.html demoDS.createResolver(&baseResolverProps{ typeName: jsii.String("Query"), fieldName: jsii.String("getDemos"), requestMappingTemplate: appsync.mappingTemplate.dynamoDbScanTable(), responseMappingTemplate: appsync.*mappingTemplate.dynamoDbResultList(), }) // Resolver for the Mutation "addDemo" that puts the item into the DynamoDb table. demoDS.createResolver(&baseResolverProps{ typeName: jsii.String("Mutation"), fieldName: jsii.String("addDemo"), requestMappingTemplate: appsync.*mappingTemplate.dynamoDbPutItem(appsync.primaryKey.partition(jsii.String("id")).auto(), appsync.values.projecting(jsii.String("input"))), responseMappingTemplate: appsync.*mappingTemplate.dynamoDbResultItem(), }) //To enable DynamoDB read consistency with the `MappingTemplate`: demoDS.createResolver(&baseResolverProps{ typeName: jsii.String("Query"), fieldName: jsii.String("getDemosConsistent"), requestMappingTemplate: appsync.*mappingTemplate.dynamoDbScanTable(jsii.Boolean(true)), responseMappingTemplate: appsync.*mappingTemplate.dynamoDbResultList(), })
Experimental.
func NewDynamoDbDataSource ¶
func NewDynamoDbDataSource(scope constructs.Construct, id *string, props *DynamoDbDataSourceProps) DynamoDbDataSource
Experimental.
type DynamoDbDataSourceProps ¶
type DynamoDbDataSourceProps struct { // The API to attach this data source to. // Experimental. Api IGraphqlApi `field:"required" json:"api" yaml:"api"` // the description of the data source. // Experimental. Description *string `field:"optional" json:"description" yaml:"description"` // The name of the data source. // Experimental. Name *string `field:"optional" json:"name" yaml:"name"` // The IAM service role to be assumed by AppSync to interact with the data source. // Experimental. ServiceRole awsiam.IRole `field:"optional" json:"serviceRole" yaml:"serviceRole"` // The DynamoDB table backing this data source. // Experimental. Table awsdynamodb.ITable `field:"required" json:"table" yaml:"table"` // Specify whether this DS is read only or has read and write permissions to the DynamoDB table. // Experimental. ReadOnlyAccess *bool `field:"optional" json:"readOnlyAccess" yaml:"readOnlyAccess"` // use credentials of caller to access DynamoDB. // Experimental. UseCallerCredentials *bool `field:"optional" json:"useCallerCredentials" yaml:"useCallerCredentials"` }
Properties for an AppSync DynamoDB datasource.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var graphqlApi graphqlApi var role role var table table dynamoDbDataSourceProps := &dynamoDbDataSourceProps{ api: graphqlApi, table: table, // the properties below are optional description: jsii.String("description"), name: jsii.String("name"), readOnlyAccess: jsii.Boolean(false), serviceRole: role, useCallerCredentials: jsii.Boolean(false), }
Experimental.
type ElasticsearchDataSource
deprecated
type ElasticsearchDataSource interface { BackedDataSource // Deprecated: - use `OpenSearchDataSource`. Api() IGraphqlApi // Deprecated: - use `OpenSearchDataSource`. SetApi(val IGraphqlApi) // the underlying CFN data source resource. // Deprecated: - use `OpenSearchDataSource`. Ds() awsappsync.CfnDataSource // the principal of the data source to be IGrantable. // Deprecated: - use `OpenSearchDataSource`. GrantPrincipal() awsiam.IPrincipal // the name of the data source. // Deprecated: - use `OpenSearchDataSource`. Name() *string // The tree node. // Deprecated: - use `OpenSearchDataSource`. Node() constructs.Node // Deprecated: - use `OpenSearchDataSource`. ServiceRole() awsiam.IRole // Deprecated: - use `OpenSearchDataSource`. SetServiceRole(val awsiam.IRole) // creates a new appsync function for this datasource and API using the given properties. // Deprecated: - use `OpenSearchDataSource`. CreateFunction(props *BaseAppsyncFunctionProps) AppsyncFunction // creates a new resolver for this datasource and API using the given properties. // Deprecated: - use `OpenSearchDataSource`. CreateResolver(props *BaseResolverProps) Resolver // Returns a string representation of this construct. // Deprecated: - use `OpenSearchDataSource`. ToString() *string }
An Appsync datasource backed by Elasticsearch.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var domain domain var graphqlApi graphqlApi var role role elasticsearchDataSource := appsync_alpha.NewElasticsearchDataSource(this, jsii.String("MyElasticsearchDataSource"), &elasticsearchDataSourceProps{ api: graphqlApi, domain: domain, // the properties below are optional description: jsii.String("description"), name: jsii.String("name"), serviceRole: role, })
Deprecated: - use `OpenSearchDataSource`.
func NewElasticsearchDataSource
deprecated
func NewElasticsearchDataSource(scope constructs.Construct, id *string, props *ElasticsearchDataSourceProps) ElasticsearchDataSource
Deprecated: - use `OpenSearchDataSource`.
type ElasticsearchDataSourceProps
deprecated
type ElasticsearchDataSourceProps struct { // The API to attach this data source to. // Deprecated: - use `OpenSearchDataSourceProps` with `OpenSearchDataSource`. Api IGraphqlApi `field:"required" json:"api" yaml:"api"` // the description of the data source. // Deprecated: - use `OpenSearchDataSourceProps` with `OpenSearchDataSource`. Description *string `field:"optional" json:"description" yaml:"description"` // The name of the data source. // Deprecated: - use `OpenSearchDataSourceProps` with `OpenSearchDataSource`. Name *string `field:"optional" json:"name" yaml:"name"` // The IAM service role to be assumed by AppSync to interact with the data source. // Deprecated: - use `OpenSearchDataSourceProps` with `OpenSearchDataSource`. ServiceRole awsiam.IRole `field:"optional" json:"serviceRole" yaml:"serviceRole"` // The elasticsearch domain containing the endpoint for the data source. // Deprecated: - use `OpenSearchDataSourceProps` with `OpenSearchDataSource`. Domain awselasticsearch.IDomain `field:"required" json:"domain" yaml:"domain"` }
Properties for the Elasticsearch Data Source.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var domain domain var graphqlApi graphqlApi var role role elasticsearchDataSourceProps := &elasticsearchDataSourceProps{ api: graphqlApi, domain: domain, // the properties below are optional description: jsii.String("description"), name: jsii.String("name"), serviceRole: role, }
Deprecated: - use `OpenSearchDataSourceProps` with `OpenSearchDataSource`.
type EnumType ¶
type EnumType interface { IIntermediateType // the attributes of this type. // Experimental. Definition() *map[string]IField // the authorization modes for this intermediate type. // Experimental. Modes() *[]AuthorizationType // Experimental. SetModes(val *[]AuthorizationType) // the name of this type. // Experimental. Name() *string // Add a field to this Enum Type. // // To add a field to this Enum Type, you must only configure // addField with the fieldName options. // Experimental. AddField(options *AddFieldOptions) // Create an GraphQL Type representing this Enum Type. // Experimental. Attribute(options *BaseTypeOptions) GraphqlType // Generate the string of this enum type. // Experimental. ToString() *string }
Enum Types are abstract types that includes a set of fields that represent the strings this type can create.
Example:
var api graphqlApi episode := appsync.NewEnumType(jsii.String("Episode"), &enumTypeOptions{ definition: []*string{ jsii.String("NEWHOPE"), jsii.String("EMPIRE"), jsii.String("JEDI"), }, }) api.addType(episode)
Experimental.
type EnumTypeOptions ¶
type EnumTypeOptions struct { // the attributes of this type. // Experimental. Definition *[]*string `field:"required" json:"definition" yaml:"definition"` }
Properties for configuring an Enum Type.
Example:
var api graphqlApi episode := appsync.NewEnumType(jsii.String("Episode"), &enumTypeOptions{ definition: []*string{ jsii.String("NEWHOPE"), jsii.String("EMPIRE"), jsii.String("JEDI"), }, }) api.addType(episode)
Experimental.
type ExtendedDataSourceProps ¶
type ExtendedDataSourceProps struct { // the type of the AppSync datasource. // Experimental. Type *string `field:"required" json:"type" yaml:"type"` // configuration for DynamoDB Datasource. // Experimental. DynamoDbConfig interface{} `field:"optional" json:"dynamoDbConfig" yaml:"dynamoDbConfig"` // configuration for Elasticsearch data source. // Deprecated: - use `openSearchConfig`. ElasticsearchConfig interface{} `field:"optional" json:"elasticsearchConfig" yaml:"elasticsearchConfig"` // configuration for HTTP Datasource. // Experimental. HttpConfig interface{} `field:"optional" json:"httpConfig" yaml:"httpConfig"` // configuration for Lambda Datasource. // Experimental. LambdaConfig interface{} `field:"optional" json:"lambdaConfig" yaml:"lambdaConfig"` // configuration for OpenSearch data source. // Experimental. OpenSearchServiceConfig interface{} `field:"optional" json:"openSearchServiceConfig" yaml:"openSearchServiceConfig"` // configuration for RDS Datasource. // Experimental. RelationalDatabaseConfig interface{} `field:"optional" json:"relationalDatabaseConfig" yaml:"relationalDatabaseConfig"` }
props used by implementations of BaseDataSource to provide configuration.
Should not be used directly.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" extendedDataSourceProps := &extendedDataSourceProps{ type: jsii.String("type"), // the properties below are optional dynamoDbConfig: &dynamoDBConfigProperty{ awsRegion: jsii.String("awsRegion"), tableName: jsii.String("tableName"), // the properties below are optional deltaSyncConfig: &deltaSyncConfigProperty{ baseTableTtl: jsii.String("baseTableTtl"), deltaSyncTableName: jsii.String("deltaSyncTableName"), deltaSyncTableTtl: jsii.String("deltaSyncTableTtl"), }, useCallerCredentials: jsii.Boolean(false), versioned: jsii.Boolean(false), }, elasticsearchConfig: &elasticsearchConfigProperty{ awsRegion: jsii.String("awsRegion"), endpoint: jsii.String("endpoint"), }, httpConfig: &httpConfigProperty{ endpoint: jsii.String("endpoint"), // the properties below are optional authorizationConfig: &authorizationConfigProperty{ authorizationType: jsii.String("authorizationType"), // the properties below are optional awsIamConfig: &awsIamConfigProperty{ signingRegion: jsii.String("signingRegion"), signingServiceName: jsii.String("signingServiceName"), }, }, }, lambdaConfig: &lambdaConfigProperty{ lambdaFunctionArn: jsii.String("lambdaFunctionArn"), }, openSearchServiceConfig: &openSearchServiceConfigProperty{ awsRegion: jsii.String("awsRegion"), endpoint: jsii.String("endpoint"), }, relationalDatabaseConfig: &relationalDatabaseConfigProperty{ relationalDatabaseSourceType: jsii.String("relationalDatabaseSourceType"), // the properties below are optional rdsHttpEndpointConfig: &rdsHttpEndpointConfigProperty{ awsRegion: jsii.String("awsRegion"), awsSecretStoreArn: jsii.String("awsSecretStoreArn"), dbClusterIdentifier: jsii.String("dbClusterIdentifier"), // the properties below are optional databaseName: jsii.String("databaseName"), schema: jsii.String("schema"), }, }, }
Experimental.
type ExtendedResolverProps ¶
type ExtendedResolverProps struct { // name of the GraphQL field in the given type this resolver is attached to. // Experimental. FieldName *string `field:"required" json:"fieldName" yaml:"fieldName"` // name of the GraphQL type this resolver is attached to. // Experimental. TypeName *string `field:"required" json:"typeName" yaml:"typeName"` // The caching configuration for this resolver. // Experimental. CachingConfig *CachingConfig `field:"optional" json:"cachingConfig" yaml:"cachingConfig"` // The maximum number of elements per batch, when using batch invoke. // Experimental. MaxBatchSize *float64 `field:"optional" json:"maxBatchSize" yaml:"maxBatchSize"` // configuration of the pipeline resolver. // Experimental. PipelineConfig *[]IAppsyncFunction `field:"optional" json:"pipelineConfig" yaml:"pipelineConfig"` // The request mapping template for this resolver. // Experimental. RequestMappingTemplate MappingTemplate `field:"optional" json:"requestMappingTemplate" yaml:"requestMappingTemplate"` // The response mapping template for this resolver. // Experimental. ResponseMappingTemplate MappingTemplate `field:"optional" json:"responseMappingTemplate" yaml:"responseMappingTemplate"` // The data source this resolver is using. // Experimental. DataSource BaseDataSource `field:"optional" json:"dataSource" yaml:"dataSource"` }
Additional property for an AppSync resolver for data source reference.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" import cdk "github.com/aws/aws-cdk-go/awscdk" var appsyncFunction appsyncFunction var baseDataSource baseDataSource var mappingTemplate mappingTemplate extendedResolverProps := &extendedResolverProps{ fieldName: jsii.String("fieldName"), typeName: jsii.String("typeName"), // the properties below are optional cachingConfig: &cachingConfig{ ttl: cdk.duration.minutes(jsii.Number(30)), // the properties below are optional cachingKeys: []*string{ jsii.String("cachingKeys"), }, }, dataSource: baseDataSource, maxBatchSize: jsii.Number(123), pipelineConfig: []iAppsyncFunction{ appsyncFunction, }, requestMappingTemplate: mappingTemplate, responseMappingTemplate: mappingTemplate, }
Experimental.
type Field ¶
type Field interface { GraphqlType IField // The options for this field. // Experimental. FieldOptions() *ResolvableFieldOptions // the intermediate type linked to this attribute (i.e. an interface or an object). // Experimental. IntermediateType() IIntermediateType // property determining if this attribute is a list i.e. if true, attribute would be `[Type]`. // Experimental. IsList() *bool // property determining if this attribute is non-nullable i.e. if true, attribute would be `Type!` and this attribute must always have a value. // Experimental. IsRequired() *bool // property determining if this attribute is a non-nullable list i.e. if true, attribute would be `[ Type ]!` and this attribute's list must always have a value. // Experimental. IsRequiredList() *bool // the type of attribute. // Experimental. Type() Type // Generate the args string of this resolvable field. // Experimental. ArgsToString() *string // Generate the directives for this field. // Experimental. DirectivesToString(modes *[]AuthorizationType) *string // Generate the string for this attribute. // Experimental. ToString() *string }
Fields build upon Graphql Types and provide typing and arguments.
Example:
field := appsync.NewField(&fieldOptions{ returnType: appsync.graphqlType.string(), args: map[string]*graphqlType{ "argument": appsync.*graphqlType.string(), }, }) type := appsync.NewInterfaceType(jsii.String("Node"), &intermediateTypeOptions{ definition: map[string]iField{ "test": field, }, })
Experimental.
type FieldLogLevel ¶
type FieldLogLevel string
log-level for fields in AppSync. Experimental.
const ( // No logging. // Experimental. FieldLogLevel_NONE FieldLogLevel = "NONE" // Error logging. // Experimental. FieldLogLevel_ERROR FieldLogLevel = "ERROR" // All logging. // Experimental. FieldLogLevel_ALL FieldLogLevel = "ALL" )
type FieldOptions ¶
type FieldOptions struct { // The return type for this field. // Experimental. ReturnType GraphqlType `field:"required" json:"returnType" yaml:"returnType"` // The arguments for this field. // // i.e. type Example (first: String second: String) {} // - where 'first' and 'second' are key values for args // and 'String' is the GraphqlType. // Experimental. Args *map[string]GraphqlType `field:"optional" json:"args" yaml:"args"` // the directives for this field. // Experimental. Directives *[]Directive `field:"optional" json:"directives" yaml:"directives"` }
Properties for configuring a field.
Example:
field := appsync.NewField(&fieldOptions{ returnType: appsync.graphqlType.string(), args: map[string]*graphqlType{ "argument": appsync.*graphqlType.string(), }, }) type := appsync.NewInterfaceType(jsii.String("Node"), &intermediateTypeOptions{ definition: map[string]iField{ "test": field, }, })
Experimental.
type GraphqlApi ¶
type GraphqlApi interface { GraphqlApiBase // an unique AWS AppSync GraphQL API identifier i.e. 'lxz775lwdrgcndgz3nurvac7oa'. // Experimental. ApiId() *string // the configured API key, if present. // Experimental. ApiKey() *string // The AppSyncDomainName of the associated custom domain. // Experimental. AppSyncDomainName() *string // the ARN of the API. // Experimental. Arn() *string // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. // Experimental. Env() *awscdk.ResourceEnvironment // the URL of the endpoint created by AppSync. // Experimental. GraphqlUrl() *string // the CloudWatch Log Group for this API. // Experimental. LogGroup() awslogs.ILogGroup // The Authorization Types for this GraphQL Api. // Experimental. Modes() *[]AuthorizationType // the name of the API. // Experimental. Name() *string // The tree node. // Experimental. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. // Experimental. PhysicalName() *string // the schema attached to this api. // Experimental. Schema() Schema // The stack in which this resource is defined. // Experimental. Stack() awscdk.Stack // add a new DynamoDB data source to this API. // Experimental. AddDynamoDbDataSource(id *string, table awsdynamodb.ITable, options *DataSourceOptions) DynamoDbDataSource // add a new elasticsearch data source to this API. // Deprecated: - use `addOpenSearchDataSource`. AddElasticsearchDataSource(id *string, domain awselasticsearch.IDomain, options *DataSourceOptions) ElasticsearchDataSource // add a new http data source to this API. // Experimental. AddHttpDataSource(id *string, endpoint *string, options *HttpDataSourceOptions) HttpDataSource // add a new Lambda data source to this API. // Experimental. AddLambdaDataSource(id *string, lambdaFunction awslambda.IFunction, options *DataSourceOptions) LambdaDataSource // Add a mutation field to the schema's Mutation. CDK will create an Object Type called 'Mutation'. For example,. // // type Mutation { // fieldName: Field.returnType // }. // Experimental. AddMutation(fieldName *string, field ResolvableField) ObjectType // add a new dummy data source to this API. // // Useful for pipeline resolvers // and for backend changes that don't require a data source. // Experimental. AddNoneDataSource(id *string, options *DataSourceOptions) NoneDataSource // add a new OpenSearch data source to this API. // Experimental. AddOpenSearchDataSource(id *string, domain awsopensearchservice.IDomain, options *DataSourceOptions) OpenSearchDataSource // Add a query field to the schema's Query. CDK will create an Object Type called 'Query'. For example,. // // type Query { // fieldName: Field.returnType // }. // Experimental. AddQuery(fieldName *string, field ResolvableField) ObjectType // add a new Rds data source to this API. // Experimental. AddRdsDataSource(id *string, serverlessCluster awsrds.IServerlessCluster, secretStore awssecretsmanager.ISecret, databaseName *string, options *DataSourceOptions) RdsDataSource // Add schema dependency to a given construct. // Experimental. AddSchemaDependency(construct awscdk.CfnResource) *bool // Add a subscription field to the schema's Subscription. CDK will create an Object Type called 'Subscription'. For example,. // // type Subscription { // fieldName: Field.returnType // }. // Experimental. AddSubscription(fieldName *string, field ResolvableField) ObjectType // Escape hatch to append to Schema as desired. // // Will always result // in a newline. // Experimental. AddToSchema(addition *string, delimiter *string) // Add type to the schema. // Experimental. AddType(type_ IIntermediateType) IIntermediateType // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). // Experimental. ApplyRemovalPolicy(policy awscdk.RemovalPolicy) // creates a new resolver for this datasource and API using the given properties. // Experimental. CreateResolver(props *ExtendedResolverProps) Resolver // Experimental. GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. // Experimental. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. // Experimental. GetResourceNameAttribute(nameAttr *string) *string // Adds an IAM policy statement associated with this GraphQLApi to an IAM principal's policy. // Experimental. Grant(grantee awsiam.IGrantable, resources IamResource, actions ...*string) awsiam.Grant // Adds an IAM policy statement for Mutation access to this GraphQLApi to an IAM principal's policy. // Experimental. GrantMutation(grantee awsiam.IGrantable, fields ...*string) awsiam.Grant // Adds an IAM policy statement for Query access to this GraphQLApi to an IAM principal's policy. // Experimental. GrantQuery(grantee awsiam.IGrantable, fields ...*string) awsiam.Grant // Adds an IAM policy statement for Subscription access to this GraphQLApi to an IAM principal's policy. // Experimental. GrantSubscription(grantee awsiam.IGrantable, fields ...*string) awsiam.Grant // Returns a string representation of this construct. // Experimental. ToString() *string }
An AppSync GraphQL API.
Example:
api := appsync.NewGraphqlApi(this, jsii.String("Api"), &graphqlApiProps{ name: jsii.String("demo"), }) demo := appsync.NewObjectType(jsii.String("Demo"), &objectTypeOptions{ definition: map[string]iField{ "id": appsync.GraphqlType.string(&BaseTypeOptions{ "isRequired": jsii.Boolean(true), }), "version": appsync.GraphqlType.string(&BaseTypeOptions{ "isRequired": jsii.Boolean(true), }), }, }) api.addType(demo)
Experimental.
func NewGraphqlApi ¶
func NewGraphqlApi(scope constructs.Construct, id *string, props *GraphqlApiProps) GraphqlApi
Experimental.
type GraphqlApiAttributes ¶
type GraphqlApiAttributes struct { // an unique AWS AppSync GraphQL API identifier i.e. 'lxz775lwdrgcndgz3nurvac7oa'. // Experimental. GraphqlApiId *string `field:"required" json:"graphqlApiId" yaml:"graphqlApiId"` // the arn for the GraphQL Api. // Experimental. GraphqlApiArn *string `field:"optional" json:"graphqlApiArn" yaml:"graphqlApiArn"` }
Attributes for GraphQL imports.
Example:
var api graphqlApi var table table importedApi := appsync.graphqlApi.fromGraphqlApiAttributes(this, jsii.String("IApi"), &graphqlApiAttributes{ graphqlApiId: api.apiId, graphqlApiArn: api.arn, }) importedApi.addDynamoDbDataSource(jsii.String("TableDataSource"), table)
Experimental.
type GraphqlApiBase ¶
type GraphqlApiBase interface { awscdk.Resource IGraphqlApi // an unique AWS AppSync GraphQL API identifier i.e. 'lxz775lwdrgcndgz3nurvac7oa'. // Experimental. ApiId() *string // the ARN of the API. // Experimental. Arn() *string // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. // Experimental. Env() *awscdk.ResourceEnvironment // The tree node. // Experimental. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. // Experimental. PhysicalName() *string // The stack in which this resource is defined. // Experimental. Stack() awscdk.Stack // add a new DynamoDB data source to this API. // Experimental. AddDynamoDbDataSource(id *string, table awsdynamodb.ITable, options *DataSourceOptions) DynamoDbDataSource // add a new elasticsearch data source to this API. // Deprecated: - use `addOpenSearchDataSource`. AddElasticsearchDataSource(id *string, domain awselasticsearch.IDomain, options *DataSourceOptions) ElasticsearchDataSource // add a new http data source to this API. // Experimental. AddHttpDataSource(id *string, endpoint *string, options *HttpDataSourceOptions) HttpDataSource // add a new Lambda data source to this API. // Experimental. AddLambdaDataSource(id *string, lambdaFunction awslambda.IFunction, options *DataSourceOptions) LambdaDataSource // add a new dummy data source to this API. // // Useful for pipeline resolvers // and for backend changes that don't require a data source. // Experimental. AddNoneDataSource(id *string, options *DataSourceOptions) NoneDataSource // add a new OpenSearch data source to this API. // Experimental. AddOpenSearchDataSource(id *string, domain awsopensearchservice.IDomain, options *DataSourceOptions) OpenSearchDataSource // add a new Rds data source to this API. // Experimental. AddRdsDataSource(id *string, serverlessCluster awsrds.IServerlessCluster, secretStore awssecretsmanager.ISecret, databaseName *string, options *DataSourceOptions) RdsDataSource // Add schema dependency if not imported. // Experimental. AddSchemaDependency(construct awscdk.CfnResource) *bool // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). // Experimental. ApplyRemovalPolicy(policy awscdk.RemovalPolicy) // creates a new resolver for this datasource and API using the given properties. // Experimental. CreateResolver(props *ExtendedResolverProps) Resolver // Experimental. GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. // Experimental. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. // Experimental. GetResourceNameAttribute(nameAttr *string) *string // Returns a string representation of this construct. // Experimental. ToString() *string }
Base Class for GraphQL API. Experimental.
type GraphqlApiProps ¶
type GraphqlApiProps struct { // the name of the GraphQL API. // Experimental. Name *string `field:"required" json:"name" yaml:"name"` // Optional authorization configuration. // Experimental. AuthorizationConfig *AuthorizationConfig `field:"optional" json:"authorizationConfig" yaml:"authorizationConfig"` // The domain name configuration for the GraphQL API. // // The Route 53 hosted zone and CName DNS record must be configured in addition to this setting to // enable custom domain URL. // Experimental. DomainName *DomainOptions `field:"optional" json:"domainName" yaml:"domainName"` // Logging configuration for this api. // Experimental. LogConfig *LogConfig `field:"optional" json:"logConfig" yaml:"logConfig"` // GraphQL schema definition. Specify how you want to define your schema. // // Schema.fromFile(filePath: string) allows schema definition through schema.graphql file // Experimental. Schema Schema `field:"optional" json:"schema" yaml:"schema"` // A flag indicating whether or not X-Ray tracing is enabled for the GraphQL API. // Experimental. XrayEnabled *bool `field:"optional" json:"xrayEnabled" yaml:"xrayEnabled"` }
Properties for an AppSync GraphQL API.
Example:
api := appsync.NewGraphqlApi(this, jsii.String("Api"), &graphqlApiProps{ name: jsii.String("demo"), }) demo := appsync.NewObjectType(jsii.String("Demo"), &objectTypeOptions{ definition: map[string]iField{ "id": appsync.GraphqlType.string(&BaseTypeOptions{ "isRequired": jsii.Boolean(true), }), "version": appsync.GraphqlType.string(&BaseTypeOptions{ "isRequired": jsii.Boolean(true), }), }, }) api.addType(demo)
Experimental.
type GraphqlType ¶
type GraphqlType interface { IField // the intermediate type linked to this attribute (i.e. an interface or an object). // Experimental. IntermediateType() IIntermediateType // property determining if this attribute is a list i.e. if true, attribute would be `[Type]`. // Experimental. IsList() *bool // property determining if this attribute is non-nullable i.e. if true, attribute would be `Type!` and this attribute must always have a value. // Experimental. IsRequired() *bool // property determining if this attribute is a non-nullable list i.e. if true, attribute would be `[ Type ]!` and this attribute's list must always have a value. // Experimental. IsRequiredList() *bool // the type of attribute. // Experimental. Type() Type // Generate the arguments for this field. // Experimental. ArgsToString() *string // Generate the directives for this field. // Experimental. DirectivesToString(_modes *[]AuthorizationType) *string // Generate the string for this attribute. // Experimental. ToString() *string }
The GraphQL Types in AppSync's GraphQL.
GraphQL Types are the building blocks for object types, queries, mutations, etc. They are types like String, Int, Id or even Object Types you create.
i.e. `String`, `String!`, `[String]`, `[String!]`, `[String]!`
GraphQL Types are used to define the entirety of schema.
Example:
var api graphqlApi var dummyRequest mappingTemplate var dummyResponse mappingTemplate info := appsync.NewObjectType(jsii.String("Info"), &objectTypeOptions{ definition: map[string]iField{ "node": appsync.NewResolvableField(&ResolvableFieldOptions{ "returnType": appsync.GraphqlType.string(), "args": map[string]GraphqlType{ "id": appsync.GraphqlType.string(), }, "dataSource": api.addNoneDataSource(jsii.String("none")), "requestMappingTemplate": dummyRequest, "responseMappingTemplate": dummyResponse, }), }, })
Experimental.
func Field_AwsDate ¶
func Field_AwsDate(options *BaseTypeOptions) GraphqlType
`AWSDate` scalar type represents a valid extended `ISO 8601 Date` string.
In other words, accepts date strings in the form of `YYYY-MM-DD`. It accepts time zone offsets. Experimental.
func Field_AwsDateTime ¶
func Field_AwsDateTime(options *BaseTypeOptions) GraphqlType
`AWSDateTime` scalar type represents a valid extended `ISO 8601 DateTime` string.
In other words, accepts date strings in the form of `YYYY-MM-DDThh:mm:ss.sssZ`. It accepts time zone offsets. Experimental.
func Field_AwsEmail ¶
func Field_AwsEmail(options *BaseTypeOptions) GraphqlType
`AWSEmail` scalar type represents an email address string (i.e.`username@example.com`). Experimental.
func Field_AwsIpAddress ¶
func Field_AwsIpAddress(options *BaseTypeOptions) GraphqlType
`AWSIPAddress` scalar type respresents a valid `IPv4` of `IPv6` address string. Experimental.
func Field_AwsJson ¶
func Field_AwsJson(options *BaseTypeOptions) GraphqlType
`AWSJson` scalar type represents a JSON string. Experimental.
func Field_AwsPhone ¶
func Field_AwsPhone(options *BaseTypeOptions) GraphqlType
`AWSPhone` scalar type represents a valid phone number. Phone numbers maybe be whitespace delimited or hyphenated.
The number can specify a country code at the beginning, but is not required for US phone numbers. Experimental.
func Field_AwsTime ¶
func Field_AwsTime(options *BaseTypeOptions) GraphqlType
`AWSTime` scalar type represents a valid extended `ISO 8601 Time` string.
In other words, accepts date strings in the form of `hh:mm:ss.sss`. It accepts time zone offsets. Experimental.
func Field_AwsTimestamp ¶
func Field_AwsTimestamp(options *BaseTypeOptions) GraphqlType
`AWSTimestamp` scalar type represents the number of seconds since `1970-01-01T00:00Z`.
Timestamps are serialized and deserialized as numbers. Experimental.
func Field_AwsUrl ¶
func Field_AwsUrl(options *BaseTypeOptions) GraphqlType
`AWSURL` scalar type represetns a valid URL string.
URLs wihtout schemes or contain double slashes are considered invalid. Experimental.
func Field_Boolean ¶
func Field_Boolean(options *BaseTypeOptions) GraphqlType
`Boolean` scalar type is a boolean value: true or false. Experimental.
func Field_Float ¶
func Field_Float(options *BaseTypeOptions) GraphqlType
`Float` scalar type is a signed double-precision fractional value. Experimental.
func Field_Id ¶
func Field_Id(options *BaseTypeOptions) GraphqlType
`ID` scalar type is a unique identifier. `ID` type is serialized similar to `String`.
Often used as a key for a cache and not intended to be human-readable. Experimental.
func Field_Int ¶
func Field_Int(options *BaseTypeOptions) GraphqlType
`Int` scalar type is a signed non-fractional numerical value. Experimental.
func Field_Intermediate ¶
func Field_Intermediate(options *GraphqlTypeOptions) GraphqlType
an intermediate type to be added as an attribute (i.e. an interface or an object type). Experimental.
func Field_String ¶
func Field_String(options *BaseTypeOptions) GraphqlType
`String` scalar type is a free-form human-readable text. Experimental.
func GraphqlType_AwsDate ¶
func GraphqlType_AwsDate(options *BaseTypeOptions) GraphqlType
`AWSDate` scalar type represents a valid extended `ISO 8601 Date` string.
In other words, accepts date strings in the form of `YYYY-MM-DD`. It accepts time zone offsets. Experimental.
func GraphqlType_AwsDateTime ¶
func GraphqlType_AwsDateTime(options *BaseTypeOptions) GraphqlType
`AWSDateTime` scalar type represents a valid extended `ISO 8601 DateTime` string.
In other words, accepts date strings in the form of `YYYY-MM-DDThh:mm:ss.sssZ`. It accepts time zone offsets. Experimental.
func GraphqlType_AwsEmail ¶
func GraphqlType_AwsEmail(options *BaseTypeOptions) GraphqlType
`AWSEmail` scalar type represents an email address string (i.e.`username@example.com`). Experimental.
func GraphqlType_AwsIpAddress ¶
func GraphqlType_AwsIpAddress(options *BaseTypeOptions) GraphqlType
`AWSIPAddress` scalar type respresents a valid `IPv4` of `IPv6` address string. Experimental.
func GraphqlType_AwsJson ¶
func GraphqlType_AwsJson(options *BaseTypeOptions) GraphqlType
`AWSJson` scalar type represents a JSON string. Experimental.
func GraphqlType_AwsPhone ¶
func GraphqlType_AwsPhone(options *BaseTypeOptions) GraphqlType
`AWSPhone` scalar type represents a valid phone number. Phone numbers maybe be whitespace delimited or hyphenated.
The number can specify a country code at the beginning, but is not required for US phone numbers. Experimental.
func GraphqlType_AwsTime ¶
func GraphqlType_AwsTime(options *BaseTypeOptions) GraphqlType
`AWSTime` scalar type represents a valid extended `ISO 8601 Time` string.
In other words, accepts date strings in the form of `hh:mm:ss.sss`. It accepts time zone offsets. Experimental.
func GraphqlType_AwsTimestamp ¶
func GraphqlType_AwsTimestamp(options *BaseTypeOptions) GraphqlType
`AWSTimestamp` scalar type represents the number of seconds since `1970-01-01T00:00Z`.
Timestamps are serialized and deserialized as numbers. Experimental.
func GraphqlType_AwsUrl ¶
func GraphqlType_AwsUrl(options *BaseTypeOptions) GraphqlType
`AWSURL` scalar type represetns a valid URL string.
URLs wihtout schemes or contain double slashes are considered invalid. Experimental.
func GraphqlType_Boolean ¶
func GraphqlType_Boolean(options *BaseTypeOptions) GraphqlType
`Boolean` scalar type is a boolean value: true or false. Experimental.
func GraphqlType_Float ¶
func GraphqlType_Float(options *BaseTypeOptions) GraphqlType
`Float` scalar type is a signed double-precision fractional value. Experimental.
func GraphqlType_Id ¶
func GraphqlType_Id(options *BaseTypeOptions) GraphqlType
`ID` scalar type is a unique identifier. `ID` type is serialized similar to `String`.
Often used as a key for a cache and not intended to be human-readable. Experimental.
func GraphqlType_Int ¶
func GraphqlType_Int(options *BaseTypeOptions) GraphqlType
`Int` scalar type is a signed non-fractional numerical value. Experimental.
func GraphqlType_Intermediate ¶
func GraphqlType_Intermediate(options *GraphqlTypeOptions) GraphqlType
an intermediate type to be added as an attribute (i.e. an interface or an object type). Experimental.
func GraphqlType_String ¶
func GraphqlType_String(options *BaseTypeOptions) GraphqlType
`String` scalar type is a free-form human-readable text. Experimental.
func NewGraphqlType ¶
func NewGraphqlType(type_ Type, options *GraphqlTypeOptions) GraphqlType
Experimental.
func ResolvableField_AwsDate ¶
func ResolvableField_AwsDate(options *BaseTypeOptions) GraphqlType
`AWSDate` scalar type represents a valid extended `ISO 8601 Date` string.
In other words, accepts date strings in the form of `YYYY-MM-DD`. It accepts time zone offsets. Experimental.
func ResolvableField_AwsDateTime ¶
func ResolvableField_AwsDateTime(options *BaseTypeOptions) GraphqlType
`AWSDateTime` scalar type represents a valid extended `ISO 8601 DateTime` string.
In other words, accepts date strings in the form of `YYYY-MM-DDThh:mm:ss.sssZ`. It accepts time zone offsets. Experimental.
func ResolvableField_AwsEmail ¶
func ResolvableField_AwsEmail(options *BaseTypeOptions) GraphqlType
`AWSEmail` scalar type represents an email address string (i.e.`username@example.com`). Experimental.
func ResolvableField_AwsIpAddress ¶
func ResolvableField_AwsIpAddress(options *BaseTypeOptions) GraphqlType
`AWSIPAddress` scalar type respresents a valid `IPv4` of `IPv6` address string. Experimental.
func ResolvableField_AwsJson ¶
func ResolvableField_AwsJson(options *BaseTypeOptions) GraphqlType
`AWSJson` scalar type represents a JSON string. Experimental.
func ResolvableField_AwsPhone ¶
func ResolvableField_AwsPhone(options *BaseTypeOptions) GraphqlType
`AWSPhone` scalar type represents a valid phone number. Phone numbers maybe be whitespace delimited or hyphenated.
The number can specify a country code at the beginning, but is not required for US phone numbers. Experimental.
func ResolvableField_AwsTime ¶
func ResolvableField_AwsTime(options *BaseTypeOptions) GraphqlType
`AWSTime` scalar type represents a valid extended `ISO 8601 Time` string.
In other words, accepts date strings in the form of `hh:mm:ss.sss`. It accepts time zone offsets. Experimental.
func ResolvableField_AwsTimestamp ¶
func ResolvableField_AwsTimestamp(options *BaseTypeOptions) GraphqlType
`AWSTimestamp` scalar type represents the number of seconds since `1970-01-01T00:00Z`.
Timestamps are serialized and deserialized as numbers. Experimental.
func ResolvableField_AwsUrl ¶
func ResolvableField_AwsUrl(options *BaseTypeOptions) GraphqlType
`AWSURL` scalar type represetns a valid URL string.
URLs wihtout schemes or contain double slashes are considered invalid. Experimental.
func ResolvableField_Boolean ¶
func ResolvableField_Boolean(options *BaseTypeOptions) GraphqlType
`Boolean` scalar type is a boolean value: true or false. Experimental.
func ResolvableField_Float ¶
func ResolvableField_Float(options *BaseTypeOptions) GraphqlType
`Float` scalar type is a signed double-precision fractional value. Experimental.
func ResolvableField_Id ¶
func ResolvableField_Id(options *BaseTypeOptions) GraphqlType
`ID` scalar type is a unique identifier. `ID` type is serialized similar to `String`.
Often used as a key for a cache and not intended to be human-readable. Experimental.
func ResolvableField_Int ¶
func ResolvableField_Int(options *BaseTypeOptions) GraphqlType
`Int` scalar type is a signed non-fractional numerical value. Experimental.
func ResolvableField_Intermediate ¶
func ResolvableField_Intermediate(options *GraphqlTypeOptions) GraphqlType
an intermediate type to be added as an attribute (i.e. an interface or an object type). Experimental.
func ResolvableField_String ¶
func ResolvableField_String(options *BaseTypeOptions) GraphqlType
`String` scalar type is a free-form human-readable text. Experimental.
type GraphqlTypeOptions ¶
type GraphqlTypeOptions struct { // property determining if this attribute is a list i.e. if true, attribute would be [Type]. // Experimental. IsList *bool `field:"optional" json:"isList" yaml:"isList"` // property determining if this attribute is non-nullable i.e. if true, attribute would be Type! // Experimental. IsRequired *bool `field:"optional" json:"isRequired" yaml:"isRequired"` // property determining if this attribute is a non-nullable list i.e. if true, attribute would be [ Type ]! or if isRequired true, attribe would be [ Type! ]! // Experimental. IsRequiredList *bool `field:"optional" json:"isRequiredList" yaml:"isRequiredList"` // the intermediate type linked to this attribute. // Experimental. IntermediateType IIntermediateType `field:"optional" json:"intermediateType" yaml:"intermediateType"` }
Options for GraphQL Types.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" var intermediateType iIntermediateType graphqlTypeOptions := &graphqlTypeOptions{ intermediateType: intermediateType, isList: jsii.Boolean(false), isRequired: jsii.Boolean(false), isRequiredList: jsii.Boolean(false), }
Experimental.
type HttpDataSource ¶
type HttpDataSource interface { BackedDataSource // Experimental. Api() IGraphqlApi // Experimental. SetApi(val IGraphqlApi) // the underlying CFN data source resource. // Experimental. Ds() awsappsync.CfnDataSource // the principal of the data source to be IGrantable. // Experimental. GrantPrincipal() awsiam.IPrincipal // the name of the data source. // Experimental. Name() *string // The tree node. // Experimental. Node() constructs.Node // Experimental. ServiceRole() awsiam.IRole // Experimental. SetServiceRole(val awsiam.IRole) // creates a new appsync function for this datasource and API using the given properties. // Experimental. CreateFunction(props *BaseAppsyncFunctionProps) AppsyncFunction // creates a new resolver for this datasource and API using the given properties. // Experimental. CreateResolver(props *BaseResolverProps) Resolver // Returns a string representation of this construct. // Experimental. ToString() *string }
An AppSync datasource backed by a http endpoint.
Example:
api := appsync.NewGraphqlApi(this, jsii.String("api"), &graphqlApiProps{ name: jsii.String("api"), schema: appsync.schema.fromAsset(path.join(__dirname, jsii.String("schema.graphql"))), }) httpDs := api.addHttpDataSource(jsii.String("ds"), jsii.String("https://states.amazonaws.com"), &httpDataSourceOptions{ name: jsii.String("httpDsWithStepF"), description: jsii.String("from appsync to StepFunctions Workflow"), authorizationConfig: &awsIamConfig{ signingRegion: jsii.String("us-east-1"), signingServiceName: jsii.String("states"), }, }) httpDs.createResolver(&baseResolverProps{ typeName: jsii.String("Mutation"), fieldName: jsii.String("callStepFunction"), requestMappingTemplate: appsync.mappingTemplate.fromFile(jsii.String("request.vtl")), responseMappingTemplate: appsync.*mappingTemplate.fromFile(jsii.String("response.vtl")), })
Experimental.
func NewHttpDataSource ¶
func NewHttpDataSource(scope constructs.Construct, id *string, props *HttpDataSourceProps) HttpDataSource
Experimental.
type HttpDataSourceOptions ¶
type HttpDataSourceOptions struct { // The description of the data source. // Experimental. Description *string `field:"optional" json:"description" yaml:"description"` // The name of the data source, overrides the id given by cdk. // Experimental. Name *string `field:"optional" json:"name" yaml:"name"` // The authorization config in case the HTTP endpoint requires authorization. // Experimental. AuthorizationConfig *AwsIamConfig `field:"optional" json:"authorizationConfig" yaml:"authorizationConfig"` }
Optional configuration for Http data sources.
Example:
api := appsync.NewGraphqlApi(this, jsii.String("api"), &graphqlApiProps{ name: jsii.String("api"), schema: appsync.schema.fromAsset(path.join(__dirname, jsii.String("schema.graphql"))), }) httpDs := api.addHttpDataSource(jsii.String("ds"), jsii.String("https://states.amazonaws.com"), &httpDataSourceOptions{ name: jsii.String("httpDsWithStepF"), description: jsii.String("from appsync to StepFunctions Workflow"), authorizationConfig: &awsIamConfig{ signingRegion: jsii.String("us-east-1"), signingServiceName: jsii.String("states"), }, }) httpDs.createResolver(&baseResolverProps{ typeName: jsii.String("Mutation"), fieldName: jsii.String("callStepFunction"), requestMappingTemplate: appsync.mappingTemplate.fromFile(jsii.String("request.vtl")), responseMappingTemplate: appsync.*mappingTemplate.fromFile(jsii.String("response.vtl")), })
Experimental.
type HttpDataSourceProps ¶
type HttpDataSourceProps struct { // The API to attach this data source to. // Experimental. Api IGraphqlApi `field:"required" json:"api" yaml:"api"` // the description of the data source. // Experimental. Description *string `field:"optional" json:"description" yaml:"description"` // The name of the data source. // Experimental. Name *string `field:"optional" json:"name" yaml:"name"` // The http endpoint. // Experimental. Endpoint *string `field:"required" json:"endpoint" yaml:"endpoint"` // The authorization config in case the HTTP endpoint requires authorization. // Experimental. AuthorizationConfig *AwsIamConfig `field:"optional" json:"authorizationConfig" yaml:"authorizationConfig"` }
Properties for an AppSync http datasource.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" var graphqlApi graphqlApi httpDataSourceProps := &httpDataSourceProps{ api: graphqlApi, endpoint: jsii.String("endpoint"), // the properties below are optional authorizationConfig: &awsIamConfig{ signingRegion: jsii.String("signingRegion"), signingServiceName: jsii.String("signingServiceName"), }, description: jsii.String("description"), name: jsii.String("name"), }
Experimental.
type IAppsyncFunction ¶
type IAppsyncFunction interface { awscdk.IResource // the ARN of the AppSync function. // Experimental. FunctionArn() *string // the name of this AppSync Function. // Experimental. FunctionId() *string }
Interface for AppSync Functions. Experimental.
func AppsyncFunction_FromAppsyncFunctionAttributes ¶
func AppsyncFunction_FromAppsyncFunctionAttributes(scope constructs.Construct, id *string, attrs *AppsyncFunctionAttributes) IAppsyncFunction
Import Appsync Function from arn. Experimental.
type IField ¶
type IField interface { // Generate the arguments for this field. // Experimental. ArgsToString() *string // Generate the directives for this field. // Experimental. DirectivesToString(modes *[]AuthorizationType) *string // Generate the string for this attribute. // Experimental. ToString() *string // The options to make this field resolvable. // Experimental. FieldOptions() *ResolvableFieldOptions // the intermediate type linked to this attribute (i.e. an interface or an object). // Experimental. IntermediateType() IIntermediateType // property determining if this attribute is a list i.e. if true, attribute would be `[Type]`. // Experimental. IsList() *bool // property determining if this attribute is non-nullable i.e. if true, attribute would be `Type!` and this attribute must always have a value. // Experimental. IsRequired() *bool // property determining if this attribute is a non-nullable list i.e. if true, attribute would be `[ Type ]!` and this attribute's list must always have a value. // Experimental. IsRequiredList() *bool // the type of attribute. // Experimental. Type() Type }
A Graphql Field. Experimental.
type IGraphqlApi ¶
type IGraphqlApi interface { awscdk.IResource // add a new DynamoDB data source to this API. // Experimental. AddDynamoDbDataSource(id *string, table awsdynamodb.ITable, options *DataSourceOptions) DynamoDbDataSource // add a new elasticsearch data source to this API. // Deprecated: - use `addOpenSearchDataSource`. AddElasticsearchDataSource(id *string, domain awselasticsearch.IDomain, options *DataSourceOptions) ElasticsearchDataSource // add a new http data source to this API. // Experimental. AddHttpDataSource(id *string, endpoint *string, options *HttpDataSourceOptions) HttpDataSource // add a new Lambda data source to this API. // Experimental. AddLambdaDataSource(id *string, lambdaFunction awslambda.IFunction, options *DataSourceOptions) LambdaDataSource // add a new dummy data source to this API. // // Useful for pipeline resolvers // and for backend changes that don't require a data source. // Experimental. AddNoneDataSource(id *string, options *DataSourceOptions) NoneDataSource // Add a new OpenSearch data source to this API. // Experimental. AddOpenSearchDataSource(id *string, domain awsopensearchservice.IDomain, options *DataSourceOptions) OpenSearchDataSource // add a new Rds data source to this API. // Experimental. AddRdsDataSource(id *string, serverlessCluster awsrds.IServerlessCluster, secretStore awssecretsmanager.ISecret, databaseName *string, options *DataSourceOptions) RdsDataSource // Add schema dependency if not imported. // Experimental. AddSchemaDependency(construct awscdk.CfnResource) *bool // creates a new resolver for this datasource and API using the given properties. // Experimental. CreateResolver(props *ExtendedResolverProps) Resolver // an unique AWS AppSync GraphQL API identifier i.e. 'lxz775lwdrgcndgz3nurvac7oa'. // Experimental. ApiId() *string // the ARN of the API. // Experimental. Arn() *string }
Interface for GraphQL. Experimental.
func GraphqlApi_FromGraphqlApiAttributes ¶
func GraphqlApi_FromGraphqlApiAttributes(scope constructs.Construct, id *string, attrs *GraphqlApiAttributes) IGraphqlApi
Import a GraphQL API through this function. Experimental.
type IIntermediateType ¶
type IIntermediateType interface { // Add a field to this Intermediate Type. // Experimental. AddField(options *AddFieldOptions) // Create an GraphQL Type representing this Intermediate Type. // Experimental. Attribute(options *BaseTypeOptions) GraphqlType // Generate the string of this object type. // Experimental. ToString() *string // the attributes of this type. // Experimental. Definition() *map[string]IField // the directives for this object type. // Experimental. Directives() *[]Directive // The Interface Types this Intermediate Type implements. // Experimental. InterfaceTypes() *[]InterfaceType // the intermediate type linked to this attribute (i.e. an interface or an object). // Experimental. IntermediateType() IIntermediateType // the name of this type. // Experimental. Name() *string // The resolvers linked to this data source. // Experimental. Resolvers() *[]Resolver // Experimental. SetResolvers(r *[]Resolver) }
Intermediate Types are types that includes a certain set of fields that define the entirety of your schema. Experimental.
type IamResource ¶
type IamResource interface { // Return the Resource ARN. // Experimental. ResourceArns(api GraphqlApi) *[]*string }
A class used to generate resource arns for AppSync.
Example:
var api graphqlApi role := iam.NewRole(this, jsii.String("Role"), &roleProps{ assumedBy: iam.NewServicePrincipal(jsii.String("lambda.amazonaws.com")), }) api.grant(role, appsync.iamResource.custom(jsii.String("types/Mutation/fields/updateExample")), jsii.String("appsync:GraphQL"))
Experimental.
func IamResource_All ¶
func IamResource_All() IamResource
Generate the resource names that accepts all types: `*`. Experimental.
func IamResource_Custom ¶
func IamResource_Custom(arns ...*string) IamResource
Generate the resource names given custom arns. Experimental.
func IamResource_OfType ¶
func IamResource_OfType(type_ *string, fields ...*string) IamResource
Generate the resource names given a type and fields. Experimental.
type InputType ¶
type InputType interface { IIntermediateType // the attributes of this type. // Experimental. Definition() *map[string]IField // the authorization modes for this intermediate type. // Experimental. Modes() *[]AuthorizationType // Experimental. SetModes(val *[]AuthorizationType) // the name of this type. // Experimental. Name() *string // Add a field to this Input Type. // // Input Types must have both fieldName and field options. // Experimental. AddField(options *AddFieldOptions) // Create a GraphQL Type representing this Input Type. // Experimental. Attribute(options *BaseTypeOptions) GraphqlType // Generate the string of this input type. // Experimental. ToString() *string }
Input Types are abstract types that define complex objects.
They are used in arguments to represent.
Example:
var api graphqlApi review := appsync.NewInputType(jsii.String("Review"), &intermediateTypeOptions{ definition: map[string]iField{ "stars": appsync.GraphqlType.int(&BaseTypeOptions{ "isRequired": jsii.Boolean(true), }), "commentary": appsync.GraphqlType.string(), }, }) api.addType(review)
Experimental.
func NewInputType ¶
func NewInputType(name *string, props *IntermediateTypeOptions) InputType
Experimental.
type InterfaceType ¶
type InterfaceType interface { IIntermediateType // the attributes of this type. // Experimental. Definition() *map[string]IField // the directives for this object type. // Experimental. Directives() *[]Directive // the authorization modes for this intermediate type. // Experimental. Modes() *[]AuthorizationType // Experimental. SetModes(val *[]AuthorizationType) // the name of this type. // Experimental. Name() *string // Add a field to this Interface Type. // // Interface Types must have both fieldName and field options. // Experimental. AddField(options *AddFieldOptions) // Create a GraphQL Type representing this Intermediate Type. // Experimental. Attribute(options *BaseTypeOptions) GraphqlType // Generate the string of this object type. // Experimental. ToString() *string }
Interface Types are abstract types that includes a certain set of fields that other types must include if they implement the interface.
Example:
node := appsync.NewInterfaceType(jsii.String("Node"), &intermediateTypeOptions{ definition: map[string]iField{ "id": appsync.GraphqlType.string(&BaseTypeOptions{ "isRequired": jsii.Boolean(true), }), }, }) demo := appsync.NewObjectType(jsii.String("Demo"), &objectTypeOptions{ interfaceTypes: []interfaceType{ node, }, definition: map[string]*iField{ "version": appsync.GraphqlType.string(&BaseTypeOptions{ "isRequired": jsii.Boolean(true), }), }, })
Experimental.
func NewInterfaceType ¶
func NewInterfaceType(name *string, props *IntermediateTypeOptions) InterfaceType
Experimental.
type IntermediateTypeOptions ¶
type IntermediateTypeOptions struct { // the attributes of this type. // Experimental. Definition *map[string]IField `field:"required" json:"definition" yaml:"definition"` // the directives for this object type. // Experimental. Directives *[]Directive `field:"optional" json:"directives" yaml:"directives"` }
Properties for configuring an Intermediate Type.
Example:
node := appsync.NewInterfaceType(jsii.String("Node"), &intermediateTypeOptions{ definition: map[string]iField{ "id": appsync.GraphqlType.string(&BaseTypeOptions{ "isRequired": jsii.Boolean(true), }), }, }) demo := appsync.NewObjectType(jsii.String("Demo"), &objectTypeOptions{ interfaceTypes: []interfaceType{ node, }, definition: map[string]*iField{ "version": appsync.GraphqlType.string(&BaseTypeOptions{ "isRequired": jsii.Boolean(true), }), }, })
Experimental.
type KeyCondition ¶
type KeyCondition interface { // Conjunction between two conditions. // Experimental. And(keyCond KeyCondition) KeyCondition // Renders the key condition to a VTL string. // Experimental. RenderTemplate() *string }
Factory class for DynamoDB key conditions.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" keyCondition := appsync_alpha.keyCondition.beginsWith(jsii.String("keyName"), jsii.String("arg"))
Experimental.
func KeyCondition_BeginsWith ¶
func KeyCondition_BeginsWith(keyName *string, arg *string) KeyCondition
Condition (k, arg).
True if the key attribute k begins with the Query argument. Experimental.
func KeyCondition_Between ¶
func KeyCondition_Between(keyName *string, arg1 *string, arg2 *string) KeyCondition
Condition k BETWEEN arg1 AND arg2, true if k >= arg1 and k <= arg2. Experimental.
func KeyCondition_Eq ¶
func KeyCondition_Eq(keyName *string, arg *string) KeyCondition
Condition k = arg, true if the key attribute k is equal to the Query argument. Experimental.
func KeyCondition_Ge ¶
func KeyCondition_Ge(keyName *string, arg *string) KeyCondition
Condition k >= arg, true if the key attribute k is greater or equal to the Query argument. Experimental.
func KeyCondition_Gt ¶
func KeyCondition_Gt(keyName *string, arg *string) KeyCondition
Condition k > arg, true if the key attribute k is greater than the the Query argument. Experimental.
func KeyCondition_Le ¶
func KeyCondition_Le(keyName *string, arg *string) KeyCondition
Condition k <= arg, true if the key attribute k is less than or equal to the Query argument. Experimental.
func KeyCondition_Lt ¶
func KeyCondition_Lt(keyName *string, arg *string) KeyCondition
Condition k < arg, true if the key attribute k is less than the Query argument. Experimental.
type LambdaAuthorizerConfig ¶
type LambdaAuthorizerConfig struct { // The authorizer lambda function. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html // // Experimental. Handler awslambda.IFunction `field:"required" json:"handler" yaml:"handler"` // How long the results are cached. // // Disable caching by setting this to 0. // Experimental. ResultsCacheTtl awscdk.Duration `field:"optional" json:"resultsCacheTtl" yaml:"resultsCacheTtl"` // A regular expression for validation of tokens before the Lambda function is called. // Experimental. ValidationRegex *string `field:"optional" json:"validationRegex" yaml:"validationRegex"` }
Configuration for Lambda authorization in AppSync.
Note that you can only have a single AWS Lambda function configured to authorize your API.
Example:
import lambda "github.com/aws/aws-cdk-go/awscdk" var authFunction function appsync.NewGraphqlApi(this, jsii.String("api"), &graphqlApiProps{ name: jsii.String("api"), schema: appsync.schema.fromAsset(path.join(__dirname, jsii.String("appsync.test.graphql"))), authorizationConfig: &authorizationConfig{ defaultAuthorization: &authorizationMode{ authorizationType: appsync.authorizationType_LAMBDA, lambdaAuthorizerConfig: &lambdaAuthorizerConfig{ handler: authFunction, }, }, }, })
Experimental.
type LambdaDataSource ¶
type LambdaDataSource interface { BackedDataSource // Experimental. Api() IGraphqlApi // Experimental. SetApi(val IGraphqlApi) // the underlying CFN data source resource. // Experimental. Ds() awsappsync.CfnDataSource // the principal of the data source to be IGrantable. // Experimental. GrantPrincipal() awsiam.IPrincipal // the name of the data source. // Experimental. Name() *string // The tree node. // Experimental. Node() constructs.Node // Experimental. ServiceRole() awsiam.IRole // Experimental. SetServiceRole(val awsiam.IRole) // creates a new appsync function for this datasource and API using the given properties. // Experimental. CreateFunction(props *BaseAppsyncFunctionProps) AppsyncFunction // creates a new resolver for this datasource and API using the given properties. // Experimental. CreateResolver(props *BaseResolverProps) Resolver // Returns a string representation of this construct. // Experimental. ToString() *string }
An AppSync datasource backed by a Lambda function.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var function_ function var graphqlApi graphqlApi var role role lambdaDataSource := appsync_alpha.NewLambdaDataSource(this, jsii.String("MyLambdaDataSource"), &lambdaDataSourceProps{ api: graphqlApi, lambdaFunction: function_, // the properties below are optional description: jsii.String("description"), name: jsii.String("name"), serviceRole: role, })
Experimental.
func NewLambdaDataSource ¶
func NewLambdaDataSource(scope constructs.Construct, id *string, props *LambdaDataSourceProps) LambdaDataSource
Experimental.
type LambdaDataSourceProps ¶
type LambdaDataSourceProps struct { // The API to attach this data source to. // Experimental. Api IGraphqlApi `field:"required" json:"api" yaml:"api"` // the description of the data source. // Experimental. Description *string `field:"optional" json:"description" yaml:"description"` // The name of the data source. // Experimental. Name *string `field:"optional" json:"name" yaml:"name"` // The IAM service role to be assumed by AppSync to interact with the data source. // Experimental. ServiceRole awsiam.IRole `field:"optional" json:"serviceRole" yaml:"serviceRole"` // The Lambda function to call to interact with this data source. // Experimental. LambdaFunction awslambda.IFunction `field:"required" json:"lambdaFunction" yaml:"lambdaFunction"` }
Properties for an AppSync Lambda datasource.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var function_ function var graphqlApi graphqlApi var role role lambdaDataSourceProps := &lambdaDataSourceProps{ api: graphqlApi, lambdaFunction: function_, // the properties below are optional description: jsii.String("description"), name: jsii.String("name"), serviceRole: role, }
Experimental.
type LogConfig ¶
type LogConfig struct { // exclude verbose content. // Experimental. ExcludeVerboseContent interface{} `field:"optional" json:"excludeVerboseContent" yaml:"excludeVerboseContent"` // log level for fields. // Experimental. FieldLogLevel FieldLogLevel `field:"optional" json:"fieldLogLevel" yaml:"fieldLogLevel"` // The number of days log events are kept in CloudWatch Logs. // // By default AppSync keeps the logs infinitely. When updating this property, // unsetting it doesn't remove the log retention policy. // To remove the retention policy, set the value to `INFINITE`. // Experimental. Retention awslogs.RetentionDays `field:"optional" json:"retention" yaml:"retention"` // The role for CloudWatch Logs. // Experimental. Role awsiam.IRole `field:"optional" json:"role" yaml:"role"` }
Logging configuration for AppSync.
Example:
import logs "github.com/aws/aws-cdk-go/awscdk" logConfig := &logConfig{ retention: logs.retentionDays_ONE_WEEK, } appsync.NewGraphqlApi(this, jsii.String("api"), &graphqlApiProps{ authorizationConfig: &authorizationConfig{ }, name: jsii.String("myApi"), schema: appsync.schema.fromAsset(path.join(__dirname, jsii.String("myApi.graphql"))), logConfig: logConfig, })
Experimental.
type MappingTemplate ¶
type MappingTemplate interface { // this is called to render the mapping template to a VTL string. // Experimental. RenderTemplate() *string }
MappingTemplates for AppSync resolvers.
Example:
var dummyRequest mappingTemplate var dummyResponse mappingTemplate api := appsync.NewGraphqlApi(this, jsii.String("Api"), &graphqlApiProps{ name: jsii.String("demo"), }) objectTypes := []interfaceType{ node, filmNode, } filmConnections := generateEdgeAndConnection(filmNode) api.addQuery(jsii.String("allFilms"), appsync.NewResolvableField(&resolvableFieldOptions{ returnType: filmConnections.connection.attribute(), args: args, dataSource: api.addNoneDataSource(jsii.String("none")), requestMappingTemplate: dummyRequest, responseMappingTemplate: dummyResponse, })) api.addType(node) api.addType(filmNode) api.addType(filmConnections.edge) api.addType(filmConnections.connection)
Experimental.
func MappingTemplate_DynamoDbDeleteItem ¶
func MappingTemplate_DynamoDbDeleteItem(keyName *string, idArg *string) MappingTemplate
Mapping template to delete a single item from a DynamoDB table. Experimental.
func MappingTemplate_DynamoDbGetItem ¶
func MappingTemplate_DynamoDbGetItem(keyName *string, idArg *string, consistentRead *bool) MappingTemplate
Mapping template to get a single item from a DynamoDB table. Experimental.
func MappingTemplate_DynamoDbPutItem ¶
func MappingTemplate_DynamoDbPutItem(key PrimaryKey, values AttributeValues) MappingTemplate
Mapping template to save a single item to a DynamoDB table. Experimental.
func MappingTemplate_DynamoDbQuery ¶
func MappingTemplate_DynamoDbQuery(cond KeyCondition, indexName *string, consistentRead *bool) MappingTemplate
Mapping template to query a set of items from a DynamoDB table. Experimental.
func MappingTemplate_DynamoDbResultItem ¶
func MappingTemplate_DynamoDbResultItem() MappingTemplate
Mapping template for a single result item from DynamoDB. Experimental.
func MappingTemplate_DynamoDbResultList ¶
func MappingTemplate_DynamoDbResultList() MappingTemplate
Mapping template for a result list from DynamoDB. Experimental.
func MappingTemplate_DynamoDbScanTable ¶
func MappingTemplate_DynamoDbScanTable(consistentRead *bool) MappingTemplate
Mapping template to scan a DynamoDB table to fetch all entries. Experimental.
func MappingTemplate_FromFile ¶
func MappingTemplate_FromFile(fileName *string) MappingTemplate
Create a mapping template from the given file. Experimental.
func MappingTemplate_FromString ¶
func MappingTemplate_FromString(template *string) MappingTemplate
Create a mapping template from the given string. Experimental.
func MappingTemplate_LambdaRequest ¶
func MappingTemplate_LambdaRequest(payload *string, operation *string) MappingTemplate
Mapping template to invoke a Lambda function. Experimental.
func MappingTemplate_LambdaResult ¶
func MappingTemplate_LambdaResult() MappingTemplate
Mapping template to return the Lambda result to the caller. Experimental.
type NoneDataSource ¶
type NoneDataSource interface { BaseDataSource // Experimental. Api() IGraphqlApi // Experimental. SetApi(val IGraphqlApi) // the underlying CFN data source resource. // Experimental. Ds() awsappsync.CfnDataSource // the name of the data source. // Experimental. Name() *string // The tree node. // Experimental. Node() constructs.Node // Experimental. ServiceRole() awsiam.IRole // Experimental. SetServiceRole(val awsiam.IRole) // creates a new appsync function for this datasource and API using the given properties. // Experimental. CreateFunction(props *BaseAppsyncFunctionProps) AppsyncFunction // creates a new resolver for this datasource and API using the given properties. // Experimental. CreateResolver(props *BaseResolverProps) Resolver // Returns a string representation of this construct. // Experimental. ToString() *string }
An AppSync dummy datasource.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" var graphqlApi graphqlApi noneDataSource := appsync_alpha.NewNoneDataSource(this, jsii.String("MyNoneDataSource"), &noneDataSourceProps{ api: graphqlApi, // the properties below are optional description: jsii.String("description"), name: jsii.String("name"), })
Experimental.
func NewNoneDataSource ¶
func NewNoneDataSource(scope constructs.Construct, id *string, props *NoneDataSourceProps) NoneDataSource
Experimental.
type NoneDataSourceProps ¶
type NoneDataSourceProps struct { // The API to attach this data source to. // Experimental. Api IGraphqlApi `field:"required" json:"api" yaml:"api"` // the description of the data source. // Experimental. Description *string `field:"optional" json:"description" yaml:"description"` // The name of the data source. // Experimental. Name *string `field:"optional" json:"name" yaml:"name"` }
Properties for an AppSync dummy datasource.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" var graphqlApi graphqlApi noneDataSourceProps := &noneDataSourceProps{ api: graphqlApi, // the properties below are optional description: jsii.String("description"), name: jsii.String("name"), }
Experimental.
type ObjectType ¶
type ObjectType interface { InterfaceType IIntermediateType // the attributes of this type. // Experimental. Definition() *map[string]IField // the directives for this object type. // Experimental. Directives() *[]Directive // The Interface Types this Object Type implements. // Experimental. InterfaceTypes() *[]InterfaceType // the authorization modes for this intermediate type. // Experimental. Modes() *[]AuthorizationType // Experimental. SetModes(val *[]AuthorizationType) // the name of this type. // Experimental. Name() *string // The resolvers linked to this data source. // Experimental. Resolvers() *[]Resolver // Experimental. SetResolvers(val *[]Resolver) // Add a field to this Object Type. // // Object Types must have both fieldName and field options. // Experimental. AddField(options *AddFieldOptions) // Create a GraphQL Type representing this Intermediate Type. // Experimental. Attribute(options *BaseTypeOptions) GraphqlType // Generate the resolvers linked to this Object Type. // Experimental. GenerateResolver(api IGraphqlApi, fieldName *string, options *ResolvableFieldOptions) Resolver // Generate the string of this object type. // Experimental. ToString() *string }
Object Types are types declared by you.
Example:
var api graphqlApi var dummyRequest mappingTemplate var dummyResponse mappingTemplate info := appsync.NewObjectType(jsii.String("Info"), &objectTypeOptions{ definition: map[string]iField{ "node": appsync.NewResolvableField(&ResolvableFieldOptions{ "returnType": appsync.GraphqlType.string(), "args": map[string]GraphqlType{ "id": appsync.GraphqlType.string(), }, "dataSource": api.addNoneDataSource(jsii.String("none")), "requestMappingTemplate": dummyRequest, "responseMappingTemplate": dummyResponse, }), }, })
Experimental.
func NewObjectType ¶
func NewObjectType(name *string, props *ObjectTypeOptions) ObjectType
Experimental.
type ObjectTypeOptions ¶
type ObjectTypeOptions struct { // the attributes of this type. // Experimental. Definition *map[string]IField `field:"required" json:"definition" yaml:"definition"` // the directives for this object type. // Experimental. Directives *[]Directive `field:"optional" json:"directives" yaml:"directives"` // The Interface Types this Object Type implements. // Experimental. InterfaceTypes *[]InterfaceType `field:"optional" json:"interfaceTypes" yaml:"interfaceTypes"` }
Properties for configuring an Object Type.
Example:
var api graphqlApi var dummyRequest mappingTemplate var dummyResponse mappingTemplate info := appsync.NewObjectType(jsii.String("Info"), &objectTypeOptions{ definition: map[string]iField{ "node": appsync.NewResolvableField(&ResolvableFieldOptions{ "returnType": appsync.GraphqlType.string(), "args": map[string]GraphqlType{ "id": appsync.GraphqlType.string(), }, "dataSource": api.addNoneDataSource(jsii.String("none")), "requestMappingTemplate": dummyRequest, "responseMappingTemplate": dummyResponse, }), }, })
Experimental.
type OpenIdConnectConfig ¶
type OpenIdConnectConfig struct { // The issuer for the OIDC configuration. // // The issuer returned by discovery must exactly match the value of `iss` in the OIDC token. // Experimental. OidcProvider *string `field:"required" json:"oidcProvider" yaml:"oidcProvider"` // The client identifier of the Relying party at the OpenID identity provider. // // A regular expression can be specified so AppSync can validate against multiple client identifiers at a time. // // Example: // -"ABCD|CDEF" // // Experimental. ClientId *string `field:"optional" json:"clientId" yaml:"clientId"` // The number of milliseconds an OIDC token is valid after being authenticated by OIDC provider. // // `auth_time` claim in OIDC token is required for this validation to work. // Experimental. TokenExpiryFromAuth *float64 `field:"optional" json:"tokenExpiryFromAuth" yaml:"tokenExpiryFromAuth"` // The number of milliseconds an OIDC token is valid after being issued to a user. // // This validation uses `iat` claim of OIDC token. // Experimental. TokenExpiryFromIssue *float64 `field:"optional" json:"tokenExpiryFromIssue" yaml:"tokenExpiryFromIssue"` }
Configuration for OpenID Connect authorization in AppSync.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" openIdConnectConfig := &openIdConnectConfig{ oidcProvider: jsii.String("oidcProvider"), // the properties below are optional clientId: jsii.String("clientId"), tokenExpiryFromAuth: jsii.Number(123), tokenExpiryFromIssue: jsii.Number(123), }
Experimental.
type OpenSearchDataSource ¶
type OpenSearchDataSource interface { BackedDataSource // Experimental. Api() IGraphqlApi // Experimental. SetApi(val IGraphqlApi) // the underlying CFN data source resource. // Experimental. Ds() awsappsync.CfnDataSource // the principal of the data source to be IGrantable. // Experimental. GrantPrincipal() awsiam.IPrincipal // the name of the data source. // Experimental. Name() *string // The tree node. // Experimental. Node() constructs.Node // Experimental. ServiceRole() awsiam.IRole // Experimental. SetServiceRole(val awsiam.IRole) // creates a new appsync function for this datasource and API using the given properties. // Experimental. CreateFunction(props *BaseAppsyncFunctionProps) AppsyncFunction // creates a new resolver for this datasource and API using the given properties. // Experimental. CreateResolver(props *BaseResolverProps) Resolver // Returns a string representation of this construct. // Experimental. ToString() *string }
An Appsync datasource backed by OpenSearch.
Example:
import opensearch "github.com/aws/aws-cdk-go/awscdk" var api graphqlApi user := iam.NewUser(this, jsii.String("User")) domain := opensearch.NewDomain(this, jsii.String("Domain"), &domainProps{ version: opensearch.engineVersion_OPENSEARCH_1_3(), removalPolicy: awscdk.RemovalPolicy_DESTROY, fineGrainedAccessControl: &advancedSecurityOptions{ masterUserArn: user.userArn, }, encryptionAtRest: &encryptionAtRestOptions{ enabled: jsii.Boolean(true), }, nodeToNodeEncryption: jsii.Boolean(true), enforceHttps: jsii.Boolean(true), }) ds := api.addOpenSearchDataSource(jsii.String("ds"), domain) ds.createResolver(&baseResolverProps{ typeName: jsii.String("Query"), fieldName: jsii.String("getTests"), requestMappingTemplate: appsync.mappingTemplate.fromString(jSON.stringify(map[string]interface{}{ "version": jsii.String("2017-02-28"), "operation": jsii.String("GET"), "path": jsii.String("/id/post/_search"), "params": map[string]map[string]interface{}{ "headers": map[string]interface{}{ }, "queryString": map[string]interface{}{ }, "body": map[string]*f64{ "from": jsii.Number(0), "size": jsii.Number(50), }, }, })), responseMappingTemplate: appsync.*mappingTemplate.fromString(jsii.String("[\n #foreach($entry in $context.result.hits.hits)\n #if( $velocityCount > 1 ) , #end\n $utils.toJson($entry.get(\"_source\"))\n #end\n ]")), })
Experimental.
func NewOpenSearchDataSource ¶
func NewOpenSearchDataSource(scope constructs.Construct, id *string, props *OpenSearchDataSourceProps) OpenSearchDataSource
Experimental.
type OpenSearchDataSourceProps ¶
type OpenSearchDataSourceProps struct { // The API to attach this data source to. // Experimental. Api IGraphqlApi `field:"required" json:"api" yaml:"api"` // the description of the data source. // Experimental. Description *string `field:"optional" json:"description" yaml:"description"` // The name of the data source. // Experimental. Name *string `field:"optional" json:"name" yaml:"name"` // The IAM service role to be assumed by AppSync to interact with the data source. // Experimental. ServiceRole awsiam.IRole `field:"optional" json:"serviceRole" yaml:"serviceRole"` // The OpenSearch domain containing the endpoint for the data source. // Experimental. Domain awsopensearchservice.IDomain `field:"required" json:"domain" yaml:"domain"` }
Properties for the OpenSearch Data Source.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var domain domain var graphqlApi graphqlApi var role role openSearchDataSourceProps := &openSearchDataSourceProps{ api: graphqlApi, domain: domain, // the properties below are optional description: jsii.String("description"), name: jsii.String("name"), serviceRole: role, }
Experimental.
type PartitionKey ¶
type PartitionKey interface { PrimaryKey // Experimental. Pkey() Assign // Renders the key assignment to a VTL string. // Experimental. RenderTemplate() *string // Allows assigning a value to the sort key. // Experimental. Sort(key *string) SortKeyStep }
Specifies the assignment to the partition key.
It can be enhanced with the assignment of the sort key.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" var assign assign partitionKey := appsync_alpha.NewPartitionKey(assign)
Experimental.
type PartitionKeyStep ¶
type PartitionKeyStep interface { // Assign an auto-generated value to the partition key. // Experimental. Auto() PartitionKey // Assign an auto-generated value to the partition key. // Experimental. Is(val *string) PartitionKey }
Utility class to allow assigning a value or an auto-generated id to a partition key.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" partitionKeyStep := appsync_alpha.NewPartitionKeyStep(jsii.String("key"))
Experimental.
func PartitionKey_Partition ¶
func PartitionKey_Partition(key *string) PartitionKeyStep
Allows assigning a value to the partition key. Experimental.
func PrimaryKey_Partition ¶
func PrimaryKey_Partition(key *string) PartitionKeyStep
Allows assigning a value to the partition key. Experimental.
type PrimaryKey ¶
type PrimaryKey interface { // Experimental. Pkey() Assign // Renders the key assignment to a VTL string. // Experimental. RenderTemplate() *string }
Specifies the assignment to the primary key.
It either contains the full primary key or only the partition key.
Example:
api := appsync.NewGraphqlApi(this, jsii.String("Api"), &graphqlApiProps{ name: jsii.String("demo"), schema: appsync.schema.fromAsset(path.join(__dirname, jsii.String("schema.graphql"))), authorizationConfig: &authorizationConfig{ defaultAuthorization: &authorizationMode{ authorizationType: appsync.authorizationType_IAM, }, }, xrayEnabled: jsii.Boolean(true), }) demoTable := dynamodb.NewTable(this, jsii.String("DemoTable"), &tableProps{ partitionKey: &attribute{ name: jsii.String("id"), type: dynamodb.attributeType_STRING, }, }) demoDS := api.addDynamoDbDataSource(jsii.String("demoDataSource"), demoTable) // Resolver for the Query "getDemos" that scans the DynamoDb table and returns the entire list. // Resolver Mapping Template Reference: // https://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference-dynamodb.html demoDS.createResolver(&baseResolverProps{ typeName: jsii.String("Query"), fieldName: jsii.String("getDemos"), requestMappingTemplate: appsync.mappingTemplate.dynamoDbScanTable(), responseMappingTemplate: appsync.*mappingTemplate.dynamoDbResultList(), }) // Resolver for the Mutation "addDemo" that puts the item into the DynamoDb table. demoDS.createResolver(&baseResolverProps{ typeName: jsii.String("Mutation"), fieldName: jsii.String("addDemo"), requestMappingTemplate: appsync.*mappingTemplate.dynamoDbPutItem(appsync.primaryKey.partition(jsii.String("id")).auto(), appsync.values.projecting(jsii.String("input"))), responseMappingTemplate: appsync.*mappingTemplate.dynamoDbResultItem(), }) //To enable DynamoDB read consistency with the `MappingTemplate`: demoDS.createResolver(&baseResolverProps{ typeName: jsii.String("Query"), fieldName: jsii.String("getDemosConsistent"), requestMappingTemplate: appsync.*mappingTemplate.dynamoDbScanTable(jsii.Boolean(true)), responseMappingTemplate: appsync.*mappingTemplate.dynamoDbResultList(), })
Experimental.
type RdsDataSource ¶
type RdsDataSource interface { BackedDataSource // Experimental. Api() IGraphqlApi // Experimental. SetApi(val IGraphqlApi) // the underlying CFN data source resource. // Experimental. Ds() awsappsync.CfnDataSource // the principal of the data source to be IGrantable. // Experimental. GrantPrincipal() awsiam.IPrincipal // the name of the data source. // Experimental. Name() *string // The tree node. // Experimental. Node() constructs.Node // Experimental. ServiceRole() awsiam.IRole // Experimental. SetServiceRole(val awsiam.IRole) // creates a new appsync function for this datasource and API using the given properties. // Experimental. CreateFunction(props *BaseAppsyncFunctionProps) AppsyncFunction // creates a new resolver for this datasource and API using the given properties. // Experimental. CreateResolver(props *BaseResolverProps) Resolver // Returns a string representation of this construct. // Experimental. ToString() *string }
An AppSync datasource backed by RDS.
Example:
// Build a data source for AppSync to access the database. var api graphqlApi // Create username and password secret for DB Cluster secret := rds.NewDatabaseSecret(this, jsii.String("AuroraSecret"), &databaseSecretProps{ username: jsii.String("clusteradmin"), }) // The VPC to place the cluster in vpc := ec2.NewVpc(this, jsii.String("AuroraVpc")) // Create the serverless cluster, provide all values needed to customise the database. cluster := rds.NewServerlessCluster(this, jsii.String("AuroraCluster"), &serverlessClusterProps{ engine: rds.databaseClusterEngine_AURORA_MYSQL(), vpc: vpc, credentials: map[string]*string{ "username": jsii.String("clusteradmin"), }, clusterIdentifier: jsii.String("db-endpoint-test"), defaultDatabaseName: jsii.String("demos"), }) rdsDS := api.addRdsDataSource(jsii.String("rds"), cluster, secret, jsii.String("demos")) // Set up a resolver for an RDS query. rdsDS.createResolver(&baseResolverProps{ typeName: jsii.String("Query"), fieldName: jsii.String("getDemosRds"), requestMappingTemplate: appsync.mappingTemplate.fromString(jsii.String("\n {\n \"version\": \"2018-05-29\",\n \"statements\": [\n \"SELECT * FROM demos\"\n ]\n }\n ")), responseMappingTemplate: appsync.*mappingTemplate.fromString(jsii.String("\n $utils.toJson($utils.rds.toJsonObject($ctx.result)[0])\n ")), }) // Set up a resolver for an RDS mutation. rdsDS.createResolver(&baseResolverProps{ typeName: jsii.String("Mutation"), fieldName: jsii.String("addDemoRds"), requestMappingTemplate: appsync.*mappingTemplate.fromString(jsii.String("\n {\n \"version\": \"2018-05-29\",\n \"statements\": [\n \"INSERT INTO demos VALUES (:id, :version)\",\n \"SELECT * WHERE id = :id\"\n ],\n \"variableMap\": {\n \":id\": $util.toJson($util.autoId()),\n \":version\": $util.toJson($ctx.args.version)\n }\n }\n ")), responseMappingTemplate: appsync.*mappingTemplate.fromString(jsii.String("\n $utils.toJson($utils.rds.toJsonObject($ctx.result)[1][0])\n ")), })
Experimental.
func NewRdsDataSource ¶
func NewRdsDataSource(scope constructs.Construct, id *string, props *RdsDataSourceProps) RdsDataSource
Experimental.
type RdsDataSourceProps ¶
type RdsDataSourceProps struct { // The API to attach this data source to. // Experimental. Api IGraphqlApi `field:"required" json:"api" yaml:"api"` // the description of the data source. // Experimental. Description *string `field:"optional" json:"description" yaml:"description"` // The name of the data source. // Experimental. Name *string `field:"optional" json:"name" yaml:"name"` // The IAM service role to be assumed by AppSync to interact with the data source. // Experimental. ServiceRole awsiam.IRole `field:"optional" json:"serviceRole" yaml:"serviceRole"` // The secret containing the credentials for the database. // Experimental. SecretStore awssecretsmanager.ISecret `field:"required" json:"secretStore" yaml:"secretStore"` // The serverless cluster to call to interact with this data source. // Experimental. ServerlessCluster awsrds.IServerlessCluster `field:"required" json:"serverlessCluster" yaml:"serverlessCluster"` // The name of the database to use within the cluster. // Experimental. DatabaseName *string `field:"optional" json:"databaseName" yaml:"databaseName"` }
Properties for an AppSync RDS datasource.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var graphqlApi graphqlApi var role role var secret secret var serverlessCluster serverlessCluster rdsDataSourceProps := &rdsDataSourceProps{ api: graphqlApi, secretStore: secret, serverlessCluster: serverlessCluster, // the properties below are optional databaseName: jsii.String("databaseName"), description: jsii.String("description"), name: jsii.String("name"), serviceRole: role, }
Experimental.
type ResolvableField ¶
type ResolvableField interface { Field IField // The options to make this field resolvable. // Experimental. FieldOptions() *ResolvableFieldOptions // the intermediate type linked to this attribute (i.e. an interface or an object). // Experimental. IntermediateType() IIntermediateType // property determining if this attribute is a list i.e. if true, attribute would be `[Type]`. // Experimental. IsList() *bool // property determining if this attribute is non-nullable i.e. if true, attribute would be `Type!` and this attribute must always have a value. // Experimental. IsRequired() *bool // property determining if this attribute is a non-nullable list i.e. if true, attribute would be `[ Type ]!` and this attribute's list must always have a value. // Experimental. IsRequiredList() *bool // the type of attribute. // Experimental. Type() Type // Generate the args string of this resolvable field. // Experimental. ArgsToString() *string // Generate the directives for this field. // Experimental. DirectivesToString(modes *[]AuthorizationType) *string // Generate the string for this attribute. // Experimental. ToString() *string }
Resolvable Fields build upon Graphql Types and provide fields that can resolve into operations on a data source.
Example:
var api graphqlApi var dummyRequest mappingTemplate var dummyResponse mappingTemplate info := appsync.NewObjectType(jsii.String("Info"), &objectTypeOptions{ definition: map[string]iField{ "node": appsync.NewResolvableField(&ResolvableFieldOptions{ "returnType": appsync.GraphqlType.string(), "args": map[string]GraphqlType{ "id": appsync.GraphqlType.string(), }, "dataSource": api.addNoneDataSource(jsii.String("none")), "requestMappingTemplate": dummyRequest, "responseMappingTemplate": dummyResponse, }), }, })
Experimental.
func NewResolvableField ¶
func NewResolvableField(options *ResolvableFieldOptions) ResolvableField
Experimental.
type ResolvableFieldOptions ¶
type ResolvableFieldOptions struct { // The return type for this field. // Experimental. ReturnType GraphqlType `field:"required" json:"returnType" yaml:"returnType"` // The arguments for this field. // // i.e. type Example (first: String second: String) {} // - where 'first' and 'second' are key values for args // and 'String' is the GraphqlType. // Experimental. Args *map[string]GraphqlType `field:"optional" json:"args" yaml:"args"` // the directives for this field. // Experimental. Directives *[]Directive `field:"optional" json:"directives" yaml:"directives"` // The data source creating linked to this resolvable field. // Experimental. DataSource BaseDataSource `field:"optional" json:"dataSource" yaml:"dataSource"` // configuration of the pipeline resolver. // Experimental. PipelineConfig *[]IAppsyncFunction `field:"optional" json:"pipelineConfig" yaml:"pipelineConfig"` // The request mapping template for this resolver. // Experimental. RequestMappingTemplate MappingTemplate `field:"optional" json:"requestMappingTemplate" yaml:"requestMappingTemplate"` // The response mapping template for this resolver. // Experimental. ResponseMappingTemplate MappingTemplate `field:"optional" json:"responseMappingTemplate" yaml:"responseMappingTemplate"` }
Properties for configuring a resolvable field.
Example:
var api graphqlApi var filmNode objectType var dummyRequest mappingTemplate var dummyResponse mappingTemplate string := appsync.graphqlType.string() int := appsync.graphqlType.int() api.addMutation(jsii.String("addFilm"), appsync.NewResolvableField(&resolvableFieldOptions{ returnType: filmNode.attribute(), args: map[string]*graphqlType{ "name": string, "film_number": int, }, dataSource: api.addNoneDataSource(jsii.String("none")), requestMappingTemplate: dummyRequest, responseMappingTemplate: dummyResponse, }))
Experimental.
type Resolver ¶
type Resolver interface { constructs.Construct // the ARN of the resolver. // Experimental. Arn() *string // The tree node. // Experimental. Node() constructs.Node // Returns a string representation of this construct. // Experimental. ToString() *string }
An AppSync resolver.
Example:
var api graphqlApi var appsyncFunction appsyncFunction pipelineResolver := appsync.NewResolver(this, jsii.String("pipeline"), &resolverProps{ api: api, dataSource: api.addNoneDataSource(jsii.String("none")), typeName: jsii.String("typeName"), fieldName: jsii.String("fieldName"), requestMappingTemplate: appsync.mappingTemplate.fromFile(jsii.String("beforeRequest.vtl")), pipelineConfig: []iAppsyncFunction{ appsyncFunction, }, responseMappingTemplate: appsync.*mappingTemplate.fromFile(jsii.String("afterResponse.vtl")), })
Experimental.
func NewResolver ¶
func NewResolver(scope constructs.Construct, id *string, props *ResolverProps) Resolver
Experimental.
type ResolverProps ¶
type ResolverProps struct { // name of the GraphQL field in the given type this resolver is attached to. // Experimental. FieldName *string `field:"required" json:"fieldName" yaml:"fieldName"` // name of the GraphQL type this resolver is attached to. // Experimental. TypeName *string `field:"required" json:"typeName" yaml:"typeName"` // The caching configuration for this resolver. // Experimental. CachingConfig *CachingConfig `field:"optional" json:"cachingConfig" yaml:"cachingConfig"` // The maximum number of elements per batch, when using batch invoke. // Experimental. MaxBatchSize *float64 `field:"optional" json:"maxBatchSize" yaml:"maxBatchSize"` // configuration of the pipeline resolver. // Experimental. PipelineConfig *[]IAppsyncFunction `field:"optional" json:"pipelineConfig" yaml:"pipelineConfig"` // The request mapping template for this resolver. // Experimental. RequestMappingTemplate MappingTemplate `field:"optional" json:"requestMappingTemplate" yaml:"requestMappingTemplate"` // The response mapping template for this resolver. // Experimental. ResponseMappingTemplate MappingTemplate `field:"optional" json:"responseMappingTemplate" yaml:"responseMappingTemplate"` // The data source this resolver is using. // Experimental. DataSource BaseDataSource `field:"optional" json:"dataSource" yaml:"dataSource"` // The API this resolver is attached to. // Experimental. Api IGraphqlApi `field:"required" json:"api" yaml:"api"` }
Additional property for an AppSync resolver for GraphQL API reference.
Example:
var api graphqlApi var appsyncFunction appsyncFunction pipelineResolver := appsync.NewResolver(this, jsii.String("pipeline"), &resolverProps{ api: api, dataSource: api.addNoneDataSource(jsii.String("none")), typeName: jsii.String("typeName"), fieldName: jsii.String("fieldName"), requestMappingTemplate: appsync.mappingTemplate.fromFile(jsii.String("beforeRequest.vtl")), pipelineConfig: []iAppsyncFunction{ appsyncFunction, }, responseMappingTemplate: appsync.*mappingTemplate.fromFile(jsii.String("afterResponse.vtl")), })
Experimental.
type Schema ¶
type Schema interface { // The definition for this schema. // Experimental. Definition() *string // Experimental. SetDefinition(val *string) // Add a mutation field to the schema's Mutation. CDK will create an Object Type called 'Mutation'. For example,. // // type Mutation { // fieldName: Field.returnType // }. // Experimental. AddMutation(fieldName *string, field ResolvableField) ObjectType // Add a query field to the schema's Query. CDK will create an Object Type called 'Query'. For example,. // // type Query { // fieldName: Field.returnType // }. // Experimental. AddQuery(fieldName *string, field ResolvableField) ObjectType // Add a subscription field to the schema's Subscription. CDK will create an Object Type called 'Subscription'. For example,. // // type Subscription { // fieldName: Field.returnType // }. // Experimental. AddSubscription(fieldName *string, field Field) ObjectType // Escape hatch to add to Schema as desired. // // Will always result // in a newline. // Experimental. AddToSchema(addition *string, delimiter *string) // Add type to the schema. // Experimental. AddType(type_ IIntermediateType) IIntermediateType // Called when the GraphQL Api is initialized to allow this object to bind to the stack. // Experimental. Bind(api GraphqlApi) awsappsync.CfnGraphQLSchema }
The Schema for a GraphQL Api.
If no options are configured, schema will be generated code-first.
Example:
api := appsync.NewGraphqlApi(this, jsii.String("api"), &graphqlApiProps{ name: jsii.String("api"), schema: appsync.schema.fromAsset(path.join(__dirname, jsii.String("schema.graphql"))), }) httpDs := api.addHttpDataSource(jsii.String("ds"), jsii.String("https://states.amazonaws.com"), &httpDataSourceOptions{ name: jsii.String("httpDsWithStepF"), description: jsii.String("from appsync to StepFunctions Workflow"), authorizationConfig: &awsIamConfig{ signingRegion: jsii.String("us-east-1"), signingServiceName: jsii.String("states"), }, }) httpDs.createResolver(&baseResolverProps{ typeName: jsii.String("Mutation"), fieldName: jsii.String("callStepFunction"), requestMappingTemplate: appsync.mappingTemplate.fromFile(jsii.String("request.vtl")), responseMappingTemplate: appsync.*mappingTemplate.fromFile(jsii.String("response.vtl")), })
Experimental.
func Schema_FromAsset ¶
Generate a Schema from file.
Returns: `SchemaAsset` with immutable schema defintion. Experimental.
type SchemaOptions ¶
type SchemaOptions struct { // The file path for the schema. // // When this option is // configured, then the schema will be generated from an // existing file from disk. // Experimental. FilePath *string `field:"optional" json:"filePath" yaml:"filePath"` }
The options for configuring a schema.
If no options are specified, then the schema will be generated code-first.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" schemaOptions := &schemaOptions{ filePath: jsii.String("filePath"), }
Experimental.
type SortKeyStep ¶
type SortKeyStep interface { // Assign an auto-generated value to the sort key. // Experimental. Auto() PrimaryKey // Assign an auto-generated value to the sort key. // Experimental. Is(val *string) PrimaryKey }
Utility class to allow assigning a value or an auto-generated id to a sort key.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" var assign assign sortKeyStep := appsync_alpha.NewSortKeyStep(assign, jsii.String("skey"))
Experimental.
type Type ¶
type Type string
Enum containing the Types that can be used to define ObjectTypes. Experimental.
const ( // `ID` scalar type is a unique identifier. `ID` type is serialized similar to `String`. // // Often used as a key for a cache and not intended to be human-readable. // Experimental. Type_ID Type = "ID" // `String` scalar type is a free-form human-readable text. // Experimental. Type_STRING Type = "STRING" // `Int` scalar type is a signed non-fractional numerical value. // Experimental. Type_INT Type = "INT" // `Float` scalar type is a signed double-precision fractional value. // Experimental. Type_FLOAT Type = "FLOAT" // `Boolean` scalar type is a boolean value: true or false. // Experimental. Type_BOOLEAN Type = "BOOLEAN" // `AWSDate` scalar type represents a valid extended `ISO 8601 Date` string. // // In other words, accepts date strings in the form of `YYYY-MM-DD`. It accepts time zone offsets. // See: https://en.wikipedia.org/wiki/ISO_8601#Calendar_dates // // Experimental. Type_AWS_DATE Type = "AWS_DATE" // `AWSTime` scalar type represents a valid extended `ISO 8601 Time` string. // // In other words, accepts date strings in the form of `hh:mm:ss.sss`. It accepts time zone offsets. // See: https://en.wikipedia.org/wiki/ISO_8601#Times // // Experimental. Type_AWS_TIME Type = "AWS_TIME" // `AWSDateTime` scalar type represents a valid extended `ISO 8601 DateTime` string. // // In other words, accepts date strings in the form of `YYYY-MM-DDThh:mm:ss.sssZ`. It accepts time zone offsets. // See: https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations // // Experimental. Type_AWS_DATE_TIME Type = "AWS_DATE_TIME" // `AWSTimestamp` scalar type represents the number of seconds since `1970-01-01T00:00Z`. // // Timestamps are serialized and deserialized as numbers. // Experimental. Type_AWS_TIMESTAMP Type = "AWS_TIMESTAMP" // `AWSEmail` scalar type represents an email address string (i.e.`username@example.com`). // Experimental. Type_AWS_EMAIL Type = "AWS_EMAIL" // `AWSJson` scalar type represents a JSON string. // Experimental. Type_AWS_JSON Type = "AWS_JSON" // `AWSURL` scalar type represetns a valid URL string. // // URLs wihtout schemes or contain double slashes are considered invalid. // Experimental. Type_AWS_URL Type = "AWS_URL" // `AWSPhone` scalar type represents a valid phone number. Phone numbers maybe be whitespace delimited or hyphenated. // // The number can specify a country code at the beginning, but is not required for US phone numbers. // Experimental. Type_AWS_PHONE Type = "AWS_PHONE" // `AWSIPAddress` scalar type respresents a valid `IPv4` of `IPv6` address string. // Experimental. Type_AWS_IP_ADDRESS Type = "AWS_IP_ADDRESS" // Type used for Intermediate Types (i.e. an interface or an object type). // Experimental. Type_INTERMEDIATE Type = "INTERMEDIATE" )
type UnionType ¶
type UnionType interface { IIntermediateType // the attributes of this type. // Experimental. Definition() *map[string]IField // the authorization modes supported by this intermediate type. // Experimental. Modes() *[]AuthorizationType // Experimental. SetModes(val *[]AuthorizationType) // the name of this type. // Experimental. Name() *string // Add a field to this Union Type. // // Input Types must have field options and the IField must be an Object Type. // Experimental. AddField(options *AddFieldOptions) // Create a GraphQL Type representing this Union Type. // Experimental. Attribute(options *BaseTypeOptions) GraphqlType // Generate the string of this Union type. // Experimental. ToString() *string }
Union Types are abstract types that are similar to Interface Types, but they cannot to specify any common fields between types.
Note that fields of a union type need to be object types. In other words, you can't create a union type out of interfaces, other unions, or inputs.
Example:
var api graphqlApi string := appsync.graphqlType.string() human := appsync.NewObjectType(jsii.String("Human"), &objectTypeOptions{ definition: map[string]iField{ "name": string, }, }) droid := appsync.NewObjectType(jsii.String("Droid"), &objectTypeOptions{ definition: map[string]*iField{ "name": string, }, }) starship := appsync.NewObjectType(jsii.String("Starship"), &objectTypeOptions{ definition: map[string]*iField{ "name": string, }, }) search := appsync.NewUnionType(jsii.String("Search"), &unionTypeOptions{ definition: []iIntermediateType{ human, droid, starship, }, }) api.addType(search)
Experimental.
func NewUnionType ¶
func NewUnionType(name *string, options *UnionTypeOptions) UnionType
Experimental.
type UnionTypeOptions ¶
type UnionTypeOptions struct { // the object types for this union type. // Experimental. Definition *[]IIntermediateType `field:"required" json:"definition" yaml:"definition"` }
Properties for configuring an Union Type.
Example:
var api graphqlApi string := appsync.graphqlType.string() human := appsync.NewObjectType(jsii.String("Human"), &objectTypeOptions{ definition: map[string]iField{ "name": string, }, }) droid := appsync.NewObjectType(jsii.String("Droid"), &objectTypeOptions{ definition: map[string]*iField{ "name": string, }, }) starship := appsync.NewObjectType(jsii.String("Starship"), &objectTypeOptions{ definition: map[string]*iField{ "name": string, }, }) search := appsync.NewUnionType(jsii.String("Search"), &unionTypeOptions{ definition: []iIntermediateType{ human, droid, starship, }, }) api.addType(search)
Experimental.
type UserPoolConfig ¶
type UserPoolConfig struct { // The Cognito user pool to use as identity source. // Experimental. UserPool awscognito.IUserPool `field:"required" json:"userPool" yaml:"userPool"` // the optional app id regex. // Experimental. AppIdClientRegex *string `field:"optional" json:"appIdClientRegex" yaml:"appIdClientRegex"` // Default auth action. // Experimental. DefaultAction UserPoolDefaultAction `field:"optional" json:"defaultAction" yaml:"defaultAction"` }
Configuration for Cognito user-pools in AppSync.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import appsync_alpha "github.com/aws/aws-cdk-go/awscdkappsyncalpha" import "github.com/aws/aws-cdk-go/awscdk" var userPool userPool userPoolConfig := &userPoolConfig{ userPool: userPool, // the properties below are optional appIdClientRegex: jsii.String("appIdClientRegex"), defaultAction: appsync_alpha.userPoolDefaultAction_ALLOW, }
Experimental.
type UserPoolDefaultAction ¶
type UserPoolDefaultAction string
enum with all possible values for Cognito user-pool default actions. Experimental.
const ( // ALLOW access to API. // Experimental. UserPoolDefaultAction_ALLOW UserPoolDefaultAction = "ALLOW" // DENY access to API. // Experimental. UserPoolDefaultAction_DENY UserPoolDefaultAction = "DENY" )
type Values ¶
type Values interface { }
Factory class for attribute value assignments.
Example:
api := appsync.NewGraphqlApi(this, jsii.String("Api"), &graphqlApiProps{ name: jsii.String("demo"), schema: appsync.schema.fromAsset(path.join(__dirname, jsii.String("schema.graphql"))), authorizationConfig: &authorizationConfig{ defaultAuthorization: &authorizationMode{ authorizationType: appsync.authorizationType_IAM, }, }, xrayEnabled: jsii.Boolean(true), }) demoTable := dynamodb.NewTable(this, jsii.String("DemoTable"), &tableProps{ partitionKey: &attribute{ name: jsii.String("id"), type: dynamodb.attributeType_STRING, }, }) demoDS := api.addDynamoDbDataSource(jsii.String("demoDataSource"), demoTable) // Resolver for the Query "getDemos" that scans the DynamoDb table and returns the entire list. // Resolver Mapping Template Reference: // https://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference-dynamodb.html demoDS.createResolver(&baseResolverProps{ typeName: jsii.String("Query"), fieldName: jsii.String("getDemos"), requestMappingTemplate: appsync.mappingTemplate.dynamoDbScanTable(), responseMappingTemplate: appsync.*mappingTemplate.dynamoDbResultList(), }) // Resolver for the Mutation "addDemo" that puts the item into the DynamoDb table. demoDS.createResolver(&baseResolverProps{ typeName: jsii.String("Mutation"), fieldName: jsii.String("addDemo"), requestMappingTemplate: appsync.*mappingTemplate.dynamoDbPutItem(appsync.primaryKey.partition(jsii.String("id")).auto(), appsync.values.projecting(jsii.String("input"))), responseMappingTemplate: appsync.*mappingTemplate.dynamoDbResultItem(), }) //To enable DynamoDB read consistency with the `MappingTemplate`: demoDS.createResolver(&baseResolverProps{ typeName: jsii.String("Query"), fieldName: jsii.String("getDemosConsistent"), requestMappingTemplate: appsync.*mappingTemplate.dynamoDbScanTable(jsii.Boolean(true)), responseMappingTemplate: appsync.*mappingTemplate.dynamoDbResultList(), })
Experimental.
Source Files ¶
- awscdkappsyncalpha.go
- awscdkappsyncalpha_AddFieldOptions.go
- awscdkappsyncalpha_ApiKeyConfig.go
- awscdkappsyncalpha_AppsyncFunction.go
- awscdkappsyncalpha_AppsyncFunctionAttributes.go
- awscdkappsyncalpha_AppsyncFunctionProps.go
- awscdkappsyncalpha_AppsyncFunction__runtime_type_checks.go
- awscdkappsyncalpha_Assign.go
- awscdkappsyncalpha_Assign__runtime_type_checks.go
- awscdkappsyncalpha_AttributeValues.go
- awscdkappsyncalpha_AttributeValuesStep.go
- awscdkappsyncalpha_AttributeValuesStep__runtime_type_checks.go
- awscdkappsyncalpha_AttributeValues__runtime_type_checks.go
- awscdkappsyncalpha_AuthorizationConfig.go
- awscdkappsyncalpha_AuthorizationMode.go
- awscdkappsyncalpha_AuthorizationType.go
- awscdkappsyncalpha_AwsIamConfig.go
- awscdkappsyncalpha_BackedDataSource.go
- awscdkappsyncalpha_BackedDataSourceProps.go
- awscdkappsyncalpha_BackedDataSource__runtime_type_checks.go
- awscdkappsyncalpha_BaseAppsyncFunctionProps.go
- awscdkappsyncalpha_BaseDataSource.go
- awscdkappsyncalpha_BaseDataSourceProps.go
- awscdkappsyncalpha_BaseDataSource__runtime_type_checks.go
- awscdkappsyncalpha_BaseResolverProps.go
- awscdkappsyncalpha_BaseTypeOptions.go
- awscdkappsyncalpha_CachingConfig.go
- awscdkappsyncalpha_DataSourceOptions.go
- awscdkappsyncalpha_Directive.go
- awscdkappsyncalpha_Directive__runtime_type_checks.go
- awscdkappsyncalpha_DomainOptions.go
- awscdkappsyncalpha_DynamoDbDataSource.go
- awscdkappsyncalpha_DynamoDbDataSourceProps.go
- awscdkappsyncalpha_DynamoDbDataSource__runtime_type_checks.go
- awscdkappsyncalpha_ElasticsearchDataSource.go
- awscdkappsyncalpha_ElasticsearchDataSourceProps.go
- awscdkappsyncalpha_ElasticsearchDataSource__runtime_type_checks.go
- awscdkappsyncalpha_EnumType.go
- awscdkappsyncalpha_EnumTypeOptions.go
- awscdkappsyncalpha_EnumType__runtime_type_checks.go
- awscdkappsyncalpha_ExtendedDataSourceProps.go
- awscdkappsyncalpha_ExtendedResolverProps.go
- awscdkappsyncalpha_Field.go
- awscdkappsyncalpha_FieldLogLevel.go
- awscdkappsyncalpha_FieldOptions.go
- awscdkappsyncalpha_Field__runtime_type_checks.go
- awscdkappsyncalpha_GraphqlApi.go
- awscdkappsyncalpha_GraphqlApiAttributes.go
- awscdkappsyncalpha_GraphqlApiBase.go
- awscdkappsyncalpha_GraphqlApiBase__runtime_type_checks.go
- awscdkappsyncalpha_GraphqlApiProps.go
- awscdkappsyncalpha_GraphqlApi__runtime_type_checks.go
- awscdkappsyncalpha_GraphqlType.go
- awscdkappsyncalpha_GraphqlTypeOptions.go
- awscdkappsyncalpha_GraphqlType__runtime_type_checks.go
- awscdkappsyncalpha_HttpDataSource.go
- awscdkappsyncalpha_HttpDataSourceOptions.go
- awscdkappsyncalpha_HttpDataSourceProps.go
- awscdkappsyncalpha_HttpDataSource__runtime_type_checks.go
- awscdkappsyncalpha_IAppsyncFunction.go
- awscdkappsyncalpha_IField.go
- awscdkappsyncalpha_IGraphqlApi.go
- awscdkappsyncalpha_IGraphqlApi__runtime_type_checks.go
- awscdkappsyncalpha_IIntermediateType.go
- awscdkappsyncalpha_IIntermediateType__runtime_type_checks.go
- awscdkappsyncalpha_IamResource.go
- awscdkappsyncalpha_IamResource__runtime_type_checks.go
- awscdkappsyncalpha_InputType.go
- awscdkappsyncalpha_InputType__runtime_type_checks.go
- awscdkappsyncalpha_InterfaceType.go
- awscdkappsyncalpha_InterfaceType__runtime_type_checks.go
- awscdkappsyncalpha_IntermediateTypeOptions.go
- awscdkappsyncalpha_KeyCondition.go
- awscdkappsyncalpha_KeyCondition__runtime_type_checks.go
- awscdkappsyncalpha_LambdaAuthorizerConfig.go
- awscdkappsyncalpha_LambdaDataSource.go
- awscdkappsyncalpha_LambdaDataSourceProps.go
- awscdkappsyncalpha_LambdaDataSource__runtime_type_checks.go
- awscdkappsyncalpha_LogConfig.go
- awscdkappsyncalpha_MappingTemplate.go
- awscdkappsyncalpha_MappingTemplate__runtime_type_checks.go
- awscdkappsyncalpha_NoneDataSource.go
- awscdkappsyncalpha_NoneDataSourceProps.go
- awscdkappsyncalpha_NoneDataSource__runtime_type_checks.go
- awscdkappsyncalpha_ObjectType.go
- awscdkappsyncalpha_ObjectTypeOptions.go
- awscdkappsyncalpha_ObjectType__runtime_type_checks.go
- awscdkappsyncalpha_OpenIdConnectConfig.go
- awscdkappsyncalpha_OpenSearchDataSource.go
- awscdkappsyncalpha_OpenSearchDataSourceProps.go
- awscdkappsyncalpha_OpenSearchDataSource__runtime_type_checks.go
- awscdkappsyncalpha_PartitionKey.go
- awscdkappsyncalpha_PartitionKeyStep.go
- awscdkappsyncalpha_PartitionKeyStep__runtime_type_checks.go
- awscdkappsyncalpha_PartitionKey__runtime_type_checks.go
- awscdkappsyncalpha_PrimaryKey.go
- awscdkappsyncalpha_PrimaryKey__runtime_type_checks.go
- awscdkappsyncalpha_RdsDataSource.go
- awscdkappsyncalpha_RdsDataSourceProps.go
- awscdkappsyncalpha_RdsDataSource__runtime_type_checks.go
- awscdkappsyncalpha_ResolvableField.go
- awscdkappsyncalpha_ResolvableFieldOptions.go
- awscdkappsyncalpha_ResolvableField__runtime_type_checks.go
- awscdkappsyncalpha_Resolver.go
- awscdkappsyncalpha_ResolverProps.go
- awscdkappsyncalpha_Resolver__runtime_type_checks.go
- awscdkappsyncalpha_Schema.go
- awscdkappsyncalpha_SchemaOptions.go
- awscdkappsyncalpha_Schema__runtime_type_checks.go
- awscdkappsyncalpha_SortKeyStep.go
- awscdkappsyncalpha_SortKeyStep__runtime_type_checks.go
- awscdkappsyncalpha_Type.go
- awscdkappsyncalpha_UnionType.go
- awscdkappsyncalpha_UnionTypeOptions.go
- awscdkappsyncalpha_UnionType__runtime_type_checks.go
- awscdkappsyncalpha_UserPoolConfig.go
- awscdkappsyncalpha_UserPoolDefaultAction.go
- awscdkappsyncalpha_Values.go
- awscdkappsyncalpha_Values__runtime_type_checks.go