awspinpoint

package
v1.168.0-devpreview Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 9, 2022 License: Apache-2.0 Imports: 6 Imported by: 0

README

Amazon Pinpoint Construct Library

This module is part of the AWS Cloud Development Kit project.

import pinpoint "github.com/aws/aws-cdk-go/awscdk"

There are no official hand-written (L2) constructs for this service yet. Here are some suggestions on how to proceed:

There are no hand-written (L2) constructs for this service yet. However, you can still use the automatically generated L1 constructs, and use this service exactly as you would using CloudFormation directly.

For more information on the resources and properties available for this service, see the CloudFormation documentation for AWS::Pinpoint.

(Read the CDK Contributing Guide and submit an RFC if you are interested in contributing to this construct library.)

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CfnADMChannel_CFN_RESOURCE_TYPE_NAME

func CfnADMChannel_CFN_RESOURCE_TYPE_NAME() *string

func CfnADMChannel_IsCfnElement

func CfnADMChannel_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnADMChannel_IsCfnResource

func CfnADMChannel_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnADMChannel_IsConstruct

func CfnADMChannel_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnAPNSChannel_CFN_RESOURCE_TYPE_NAME

func CfnAPNSChannel_CFN_RESOURCE_TYPE_NAME() *string

func CfnAPNSChannel_IsCfnElement

func CfnAPNSChannel_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnAPNSChannel_IsCfnResource

func CfnAPNSChannel_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnAPNSChannel_IsConstruct

func CfnAPNSChannel_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnAPNSSandboxChannel_CFN_RESOURCE_TYPE_NAME

func CfnAPNSSandboxChannel_CFN_RESOURCE_TYPE_NAME() *string

func CfnAPNSSandboxChannel_IsCfnElement

func CfnAPNSSandboxChannel_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnAPNSSandboxChannel_IsCfnResource

func CfnAPNSSandboxChannel_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnAPNSSandboxChannel_IsConstruct

func CfnAPNSSandboxChannel_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnAPNSVoipChannel_CFN_RESOURCE_TYPE_NAME

func CfnAPNSVoipChannel_CFN_RESOURCE_TYPE_NAME() *string

func CfnAPNSVoipChannel_IsCfnElement

func CfnAPNSVoipChannel_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnAPNSVoipChannel_IsCfnResource

func CfnAPNSVoipChannel_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnAPNSVoipChannel_IsConstruct

func CfnAPNSVoipChannel_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnAPNSVoipSandboxChannel_CFN_RESOURCE_TYPE_NAME

func CfnAPNSVoipSandboxChannel_CFN_RESOURCE_TYPE_NAME() *string

func CfnAPNSVoipSandboxChannel_IsCfnElement

func CfnAPNSVoipSandboxChannel_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnAPNSVoipSandboxChannel_IsCfnResource

func CfnAPNSVoipSandboxChannel_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnAPNSVoipSandboxChannel_IsConstruct

func CfnAPNSVoipSandboxChannel_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnApp_CFN_RESOURCE_TYPE_NAME

func CfnApp_CFN_RESOURCE_TYPE_NAME() *string

func CfnApp_IsCfnElement

func CfnApp_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnApp_IsCfnResource

func CfnApp_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnApp_IsConstruct

func CfnApp_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnApplicationSettings_CFN_RESOURCE_TYPE_NAME

func CfnApplicationSettings_CFN_RESOURCE_TYPE_NAME() *string

func CfnApplicationSettings_IsCfnElement

func CfnApplicationSettings_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnApplicationSettings_IsCfnResource

func CfnApplicationSettings_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnApplicationSettings_IsConstruct

func CfnApplicationSettings_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnBaiduChannel_CFN_RESOURCE_TYPE_NAME

func CfnBaiduChannel_CFN_RESOURCE_TYPE_NAME() *string

func CfnBaiduChannel_IsCfnElement

func CfnBaiduChannel_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnBaiduChannel_IsCfnResource

func CfnBaiduChannel_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnBaiduChannel_IsConstruct

func CfnBaiduChannel_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnCampaign_CFN_RESOURCE_TYPE_NAME

func CfnCampaign_CFN_RESOURCE_TYPE_NAME() *string

func CfnCampaign_IsCfnElement

func CfnCampaign_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnCampaign_IsCfnResource

func CfnCampaign_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnCampaign_IsConstruct

func CfnCampaign_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnEmailChannel_CFN_RESOURCE_TYPE_NAME

func CfnEmailChannel_CFN_RESOURCE_TYPE_NAME() *string

func CfnEmailChannel_IsCfnElement

func CfnEmailChannel_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnEmailChannel_IsCfnResource

func CfnEmailChannel_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnEmailChannel_IsConstruct

func CfnEmailChannel_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnEmailTemplate_CFN_RESOURCE_TYPE_NAME

func CfnEmailTemplate_CFN_RESOURCE_TYPE_NAME() *string

func CfnEmailTemplate_IsCfnElement

func CfnEmailTemplate_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnEmailTemplate_IsCfnResource

func CfnEmailTemplate_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnEmailTemplate_IsConstruct

func CfnEmailTemplate_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnEventStream_CFN_RESOURCE_TYPE_NAME

func CfnEventStream_CFN_RESOURCE_TYPE_NAME() *string

func CfnEventStream_IsCfnElement

func CfnEventStream_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnEventStream_IsCfnResource

func CfnEventStream_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnEventStream_IsConstruct

func CfnEventStream_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnGCMChannel_CFN_RESOURCE_TYPE_NAME

func CfnGCMChannel_CFN_RESOURCE_TYPE_NAME() *string

func CfnGCMChannel_IsCfnElement

func CfnGCMChannel_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnGCMChannel_IsCfnResource

func CfnGCMChannel_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnGCMChannel_IsConstruct

func CfnGCMChannel_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnInAppTemplate_CFN_RESOURCE_TYPE_NAME

func CfnInAppTemplate_CFN_RESOURCE_TYPE_NAME() *string

func CfnInAppTemplate_IsCfnElement

func CfnInAppTemplate_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnInAppTemplate_IsCfnResource

func CfnInAppTemplate_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnInAppTemplate_IsConstruct

func CfnInAppTemplate_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnPushTemplate_CFN_RESOURCE_TYPE_NAME

func CfnPushTemplate_CFN_RESOURCE_TYPE_NAME() *string

func CfnPushTemplate_IsCfnElement

func CfnPushTemplate_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnPushTemplate_IsCfnResource

func CfnPushTemplate_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnPushTemplate_IsConstruct

func CfnPushTemplate_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnSMSChannel_CFN_RESOURCE_TYPE_NAME

func CfnSMSChannel_CFN_RESOURCE_TYPE_NAME() *string

func CfnSMSChannel_IsCfnElement

func CfnSMSChannel_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnSMSChannel_IsCfnResource

func CfnSMSChannel_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnSMSChannel_IsConstruct

func CfnSMSChannel_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnSegment_CFN_RESOURCE_TYPE_NAME

func CfnSegment_CFN_RESOURCE_TYPE_NAME() *string

func CfnSegment_IsCfnElement

func CfnSegment_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnSegment_IsCfnResource

func CfnSegment_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnSegment_IsConstruct

func CfnSegment_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnSmsTemplate_CFN_RESOURCE_TYPE_NAME

func CfnSmsTemplate_CFN_RESOURCE_TYPE_NAME() *string

func CfnSmsTemplate_IsCfnElement

func CfnSmsTemplate_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnSmsTemplate_IsCfnResource

func CfnSmsTemplate_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnSmsTemplate_IsConstruct

func CfnSmsTemplate_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func CfnVoiceChannel_CFN_RESOURCE_TYPE_NAME

func CfnVoiceChannel_CFN_RESOURCE_TYPE_NAME() *string

func CfnVoiceChannel_IsCfnElement

func CfnVoiceChannel_IsCfnElement(x interface{}) *bool

Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).

Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.

Returns: The construct as a stack element or undefined if it is not a stack element. Experimental.

func CfnVoiceChannel_IsCfnResource

func CfnVoiceChannel_IsCfnResource(construct constructs.IConstruct) *bool

Check whether the given construct is a CfnResource. Experimental.

func CfnVoiceChannel_IsConstruct

func CfnVoiceChannel_IsConstruct(x interface{}) *bool

Return whether the given object is a Construct. Experimental.

func NewCfnADMChannel_Override

func NewCfnADMChannel_Override(c CfnADMChannel, scope awscdk.Construct, id *string, props *CfnADMChannelProps)

Create a new `AWS::Pinpoint::ADMChannel`.

func NewCfnAPNSChannel_Override

func NewCfnAPNSChannel_Override(c CfnAPNSChannel, scope awscdk.Construct, id *string, props *CfnAPNSChannelProps)

Create a new `AWS::Pinpoint::APNSChannel`.

func NewCfnAPNSSandboxChannel_Override

func NewCfnAPNSSandboxChannel_Override(c CfnAPNSSandboxChannel, scope awscdk.Construct, id *string, props *CfnAPNSSandboxChannelProps)

Create a new `AWS::Pinpoint::APNSSandboxChannel`.

func NewCfnAPNSVoipChannel_Override

func NewCfnAPNSVoipChannel_Override(c CfnAPNSVoipChannel, scope awscdk.Construct, id *string, props *CfnAPNSVoipChannelProps)

Create a new `AWS::Pinpoint::APNSVoipChannel`.

func NewCfnAPNSVoipSandboxChannel_Override

func NewCfnAPNSVoipSandboxChannel_Override(c CfnAPNSVoipSandboxChannel, scope awscdk.Construct, id *string, props *CfnAPNSVoipSandboxChannelProps)

Create a new `AWS::Pinpoint::APNSVoipSandboxChannel`.

func NewCfnApp_Override

func NewCfnApp_Override(c CfnApp, scope awscdk.Construct, id *string, props *CfnAppProps)

Create a new `AWS::Pinpoint::App`.

func NewCfnApplicationSettings_Override

func NewCfnApplicationSettings_Override(c CfnApplicationSettings, scope awscdk.Construct, id *string, props *CfnApplicationSettingsProps)

Create a new `AWS::Pinpoint::ApplicationSettings`.

func NewCfnBaiduChannel_Override

func NewCfnBaiduChannel_Override(c CfnBaiduChannel, scope awscdk.Construct, id *string, props *CfnBaiduChannelProps)

Create a new `AWS::Pinpoint::BaiduChannel`.

func NewCfnCampaign_Override

func NewCfnCampaign_Override(c CfnCampaign, scope awscdk.Construct, id *string, props *CfnCampaignProps)

Create a new `AWS::Pinpoint::Campaign`.

func NewCfnEmailChannel_Override

func NewCfnEmailChannel_Override(c CfnEmailChannel, scope awscdk.Construct, id *string, props *CfnEmailChannelProps)

Create a new `AWS::Pinpoint::EmailChannel`.

func NewCfnEmailTemplate_Override

func NewCfnEmailTemplate_Override(c CfnEmailTemplate, scope awscdk.Construct, id *string, props *CfnEmailTemplateProps)

Create a new `AWS::Pinpoint::EmailTemplate`.

func NewCfnEventStream_Override

func NewCfnEventStream_Override(c CfnEventStream, scope awscdk.Construct, id *string, props *CfnEventStreamProps)

Create a new `AWS::Pinpoint::EventStream`.

func NewCfnGCMChannel_Override

func NewCfnGCMChannel_Override(c CfnGCMChannel, scope awscdk.Construct, id *string, props *CfnGCMChannelProps)

Create a new `AWS::Pinpoint::GCMChannel`.

func NewCfnInAppTemplate_Override

func NewCfnInAppTemplate_Override(c CfnInAppTemplate, scope awscdk.Construct, id *string, props *CfnInAppTemplateProps)

Create a new `AWS::Pinpoint::InAppTemplate`.

func NewCfnPushTemplate_Override

func NewCfnPushTemplate_Override(c CfnPushTemplate, scope awscdk.Construct, id *string, props *CfnPushTemplateProps)

Create a new `AWS::Pinpoint::PushTemplate`.

func NewCfnSMSChannel_Override

func NewCfnSMSChannel_Override(c CfnSMSChannel, scope awscdk.Construct, id *string, props *CfnSMSChannelProps)

Create a new `AWS::Pinpoint::SMSChannel`.

func NewCfnSegment_Override

func NewCfnSegment_Override(c CfnSegment, scope awscdk.Construct, id *string, props *CfnSegmentProps)

Create a new `AWS::Pinpoint::Segment`.

func NewCfnSmsTemplate_Override

func NewCfnSmsTemplate_Override(c CfnSmsTemplate, scope awscdk.Construct, id *string, props *CfnSmsTemplateProps)

Create a new `AWS::Pinpoint::SmsTemplate`.

func NewCfnVoiceChannel_Override

func NewCfnVoiceChannel_Override(c CfnVoiceChannel, scope awscdk.Construct, id *string, props *CfnVoiceChannelProps)

Create a new `AWS::Pinpoint::VoiceChannel`.

Types

type CfnADMChannel

type CfnADMChannel interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// The unique identifier for the Amazon Pinpoint application that the ADM channel applies to.
	ApplicationId() *string
	SetApplicationId(val *string)
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// The Client ID that you received from Amazon to send messages by using ADM.
	ClientId() *string
	SetClientId(val *string)
	// The Client Secret that you received from Amazon to send messages by using ADM.
	ClientSecret() *string
	SetClientSecret(val *string)
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// Specifies whether to enable the ADM channel for the application.
	Enabled() interface{}
	SetEnabled(val interface{})
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// 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, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::Pinpoint::ADMChannel`.

A *channel* is a type of platform that you can deliver messages to. You can use the ADM channel to send push notifications through the Amazon Device Messaging (ADM) service to apps that run on Amazon devices, such as Kindle Fire tablets. Before you can use Amazon Pinpoint to send messages to Amazon devices, you have to enable the ADM channel for an Amazon Pinpoint application.

The ADMChannel resource represents the status and authentication settings for the ADM channel for an application.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnADMChannel := awscdk.Aws_pinpoint.NewCfnADMChannel(this, jsii.String("MyCfnADMChannel"), &cfnADMChannelProps{
	applicationId: jsii.String("applicationId"),
	clientId: jsii.String("clientId"),
	clientSecret: jsii.String("clientSecret"),

	// the properties below are optional
	enabled: jsii.Boolean(false),
})

func NewCfnADMChannel

func NewCfnADMChannel(scope awscdk.Construct, id *string, props *CfnADMChannelProps) CfnADMChannel

Create a new `AWS::Pinpoint::ADMChannel`.

type CfnADMChannelProps

type CfnADMChannelProps struct {
	// The unique identifier for the Amazon Pinpoint application that the ADM channel applies to.
	ApplicationId *string `field:"required" json:"applicationId" yaml:"applicationId"`
	// The Client ID that you received from Amazon to send messages by using ADM.
	ClientId *string `field:"required" json:"clientId" yaml:"clientId"`
	// The Client Secret that you received from Amazon to send messages by using ADM.
	ClientSecret *string `field:"required" json:"clientSecret" yaml:"clientSecret"`
	// Specifies whether to enable the ADM channel for the application.
	Enabled interface{} `field:"optional" json:"enabled" yaml:"enabled"`
}

Properties for defining a `CfnADMChannel`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnADMChannelProps := &cfnADMChannelProps{
	applicationId: jsii.String("applicationId"),
	clientId: jsii.String("clientId"),
	clientSecret: jsii.String("clientSecret"),

	// the properties below are optional
	enabled: jsii.Boolean(false),
}

type CfnAPNSChannel

type CfnAPNSChannel interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// The unique identifier for the Amazon Pinpoint application that the APNs channel applies to.
	ApplicationId() *string
	SetApplicationId(val *string)
	// The bundle identifier that's assigned to your iOS app.
	//
	// This identifier is used for APNs tokens.
	BundleId() *string
	SetBundleId(val *string)
	// The APNs client certificate that you received from Apple.
	//
	// Specify this value if you want Amazon Pinpoint to communicate with APNs by using an APNs certificate.
	Certificate() *string
	SetCertificate(val *string)
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// The default authentication method that you want Amazon Pinpoint to use when authenticating with APNs.
	//
	// Valid options are `key` or `certificate` .
	DefaultAuthenticationMethod() *string
	SetDefaultAuthenticationMethod(val *string)
	// Specifies whether to enable the APNs channel for the application.
	Enabled() interface{}
	SetEnabled(val interface{})
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with APNs.
	PrivateKey() *string
	SetPrivateKey(val *string)
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// The identifier that's assigned to your Apple Developer Account team.
	//
	// This identifier is used for APNs tokens.
	TeamId() *string
	SetTeamId(val *string)
	// The authentication key to use for APNs tokens.
	TokenKey() *string
	SetTokenKey(val *string)
	// The key identifier that's assigned to your APNs signing key.
	//
	// Specify this value if you want Amazon Pinpoint to communicate with APNs by using APNs tokens.
	TokenKeyId() *string
	SetTokenKeyId(val *string)
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// 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, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::Pinpoint::APNSChannel`.

A *channel* is a type of platform that you can deliver messages to. You can use the APNs channel to send push notification messages to the Apple Push Notification service (APNs). Before you can use Amazon Pinpoint to send notifications to APNs, you have to enable the APNs channel for an Amazon Pinpoint application.

The APNSChannel resource represents the status and authentication settings for the APNs channel for an application.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnAPNSChannel := awscdk.Aws_pinpoint.NewCfnAPNSChannel(this, jsii.String("MyCfnAPNSChannel"), &cfnAPNSChannelProps{
	applicationId: jsii.String("applicationId"),

	// the properties below are optional
	bundleId: jsii.String("bundleId"),
	certificate: jsii.String("certificate"),
	defaultAuthenticationMethod: jsii.String("defaultAuthenticationMethod"),
	enabled: jsii.Boolean(false),
	privateKey: jsii.String("privateKey"),
	teamId: jsii.String("teamId"),
	tokenKey: jsii.String("tokenKey"),
	tokenKeyId: jsii.String("tokenKeyId"),
})

func NewCfnAPNSChannel

func NewCfnAPNSChannel(scope awscdk.Construct, id *string, props *CfnAPNSChannelProps) CfnAPNSChannel

Create a new `AWS::Pinpoint::APNSChannel`.

type CfnAPNSChannelProps

type CfnAPNSChannelProps struct {
	// The unique identifier for the Amazon Pinpoint application that the APNs channel applies to.
	ApplicationId *string `field:"required" json:"applicationId" yaml:"applicationId"`
	// The bundle identifier that's assigned to your iOS app.
	//
	// This identifier is used for APNs tokens.
	BundleId *string `field:"optional" json:"bundleId" yaml:"bundleId"`
	// The APNs client certificate that you received from Apple.
	//
	// Specify this value if you want Amazon Pinpoint to communicate with APNs by using an APNs certificate.
	Certificate *string `field:"optional" json:"certificate" yaml:"certificate"`
	// The default authentication method that you want Amazon Pinpoint to use when authenticating with APNs.
	//
	// Valid options are `key` or `certificate` .
	DefaultAuthenticationMethod *string `field:"optional" json:"defaultAuthenticationMethod" yaml:"defaultAuthenticationMethod"`
	// Specifies whether to enable the APNs channel for the application.
	Enabled interface{} `field:"optional" json:"enabled" yaml:"enabled"`
	// The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with APNs.
	PrivateKey *string `field:"optional" json:"privateKey" yaml:"privateKey"`
	// The identifier that's assigned to your Apple Developer Account team.
	//
	// This identifier is used for APNs tokens.
	TeamId *string `field:"optional" json:"teamId" yaml:"teamId"`
	// The authentication key to use for APNs tokens.
	TokenKey *string `field:"optional" json:"tokenKey" yaml:"tokenKey"`
	// The key identifier that's assigned to your APNs signing key.
	//
	// Specify this value if you want Amazon Pinpoint to communicate with APNs by using APNs tokens.
	TokenKeyId *string `field:"optional" json:"tokenKeyId" yaml:"tokenKeyId"`
}

Properties for defining a `CfnAPNSChannel`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnAPNSChannelProps := &cfnAPNSChannelProps{
	applicationId: jsii.String("applicationId"),

	// the properties below are optional
	bundleId: jsii.String("bundleId"),
	certificate: jsii.String("certificate"),
	defaultAuthenticationMethod: jsii.String("defaultAuthenticationMethod"),
	enabled: jsii.Boolean(false),
	privateKey: jsii.String("privateKey"),
	teamId: jsii.String("teamId"),
	tokenKey: jsii.String("tokenKey"),
	tokenKeyId: jsii.String("tokenKeyId"),
}

type CfnAPNSSandboxChannel

type CfnAPNSSandboxChannel interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// The unique identifier for the Amazon Pinpoint application that the APNs sandbox channel applies to.
	ApplicationId() *string
	SetApplicationId(val *string)
	// The bundle identifier that's assigned to your iOS app.
	//
	// This identifier is used for APNs tokens.
	BundleId() *string
	SetBundleId(val *string)
	// The APNs client certificate that you received from Apple.
	//
	// Specify this value if you want Amazon Pinpoint to communicate with APNs by using an APNs certificate.
	Certificate() *string
	SetCertificate(val *string)
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// The default authentication method that you want Amazon Pinpoint to use when authenticating with APNs.
	//
	// Valid options are `key` or `certificate` .
	DefaultAuthenticationMethod() *string
	SetDefaultAuthenticationMethod(val *string)
	// Specifies whether to enable the APNs Sandbox channel for the Amazon Pinpoint application.
	Enabled() interface{}
	SetEnabled(val interface{})
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with APNs.
	PrivateKey() *string
	SetPrivateKey(val *string)
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// The identifier that's assigned to your Apple Developer Account team.
	//
	// This identifier is used for APNs tokens.
	TeamId() *string
	SetTeamId(val *string)
	// The authentication key to use for APNs tokens.
	TokenKey() *string
	SetTokenKey(val *string)
	// The key identifier that's assigned to your APNs signing key.
	//
	// Specify this value if you want Amazon Pinpoint to communicate with APNs by using APNs tokens.
	TokenKeyId() *string
	SetTokenKeyId(val *string)
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// 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, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::Pinpoint::APNSSandboxChannel`.

A *channel* is a type of platform that you can deliver messages to. You can use the APNs sandbox channel to send push notification messages to the sandbox environment of the Apple Push Notification service (APNs). Before you can use Amazon Pinpoint to send notifications to the APNs sandbox environment, you have to enable the APNs sandbox channel for an Amazon Pinpoint application.

The APNSSandboxChannel resource represents the status and authentication settings of the APNs sandbox channel for an application.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnAPNSSandboxChannel := awscdk.Aws_pinpoint.NewCfnAPNSSandboxChannel(this, jsii.String("MyCfnAPNSSandboxChannel"), &cfnAPNSSandboxChannelProps{
	applicationId: jsii.String("applicationId"),

	// the properties below are optional
	bundleId: jsii.String("bundleId"),
	certificate: jsii.String("certificate"),
	defaultAuthenticationMethod: jsii.String("defaultAuthenticationMethod"),
	enabled: jsii.Boolean(false),
	privateKey: jsii.String("privateKey"),
	teamId: jsii.String("teamId"),
	tokenKey: jsii.String("tokenKey"),
	tokenKeyId: jsii.String("tokenKeyId"),
})

func NewCfnAPNSSandboxChannel

func NewCfnAPNSSandboxChannel(scope awscdk.Construct, id *string, props *CfnAPNSSandboxChannelProps) CfnAPNSSandboxChannel

Create a new `AWS::Pinpoint::APNSSandboxChannel`.

type CfnAPNSSandboxChannelProps

type CfnAPNSSandboxChannelProps struct {
	// The unique identifier for the Amazon Pinpoint application that the APNs sandbox channel applies to.
	ApplicationId *string `field:"required" json:"applicationId" yaml:"applicationId"`
	// The bundle identifier that's assigned to your iOS app.
	//
	// This identifier is used for APNs tokens.
	BundleId *string `field:"optional" json:"bundleId" yaml:"bundleId"`
	// The APNs client certificate that you received from Apple.
	//
	// Specify this value if you want Amazon Pinpoint to communicate with APNs by using an APNs certificate.
	Certificate *string `field:"optional" json:"certificate" yaml:"certificate"`
	// The default authentication method that you want Amazon Pinpoint to use when authenticating with APNs.
	//
	// Valid options are `key` or `certificate` .
	DefaultAuthenticationMethod *string `field:"optional" json:"defaultAuthenticationMethod" yaml:"defaultAuthenticationMethod"`
	// Specifies whether to enable the APNs Sandbox channel for the Amazon Pinpoint application.
	Enabled interface{} `field:"optional" json:"enabled" yaml:"enabled"`
	// The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with APNs.
	PrivateKey *string `field:"optional" json:"privateKey" yaml:"privateKey"`
	// The identifier that's assigned to your Apple Developer Account team.
	//
	// This identifier is used for APNs tokens.
	TeamId *string `field:"optional" json:"teamId" yaml:"teamId"`
	// The authentication key to use for APNs tokens.
	TokenKey *string `field:"optional" json:"tokenKey" yaml:"tokenKey"`
	// The key identifier that's assigned to your APNs signing key.
	//
	// Specify this value if you want Amazon Pinpoint to communicate with APNs by using APNs tokens.
	TokenKeyId *string `field:"optional" json:"tokenKeyId" yaml:"tokenKeyId"`
}

Properties for defining a `CfnAPNSSandboxChannel`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnAPNSSandboxChannelProps := &cfnAPNSSandboxChannelProps{
	applicationId: jsii.String("applicationId"),

	// the properties below are optional
	bundleId: jsii.String("bundleId"),
	certificate: jsii.String("certificate"),
	defaultAuthenticationMethod: jsii.String("defaultAuthenticationMethod"),
	enabled: jsii.Boolean(false),
	privateKey: jsii.String("privateKey"),
	teamId: jsii.String("teamId"),
	tokenKey: jsii.String("tokenKey"),
	tokenKeyId: jsii.String("tokenKeyId"),
}

type CfnAPNSVoipChannel

type CfnAPNSVoipChannel interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// The unique identifier for the Amazon Pinpoint application that the APNs VoIP channel applies to.
	ApplicationId() *string
	SetApplicationId(val *string)
	// The bundle identifier that's assigned to your iOS app.
	//
	// This identifier is used for APNs tokens.
	BundleId() *string
	SetBundleId(val *string)
	// The APNs client certificate that you received from Apple.
	//
	// Specify this value if you want Amazon Pinpoint to communicate with APNs by using an APNs certificate.
	Certificate() *string
	SetCertificate(val *string)
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// The default authentication method that you want Amazon Pinpoint to use when authenticating with APNs.
	//
	// Valid options are `key` or `certificate` .
	DefaultAuthenticationMethod() *string
	SetDefaultAuthenticationMethod(val *string)
	// Specifies whether to enable the APNs VoIP channel for the Amazon Pinpoint application.
	Enabled() interface{}
	SetEnabled(val interface{})
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with APNs.
	PrivateKey() *string
	SetPrivateKey(val *string)
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// The identifier that's assigned to your Apple Developer Account team.
	//
	// This identifier is used for APNs tokens.
	TeamId() *string
	SetTeamId(val *string)
	// The authentication key to use for APNs tokens.
	TokenKey() *string
	SetTokenKey(val *string)
	// The key identifier that's assigned to your APNs signing key.
	//
	// Specify this value if you want Amazon Pinpoint to communicate with APNs by using APNs tokens.
	TokenKeyId() *string
	SetTokenKeyId(val *string)
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// 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, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::Pinpoint::APNSVoipChannel`.

A *channel* is a type of platform that you can deliver messages to. You can use the APNs VoIP channel to send VoIP notification messages to the Apple Push Notification service (APNs). Before you can use Amazon Pinpoint to send VoIP notifications to APNs, you have to enable the APNs VoIP channel for an Amazon Pinpoint application.

The APNSVoipChannel resource represents the status and authentication settings of the APNs VoIP channel for an application.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnAPNSVoipChannel := awscdk.Aws_pinpoint.NewCfnAPNSVoipChannel(this, jsii.String("MyCfnAPNSVoipChannel"), &cfnAPNSVoipChannelProps{
	applicationId: jsii.String("applicationId"),

	// the properties below are optional
	bundleId: jsii.String("bundleId"),
	certificate: jsii.String("certificate"),
	defaultAuthenticationMethod: jsii.String("defaultAuthenticationMethod"),
	enabled: jsii.Boolean(false),
	privateKey: jsii.String("privateKey"),
	teamId: jsii.String("teamId"),
	tokenKey: jsii.String("tokenKey"),
	tokenKeyId: jsii.String("tokenKeyId"),
})

func NewCfnAPNSVoipChannel

func NewCfnAPNSVoipChannel(scope awscdk.Construct, id *string, props *CfnAPNSVoipChannelProps) CfnAPNSVoipChannel

Create a new `AWS::Pinpoint::APNSVoipChannel`.

type CfnAPNSVoipChannelProps

type CfnAPNSVoipChannelProps struct {
	// The unique identifier for the Amazon Pinpoint application that the APNs VoIP channel applies to.
	ApplicationId *string `field:"required" json:"applicationId" yaml:"applicationId"`
	// The bundle identifier that's assigned to your iOS app.
	//
	// This identifier is used for APNs tokens.
	BundleId *string `field:"optional" json:"bundleId" yaml:"bundleId"`
	// The APNs client certificate that you received from Apple.
	//
	// Specify this value if you want Amazon Pinpoint to communicate with APNs by using an APNs certificate.
	Certificate *string `field:"optional" json:"certificate" yaml:"certificate"`
	// The default authentication method that you want Amazon Pinpoint to use when authenticating with APNs.
	//
	// Valid options are `key` or `certificate` .
	DefaultAuthenticationMethod *string `field:"optional" json:"defaultAuthenticationMethod" yaml:"defaultAuthenticationMethod"`
	// Specifies whether to enable the APNs VoIP channel for the Amazon Pinpoint application.
	Enabled interface{} `field:"optional" json:"enabled" yaml:"enabled"`
	// The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with APNs.
	PrivateKey *string `field:"optional" json:"privateKey" yaml:"privateKey"`
	// The identifier that's assigned to your Apple Developer Account team.
	//
	// This identifier is used for APNs tokens.
	TeamId *string `field:"optional" json:"teamId" yaml:"teamId"`
	// The authentication key to use for APNs tokens.
	TokenKey *string `field:"optional" json:"tokenKey" yaml:"tokenKey"`
	// The key identifier that's assigned to your APNs signing key.
	//
	// Specify this value if you want Amazon Pinpoint to communicate with APNs by using APNs tokens.
	TokenKeyId *string `field:"optional" json:"tokenKeyId" yaml:"tokenKeyId"`
}

Properties for defining a `CfnAPNSVoipChannel`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnAPNSVoipChannelProps := &cfnAPNSVoipChannelProps{
	applicationId: jsii.String("applicationId"),

	// the properties below are optional
	bundleId: jsii.String("bundleId"),
	certificate: jsii.String("certificate"),
	defaultAuthenticationMethod: jsii.String("defaultAuthenticationMethod"),
	enabled: jsii.Boolean(false),
	privateKey: jsii.String("privateKey"),
	teamId: jsii.String("teamId"),
	tokenKey: jsii.String("tokenKey"),
	tokenKeyId: jsii.String("tokenKeyId"),
}

type CfnAPNSVoipSandboxChannel

type CfnAPNSVoipSandboxChannel interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// The unique identifier for the application that the APNs VoIP sandbox channel applies to.
	ApplicationId() *string
	SetApplicationId(val *string)
	// The bundle identifier that's assigned to your iOS app.
	//
	// This identifier is used for APNs tokens.
	BundleId() *string
	SetBundleId(val *string)
	// The APNs client certificate that you received from Apple.
	//
	// Specify this value if you want Amazon Pinpoint to communicate with the APNs sandbox environment by using an APNs certificate.
	Certificate() *string
	SetCertificate(val *string)
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// The default authentication method that you want Amazon Pinpoint to use when authenticating with APNs.
	//
	// Valid options are `key` or `certificate` .
	DefaultAuthenticationMethod() *string
	SetDefaultAuthenticationMethod(val *string)
	// Specifies whether the APNs VoIP sandbox channel is enabled for the application.
	Enabled() interface{}
	SetEnabled(val interface{})
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with the APNs sandbox environment.
	PrivateKey() *string
	SetPrivateKey(val *string)
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// The identifier that's assigned to your Apple developer account team.
	//
	// This identifier is used for APNs tokens.
	TeamId() *string
	SetTeamId(val *string)
	// The authentication key to use for APNs tokens.
	TokenKey() *string
	SetTokenKey(val *string)
	// The key identifier that's assigned to your APNs signing key.
	//
	// Specify this value if you want Amazon Pinpoint to communicate with the APNs sandbox environment by using APNs tokens.
	TokenKeyId() *string
	SetTokenKeyId(val *string)
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// 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, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::Pinpoint::APNSVoipSandboxChannel`.

A *channel* is a type of platform that you can deliver messages to. You can use the APNs VoIP sandbox channel to send VoIP notification messages to the sandbox environment of the Apple Push Notification service (APNs). Before you can use Amazon Pinpoint to send VoIP notifications to the APNs sandbox environment, you have to enable the APNs VoIP sandbox channel for an Amazon Pinpoint application.

The APNSVoipSandboxChannel resource represents the status and authentication settings of the APNs VoIP sandbox channel for an application.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnAPNSVoipSandboxChannel := awscdk.Aws_pinpoint.NewCfnAPNSVoipSandboxChannel(this, jsii.String("MyCfnAPNSVoipSandboxChannel"), &cfnAPNSVoipSandboxChannelProps{
	applicationId: jsii.String("applicationId"),

	// the properties below are optional
	bundleId: jsii.String("bundleId"),
	certificate: jsii.String("certificate"),
	defaultAuthenticationMethod: jsii.String("defaultAuthenticationMethod"),
	enabled: jsii.Boolean(false),
	privateKey: jsii.String("privateKey"),
	teamId: jsii.String("teamId"),
	tokenKey: jsii.String("tokenKey"),
	tokenKeyId: jsii.String("tokenKeyId"),
})

func NewCfnAPNSVoipSandboxChannel

func NewCfnAPNSVoipSandboxChannel(scope awscdk.Construct, id *string, props *CfnAPNSVoipSandboxChannelProps) CfnAPNSVoipSandboxChannel

Create a new `AWS::Pinpoint::APNSVoipSandboxChannel`.

type CfnAPNSVoipSandboxChannelProps

type CfnAPNSVoipSandboxChannelProps struct {
	// The unique identifier for the application that the APNs VoIP sandbox channel applies to.
	ApplicationId *string `field:"required" json:"applicationId" yaml:"applicationId"`
	// The bundle identifier that's assigned to your iOS app.
	//
	// This identifier is used for APNs tokens.
	BundleId *string `field:"optional" json:"bundleId" yaml:"bundleId"`
	// The APNs client certificate that you received from Apple.
	//
	// Specify this value if you want Amazon Pinpoint to communicate with the APNs sandbox environment by using an APNs certificate.
	Certificate *string `field:"optional" json:"certificate" yaml:"certificate"`
	// The default authentication method that you want Amazon Pinpoint to use when authenticating with APNs.
	//
	// Valid options are `key` or `certificate` .
	DefaultAuthenticationMethod *string `field:"optional" json:"defaultAuthenticationMethod" yaml:"defaultAuthenticationMethod"`
	// Specifies whether the APNs VoIP sandbox channel is enabled for the application.
	Enabled interface{} `field:"optional" json:"enabled" yaml:"enabled"`
	// The private key for the APNs client certificate that you want Amazon Pinpoint to use to communicate with the APNs sandbox environment.
	PrivateKey *string `field:"optional" json:"privateKey" yaml:"privateKey"`
	// The identifier that's assigned to your Apple developer account team.
	//
	// This identifier is used for APNs tokens.
	TeamId *string `field:"optional" json:"teamId" yaml:"teamId"`
	// The authentication key to use for APNs tokens.
	TokenKey *string `field:"optional" json:"tokenKey" yaml:"tokenKey"`
	// The key identifier that's assigned to your APNs signing key.
	//
	// Specify this value if you want Amazon Pinpoint to communicate with the APNs sandbox environment by using APNs tokens.
	TokenKeyId *string `field:"optional" json:"tokenKeyId" yaml:"tokenKeyId"`
}

Properties for defining a `CfnAPNSVoipSandboxChannel`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnAPNSVoipSandboxChannelProps := &cfnAPNSVoipSandboxChannelProps{
	applicationId: jsii.String("applicationId"),

	// the properties below are optional
	bundleId: jsii.String("bundleId"),
	certificate: jsii.String("certificate"),
	defaultAuthenticationMethod: jsii.String("defaultAuthenticationMethod"),
	enabled: jsii.Boolean(false),
	privateKey: jsii.String("privateKey"),
	teamId: jsii.String("teamId"),
	tokenKey: jsii.String("tokenKey"),
	tokenKeyId: jsii.String("tokenKeyId"),
}

type CfnApp

type CfnApp interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// The Amazon Resource Name (ARN) of the application.
	AttrArn() *string
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The display name of the application.
	Name() *string
	SetName(val *string)
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// An array of key-value pairs to apply to this resource.
	//
	// For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
	Tags() awscdk.TagManager
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// 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, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::Pinpoint::App`.

An *app* is an Amazon Pinpoint application, also referred to as a *project* . An application is a collection of related settings, customer information, segments, campaigns, and other types of Amazon Pinpoint resources.

The App resource represents an Amazon Pinpoint application.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var tags interface{}

cfnApp := awscdk.Aws_pinpoint.NewCfnApp(this, jsii.String("MyCfnApp"), &cfnAppProps{
	name: jsii.String("name"),

	// the properties below are optional
	tags: tags,
})

func NewCfnApp

func NewCfnApp(scope awscdk.Construct, id *string, props *CfnAppProps) CfnApp

Create a new `AWS::Pinpoint::App`.

type CfnAppProps

type CfnAppProps struct {
	// The display name of the application.
	Name *string `field:"required" json:"name" yaml:"name"`
	// An array of key-value pairs to apply to this resource.
	//
	// For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
	Tags interface{} `field:"optional" json:"tags" yaml:"tags"`
}

Properties for defining a `CfnApp`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var tags interface{}

cfnAppProps := &cfnAppProps{
	name: jsii.String("name"),

	// the properties below are optional
	tags: tags,
}

type CfnApplicationSettings

type CfnApplicationSettings interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// The unique identifier for the Amazon Pinpoint application.
	ApplicationId() *string
	SetApplicationId(val *string)
	// The settings for the Lambda function to use by default as a code hook for campaigns in the application.
	//
	// To override these settings for a specific campaign, use the Campaign resource to define custom Lambda function settings for the campaign.
	CampaignHook() interface{}
	SetCampaignHook(val interface{})
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// Specifies whether to enable application-related alarms in Amazon CloudWatch.
	CloudWatchMetricsEnabled() interface{}
	SetCloudWatchMetricsEnabled(val interface{})
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// The default sending limits for campaigns in the application.
	//
	// To override these limits for a specific campaign, use the Campaign resource to define custom limits for the campaign.
	Limits() interface{}
	SetLimits(val interface{})
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// The default quiet time for campaigns in the application.
	//
	// Quiet time is a specific time range when campaigns don't send messages to endpoints, if all the following conditions are met:
	//
	// - The `EndpointDemographic.Timezone` property of the endpoint is set to a valid value.
	//
	// - The current time in the endpoint's time zone is later than or equal to the time specified by the `QuietTime.Start` property for the application (or a campaign that has custom quiet time settings).
	//
	// - The current time in the endpoint's time zone is earlier than or equal to the time specified by the `QuietTime.End` property for the application (or a campaign that has custom quiet time settings).
	//
	// If any of the preceding conditions isn't met, the endpoint will receive messages from a campaign, even if quiet time is enabled.
	//
	// To override the default quiet time settings for a specific campaign, use the Campaign resource to define a custom quiet time for the campaign.
	QuietTime() interface{}
	SetQuietTime(val interface{})
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// 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, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::Pinpoint::ApplicationSettings`.

Specifies the settings for an Amazon Pinpoint application. In Amazon Pinpoint, an *application* (also referred to as an *app* or *project* ) is a collection of related settings, customer information, segments, and campaigns, and other types of Amazon Pinpoint resources.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnApplicationSettings := awscdk.Aws_pinpoint.NewCfnApplicationSettings(this, jsii.String("MyCfnApplicationSettings"), &cfnApplicationSettingsProps{
	applicationId: jsii.String("applicationId"),

	// the properties below are optional
	campaignHook: &campaignHookProperty{
		lambdaFunctionName: jsii.String("lambdaFunctionName"),
		mode: jsii.String("mode"),
		webUrl: jsii.String("webUrl"),
	},
	cloudWatchMetricsEnabled: jsii.Boolean(false),
	limits: &limitsProperty{
		daily: jsii.Number(123),
		maximumDuration: jsii.Number(123),
		messagesPerSecond: jsii.Number(123),
		total: jsii.Number(123),
	},
	quietTime: &quietTimeProperty{
		end: jsii.String("end"),
		start: jsii.String("start"),
	},
})

func NewCfnApplicationSettings

func NewCfnApplicationSettings(scope awscdk.Construct, id *string, props *CfnApplicationSettingsProps) CfnApplicationSettings

Create a new `AWS::Pinpoint::ApplicationSettings`.

type CfnApplicationSettingsProps

type CfnApplicationSettingsProps struct {
	// The unique identifier for the Amazon Pinpoint application.
	ApplicationId *string `field:"required" json:"applicationId" yaml:"applicationId"`
	// The settings for the Lambda function to use by default as a code hook for campaigns in the application.
	//
	// To override these settings for a specific campaign, use the Campaign resource to define custom Lambda function settings for the campaign.
	CampaignHook interface{} `field:"optional" json:"campaignHook" yaml:"campaignHook"`
	// Specifies whether to enable application-related alarms in Amazon CloudWatch.
	CloudWatchMetricsEnabled interface{} `field:"optional" json:"cloudWatchMetricsEnabled" yaml:"cloudWatchMetricsEnabled"`
	// The default sending limits for campaigns in the application.
	//
	// To override these limits for a specific campaign, use the Campaign resource to define custom limits for the campaign.
	Limits interface{} `field:"optional" json:"limits" yaml:"limits"`
	// The default quiet time for campaigns in the application.
	//
	// Quiet time is a specific time range when campaigns don't send messages to endpoints, if all the following conditions are met:
	//
	// - The `EndpointDemographic.Timezone` property of the endpoint is set to a valid value.
	//
	// - The current time in the endpoint's time zone is later than or equal to the time specified by the `QuietTime.Start` property for the application (or a campaign that has custom quiet time settings).
	//
	// - The current time in the endpoint's time zone is earlier than or equal to the time specified by the `QuietTime.End` property for the application (or a campaign that has custom quiet time settings).
	//
	// If any of the preceding conditions isn't met, the endpoint will receive messages from a campaign, even if quiet time is enabled.
	//
	// To override the default quiet time settings for a specific campaign, use the Campaign resource to define a custom quiet time for the campaign.
	QuietTime interface{} `field:"optional" json:"quietTime" yaml:"quietTime"`
}

Properties for defining a `CfnApplicationSettings`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnApplicationSettingsProps := &cfnApplicationSettingsProps{
	applicationId: jsii.String("applicationId"),

	// the properties below are optional
	campaignHook: &campaignHookProperty{
		lambdaFunctionName: jsii.String("lambdaFunctionName"),
		mode: jsii.String("mode"),
		webUrl: jsii.String("webUrl"),
	},
	cloudWatchMetricsEnabled: jsii.Boolean(false),
	limits: &limitsProperty{
		daily: jsii.Number(123),
		maximumDuration: jsii.Number(123),
		messagesPerSecond: jsii.Number(123),
		total: jsii.Number(123),
	},
	quietTime: &quietTimeProperty{
		end: jsii.String("end"),
		start: jsii.String("start"),
	},
}

type CfnApplicationSettings_CampaignHookProperty

type CfnApplicationSettings_CampaignHookProperty struct {
	// The name or Amazon Resource Name (ARN) of the Lambda function that Amazon Pinpoint invokes to send messages for campaigns in the application.
	LambdaFunctionName *string `field:"optional" json:"lambdaFunctionName" yaml:"lambdaFunctionName"`
	// The mode that Amazon Pinpoint uses to invoke the Lambda function. Possible values are:.
	//
	// - `FILTER` - Invoke the function to customize the segment that's used by a campaign.
	// - `DELIVERY` - (Deprecated) Previously, invoked the function to send a campaign through a custom channel. This functionality is not supported anymore. To send a campaign through a custom channel, use the `CustomDeliveryConfiguration` and `CampaignCustomMessage` objects of the campaign.
	Mode *string `field:"optional" json:"mode" yaml:"mode"`
	// The web URL that Amazon Pinpoint calls to invoke the Lambda function over HTTPS.
	WebUrl *string `field:"optional" json:"webUrl" yaml:"webUrl"`
}

Specifies the Lambda function to use by default as a code hook for campaigns in the application.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

campaignHookProperty := &campaignHookProperty{
	lambdaFunctionName: jsii.String("lambdaFunctionName"),
	mode: jsii.String("mode"),
	webUrl: jsii.String("webUrl"),
}

type CfnApplicationSettings_LimitsProperty

type CfnApplicationSettings_LimitsProperty struct {
	// The maximum number of messages that a campaign can send to a single endpoint during a 24-hour period.
	//
	// The maximum value is 100.
	Daily *float64 `field:"optional" json:"daily" yaml:"daily"`
	// The maximum amount of time, in seconds, that a campaign can attempt to deliver a message after the scheduled start time for the campaign.
	//
	// The minimum value is 60 seconds.
	MaximumDuration *float64 `field:"optional" json:"maximumDuration" yaml:"maximumDuration"`
	// The maximum number of messages that a campaign can send each second.
	//
	// The minimum value is 50. The maximum value is 20,000.
	MessagesPerSecond *float64 `field:"optional" json:"messagesPerSecond" yaml:"messagesPerSecond"`
	// The maximum number of messages that a campaign can send to a single endpoint during the course of the campaign.
	//
	// The maximum value is 100.
	Total *float64 `field:"optional" json:"total" yaml:"total"`
}

Specifies the default sending limits for campaigns in the application.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

limitsProperty := &limitsProperty{
	daily: jsii.Number(123),
	maximumDuration: jsii.Number(123),
	messagesPerSecond: jsii.Number(123),
	total: jsii.Number(123),
}

type CfnApplicationSettings_QuietTimeProperty

type CfnApplicationSettings_QuietTimeProperty struct {
	// The specific time when quiet time ends.
	//
	// This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use `02:30` to represent 2:30 AM, or `14:30` to represent 2:30 PM.
	End *string `field:"required" json:"end" yaml:"end"`
	// The specific time when quiet time begins.
	//
	// This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use `02:30` to represent 2:30 AM, or `14:30` to represent 2:30 PM.
	Start *string `field:"required" json:"start" yaml:"start"`
}

Specifies the start and end times that define a time range when messages aren't sent to endpoints.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

quietTimeProperty := &quietTimeProperty{
	end: jsii.String("end"),
	start: jsii.String("start"),
}

type CfnBaiduChannel

type CfnBaiduChannel interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// The API key that you received from the Baidu Cloud Push service to communicate with the service.
	ApiKey() *string
	SetApiKey(val *string)
	// The unique identifier for the Amazon Pinpoint application that you're configuring the Baidu channel for.
	ApplicationId() *string
	SetApplicationId(val *string)
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// Specifies whether to enable the Baidu channel for the application.
	Enabled() interface{}
	SetEnabled(val interface{})
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The secret key that you received from the Baidu Cloud Push service to communicate with the service.
	SecretKey() *string
	SetSecretKey(val *string)
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// 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, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::Pinpoint::BaiduChannel`.

A *channel* is a type of platform that you can deliver messages to. You can use the Baidu channel to send notifications to the Baidu Cloud Push notification service. Before you can use Amazon Pinpoint to send notifications to the Baidu Cloud Push service, you have to enable the Baidu channel for an Amazon Pinpoint application.

The BaiduChannel resource represents the status and authentication settings of the Baidu channel for an application.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnBaiduChannel := awscdk.Aws_pinpoint.NewCfnBaiduChannel(this, jsii.String("MyCfnBaiduChannel"), &cfnBaiduChannelProps{
	apiKey: jsii.String("apiKey"),
	applicationId: jsii.String("applicationId"),
	secretKey: jsii.String("secretKey"),

	// the properties below are optional
	enabled: jsii.Boolean(false),
})

func NewCfnBaiduChannel

func NewCfnBaiduChannel(scope awscdk.Construct, id *string, props *CfnBaiduChannelProps) CfnBaiduChannel

Create a new `AWS::Pinpoint::BaiduChannel`.

type CfnBaiduChannelProps

type CfnBaiduChannelProps struct {
	// The API key that you received from the Baidu Cloud Push service to communicate with the service.
	ApiKey *string `field:"required" json:"apiKey" yaml:"apiKey"`
	// The unique identifier for the Amazon Pinpoint application that you're configuring the Baidu channel for.
	ApplicationId *string `field:"required" json:"applicationId" yaml:"applicationId"`
	// The secret key that you received from the Baidu Cloud Push service to communicate with the service.
	SecretKey *string `field:"required" json:"secretKey" yaml:"secretKey"`
	// Specifies whether to enable the Baidu channel for the application.
	Enabled interface{} `field:"optional" json:"enabled" yaml:"enabled"`
}

Properties for defining a `CfnBaiduChannel`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnBaiduChannelProps := &cfnBaiduChannelProps{
	apiKey: jsii.String("apiKey"),
	applicationId: jsii.String("applicationId"),
	secretKey: jsii.String("secretKey"),

	// the properties below are optional
	enabled: jsii.Boolean(false),
}

type CfnCampaign

type CfnCampaign interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// An array of requests that defines additional treatments for the campaign, in addition to the default treatment for the campaign.
	AdditionalTreatments() interface{}
	SetAdditionalTreatments(val interface{})
	// The unique identifier for the Amazon Pinpoint application that the campaign is associated with.
	ApplicationId() *string
	SetApplicationId(val *string)
	// The Amazon Resource Name (ARN) of the campaign.
	AttrArn() *string
	// The unique identifier for the campaign.
	AttrCampaignId() *string
	// Specifies the Lambda function to use as a code hook for a campaign.
	CampaignHook() interface{}
	SetCampaignHook(val interface{})
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// The delivery configuration settings for sending the treatment through a custom channel.
	//
	// This object is required if the `MessageConfiguration` object for the treatment specifies a `CustomMessage` object.
	CustomDeliveryConfiguration() interface{}
	SetCustomDeliveryConfiguration(val interface{})
	// A custom description of the campaign.
	Description() *string
	SetDescription(val *string)
	// The allocated percentage of users (segment members) who shouldn't receive messages from the campaign.
	HoldoutPercent() *float64
	SetHoldoutPercent(val *float64)
	// Specifies whether to pause the campaign.
	//
	// A paused campaign doesn't run unless you resume it by changing this value to `false` . If you restart a campaign, the campaign restarts from the beginning and not at the point you paused it.
	IsPaused() interface{}
	SetIsPaused(val interface{})
	// The messaging limits for the campaign.
	Limits() interface{}
	SetLimits(val interface{})
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The message configuration settings for the campaign.
	MessageConfiguration() interface{}
	SetMessageConfiguration(val interface{})
	// The name of the campaign.
	Name() *string
	SetName(val *string)
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// An integer between 1 and 5, inclusive, that represents the priority of the in-app message campaign, where 1 is the highest priority and 5 is the lowest.
	//
	// If there are multiple messages scheduled to be displayed at the same time, the priority determines the order in which those messages are displayed.
	Priority() *float64
	SetPriority(val *float64)
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The schedule settings for the campaign.
	Schedule() interface{}
	SetSchedule(val interface{})
	// The unique identifier for the segment to associate with the campaign.
	SegmentId() *string
	SetSegmentId(val *string)
	// The version of the segment to associate with the campaign.
	SegmentVersion() *float64
	SetSegmentVersion(val *float64)
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// An array of key-value pairs to apply to this resource.
	//
	// For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
	Tags() awscdk.TagManager
	// The message template to use for the treatment.
	TemplateConfiguration() interface{}
	SetTemplateConfiguration(val interface{})
	// A custom description of the default treatment for the campaign.
	TreatmentDescription() *string
	SetTreatmentDescription(val *string)
	// A custom name of the default treatment for the campaign, if the campaign has multiple treatments.
	//
	// A *treatment* is a variation of a campaign that's used for A/B testing.
	TreatmentName() *string
	SetTreatmentName(val *string)
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// 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, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::Pinpoint::Campaign`.

Specifies the settings for a campaign. A *campaign* is a messaging initiative that engages a specific segment of users for an Amazon Pinpoint application.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var attributes interface{}
var customConfig interface{}
var metrics interface{}
var tags interface{}

cfnCampaign := awscdk.Aws_pinpoint.NewCfnCampaign(this, jsii.String("MyCfnCampaign"), &cfnCampaignProps{
	applicationId: jsii.String("applicationId"),
	name: jsii.String("name"),
	schedule: &scheduleProperty{
		endTime: jsii.String("endTime"),
		eventFilter: &campaignEventFilterProperty{
			dimensions: &eventDimensionsProperty{
				attributes: attributes,
				eventType: &setDimensionProperty{
					dimensionType: jsii.String("dimensionType"),
					values: []*string{
						jsii.String("values"),
					},
				},
				metrics: metrics,
			},
			filterType: jsii.String("filterType"),
		},
		frequency: jsii.String("frequency"),
		isLocalTime: jsii.Boolean(false),
		quietTime: &quietTimeProperty{
			end: jsii.String("end"),
			start: jsii.String("start"),
		},
		startTime: jsii.String("startTime"),
		timeZone: jsii.String("timeZone"),
	},
	segmentId: jsii.String("segmentId"),

	// the properties below are optional
	additionalTreatments: []interface{}{
		&writeTreatmentResourceProperty{
			customDeliveryConfiguration: &customDeliveryConfigurationProperty{
				deliveryUri: jsii.String("deliveryUri"),
				endpointTypes: []*string{
					jsii.String("endpointTypes"),
				},
			},
			messageConfiguration: &messageConfigurationProperty{
				admMessage: &messageProperty{
					action: jsii.String("action"),
					body: jsii.String("body"),
					imageIconUrl: jsii.String("imageIconUrl"),
					imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
					imageUrl: jsii.String("imageUrl"),
					jsonBody: jsii.String("jsonBody"),
					mediaUrl: jsii.String("mediaUrl"),
					rawContent: jsii.String("rawContent"),
					silentPush: jsii.Boolean(false),
					timeToLive: jsii.Number(123),
					title: jsii.String("title"),
					url: jsii.String("url"),
				},
				apnsMessage: &messageProperty{
					action: jsii.String("action"),
					body: jsii.String("body"),
					imageIconUrl: jsii.String("imageIconUrl"),
					imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
					imageUrl: jsii.String("imageUrl"),
					jsonBody: jsii.String("jsonBody"),
					mediaUrl: jsii.String("mediaUrl"),
					rawContent: jsii.String("rawContent"),
					silentPush: jsii.Boolean(false),
					timeToLive: jsii.Number(123),
					title: jsii.String("title"),
					url: jsii.String("url"),
				},
				baiduMessage: &messageProperty{
					action: jsii.String("action"),
					body: jsii.String("body"),
					imageIconUrl: jsii.String("imageIconUrl"),
					imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
					imageUrl: jsii.String("imageUrl"),
					jsonBody: jsii.String("jsonBody"),
					mediaUrl: jsii.String("mediaUrl"),
					rawContent: jsii.String("rawContent"),
					silentPush: jsii.Boolean(false),
					timeToLive: jsii.Number(123),
					title: jsii.String("title"),
					url: jsii.String("url"),
				},
				customMessage: &campaignCustomMessageProperty{
					data: jsii.String("data"),
				},
				defaultMessage: &messageProperty{
					action: jsii.String("action"),
					body: jsii.String("body"),
					imageIconUrl: jsii.String("imageIconUrl"),
					imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
					imageUrl: jsii.String("imageUrl"),
					jsonBody: jsii.String("jsonBody"),
					mediaUrl: jsii.String("mediaUrl"),
					rawContent: jsii.String("rawContent"),
					silentPush: jsii.Boolean(false),
					timeToLive: jsii.Number(123),
					title: jsii.String("title"),
					url: jsii.String("url"),
				},
				emailMessage: &campaignEmailMessageProperty{
					body: jsii.String("body"),
					fromAddress: jsii.String("fromAddress"),
					htmlBody: jsii.String("htmlBody"),
					title: jsii.String("title"),
				},
				gcmMessage: &messageProperty{
					action: jsii.String("action"),
					body: jsii.String("body"),
					imageIconUrl: jsii.String("imageIconUrl"),
					imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
					imageUrl: jsii.String("imageUrl"),
					jsonBody: jsii.String("jsonBody"),
					mediaUrl: jsii.String("mediaUrl"),
					rawContent: jsii.String("rawContent"),
					silentPush: jsii.Boolean(false),
					timeToLive: jsii.Number(123),
					title: jsii.String("title"),
					url: jsii.String("url"),
				},
				inAppMessage: &campaignInAppMessageProperty{
					content: []interface{}{
						&inAppMessageContentProperty{
							backgroundColor: jsii.String("backgroundColor"),
							bodyConfig: &inAppMessageBodyConfigProperty{
								alignment: jsii.String("alignment"),
								body: jsii.String("body"),
								textColor: jsii.String("textColor"),
							},
							headerConfig: &inAppMessageHeaderConfigProperty{
								alignment: jsii.String("alignment"),
								header: jsii.String("header"),
								textColor: jsii.String("textColor"),
							},
							imageUrl: jsii.String("imageUrl"),
							primaryBtn: &inAppMessageButtonProperty{
								android: &overrideButtonConfigurationProperty{
									buttonAction: jsii.String("buttonAction"),
									link: jsii.String("link"),
								},
								defaultConfig: &defaultButtonConfigurationProperty{
									backgroundColor: jsii.String("backgroundColor"),
									borderRadius: jsii.Number(123),
									buttonAction: jsii.String("buttonAction"),
									link: jsii.String("link"),
									text: jsii.String("text"),
									textColor: jsii.String("textColor"),
								},
								ios: &overrideButtonConfigurationProperty{
									buttonAction: jsii.String("buttonAction"),
									link: jsii.String("link"),
								},
								web: &overrideButtonConfigurationProperty{
									buttonAction: jsii.String("buttonAction"),
									link: jsii.String("link"),
								},
							},
							secondaryBtn: &inAppMessageButtonProperty{
								android: &overrideButtonConfigurationProperty{
									buttonAction: jsii.String("buttonAction"),
									link: jsii.String("link"),
								},
								defaultConfig: &defaultButtonConfigurationProperty{
									backgroundColor: jsii.String("backgroundColor"),
									borderRadius: jsii.Number(123),
									buttonAction: jsii.String("buttonAction"),
									link: jsii.String("link"),
									text: jsii.String("text"),
									textColor: jsii.String("textColor"),
								},
								ios: &overrideButtonConfigurationProperty{
									buttonAction: jsii.String("buttonAction"),
									link: jsii.String("link"),
								},
								web: &overrideButtonConfigurationProperty{
									buttonAction: jsii.String("buttonAction"),
									link: jsii.String("link"),
								},
							},
						},
					},
					customConfig: customConfig,
					layout: jsii.String("layout"),
				},
				smsMessage: &campaignSmsMessageProperty{
					body: jsii.String("body"),
					entityId: jsii.String("entityId"),
					messageType: jsii.String("messageType"),
					originationNumber: jsii.String("originationNumber"),
					senderId: jsii.String("senderId"),
					templateId: jsii.String("templateId"),
				},
			},
			schedule: &scheduleProperty{
				endTime: jsii.String("endTime"),
				eventFilter: &campaignEventFilterProperty{
					dimensions: &eventDimensionsProperty{
						attributes: attributes,
						eventType: &setDimensionProperty{
							dimensionType: jsii.String("dimensionType"),
							values: []*string{
								jsii.String("values"),
							},
						},
						metrics: metrics,
					},
					filterType: jsii.String("filterType"),
				},
				frequency: jsii.String("frequency"),
				isLocalTime: jsii.Boolean(false),
				quietTime: &quietTimeProperty{
					end: jsii.String("end"),
					start: jsii.String("start"),
				},
				startTime: jsii.String("startTime"),
				timeZone: jsii.String("timeZone"),
			},
			sizePercent: jsii.Number(123),
			templateConfiguration: &templateConfigurationProperty{
				emailTemplate: &templateProperty{
					name: jsii.String("name"),
					version: jsii.String("version"),
				},
				pushTemplate: &templateProperty{
					name: jsii.String("name"),
					version: jsii.String("version"),
				},
				smsTemplate: &templateProperty{
					name: jsii.String("name"),
					version: jsii.String("version"),
				},
				voiceTemplate: &templateProperty{
					name: jsii.String("name"),
					version: jsii.String("version"),
				},
			},
			treatmentDescription: jsii.String("treatmentDescription"),
			treatmentName: jsii.String("treatmentName"),
		},
	},
	campaignHook: &campaignHookProperty{
		lambdaFunctionName: jsii.String("lambdaFunctionName"),
		mode: jsii.String("mode"),
		webUrl: jsii.String("webUrl"),
	},
	customDeliveryConfiguration: &customDeliveryConfigurationProperty{
		deliveryUri: jsii.String("deliveryUri"),
		endpointTypes: []*string{
			jsii.String("endpointTypes"),
		},
	},
	description: jsii.String("description"),
	holdoutPercent: jsii.Number(123),
	isPaused: jsii.Boolean(false),
	limits: &limitsProperty{
		daily: jsii.Number(123),
		maximumDuration: jsii.Number(123),
		messagesPerSecond: jsii.Number(123),
		session: jsii.Number(123),
		total: jsii.Number(123),
	},
	messageConfiguration: &messageConfigurationProperty{
		admMessage: &messageProperty{
			action: jsii.String("action"),
			body: jsii.String("body"),
			imageIconUrl: jsii.String("imageIconUrl"),
			imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
			imageUrl: jsii.String("imageUrl"),
			jsonBody: jsii.String("jsonBody"),
			mediaUrl: jsii.String("mediaUrl"),
			rawContent: jsii.String("rawContent"),
			silentPush: jsii.Boolean(false),
			timeToLive: jsii.Number(123),
			title: jsii.String("title"),
			url: jsii.String("url"),
		},
		apnsMessage: &messageProperty{
			action: jsii.String("action"),
			body: jsii.String("body"),
			imageIconUrl: jsii.String("imageIconUrl"),
			imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
			imageUrl: jsii.String("imageUrl"),
			jsonBody: jsii.String("jsonBody"),
			mediaUrl: jsii.String("mediaUrl"),
			rawContent: jsii.String("rawContent"),
			silentPush: jsii.Boolean(false),
			timeToLive: jsii.Number(123),
			title: jsii.String("title"),
			url: jsii.String("url"),
		},
		baiduMessage: &messageProperty{
			action: jsii.String("action"),
			body: jsii.String("body"),
			imageIconUrl: jsii.String("imageIconUrl"),
			imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
			imageUrl: jsii.String("imageUrl"),
			jsonBody: jsii.String("jsonBody"),
			mediaUrl: jsii.String("mediaUrl"),
			rawContent: jsii.String("rawContent"),
			silentPush: jsii.Boolean(false),
			timeToLive: jsii.Number(123),
			title: jsii.String("title"),
			url: jsii.String("url"),
		},
		customMessage: &campaignCustomMessageProperty{
			data: jsii.String("data"),
		},
		defaultMessage: &messageProperty{
			action: jsii.String("action"),
			body: jsii.String("body"),
			imageIconUrl: jsii.String("imageIconUrl"),
			imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
			imageUrl: jsii.String("imageUrl"),
			jsonBody: jsii.String("jsonBody"),
			mediaUrl: jsii.String("mediaUrl"),
			rawContent: jsii.String("rawContent"),
			silentPush: jsii.Boolean(false),
			timeToLive: jsii.Number(123),
			title: jsii.String("title"),
			url: jsii.String("url"),
		},
		emailMessage: &campaignEmailMessageProperty{
			body: jsii.String("body"),
			fromAddress: jsii.String("fromAddress"),
			htmlBody: jsii.String("htmlBody"),
			title: jsii.String("title"),
		},
		gcmMessage: &messageProperty{
			action: jsii.String("action"),
			body: jsii.String("body"),
			imageIconUrl: jsii.String("imageIconUrl"),
			imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
			imageUrl: jsii.String("imageUrl"),
			jsonBody: jsii.String("jsonBody"),
			mediaUrl: jsii.String("mediaUrl"),
			rawContent: jsii.String("rawContent"),
			silentPush: jsii.Boolean(false),
			timeToLive: jsii.Number(123),
			title: jsii.String("title"),
			url: jsii.String("url"),
		},
		inAppMessage: &campaignInAppMessageProperty{
			content: []interface{}{
				&inAppMessageContentProperty{
					backgroundColor: jsii.String("backgroundColor"),
					bodyConfig: &inAppMessageBodyConfigProperty{
						alignment: jsii.String("alignment"),
						body: jsii.String("body"),
						textColor: jsii.String("textColor"),
					},
					headerConfig: &inAppMessageHeaderConfigProperty{
						alignment: jsii.String("alignment"),
						header: jsii.String("header"),
						textColor: jsii.String("textColor"),
					},
					imageUrl: jsii.String("imageUrl"),
					primaryBtn: &inAppMessageButtonProperty{
						android: &overrideButtonConfigurationProperty{
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
						},
						defaultConfig: &defaultButtonConfigurationProperty{
							backgroundColor: jsii.String("backgroundColor"),
							borderRadius: jsii.Number(123),
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
							text: jsii.String("text"),
							textColor: jsii.String("textColor"),
						},
						ios: &overrideButtonConfigurationProperty{
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
						},
						web: &overrideButtonConfigurationProperty{
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
						},
					},
					secondaryBtn: &inAppMessageButtonProperty{
						android: &overrideButtonConfigurationProperty{
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
						},
						defaultConfig: &defaultButtonConfigurationProperty{
							backgroundColor: jsii.String("backgroundColor"),
							borderRadius: jsii.Number(123),
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
							text: jsii.String("text"),
							textColor: jsii.String("textColor"),
						},
						ios: &overrideButtonConfigurationProperty{
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
						},
						web: &overrideButtonConfigurationProperty{
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
						},
					},
				},
			},
			customConfig: customConfig,
			layout: jsii.String("layout"),
		},
		smsMessage: &campaignSmsMessageProperty{
			body: jsii.String("body"),
			entityId: jsii.String("entityId"),
			messageType: jsii.String("messageType"),
			originationNumber: jsii.String("originationNumber"),
			senderId: jsii.String("senderId"),
			templateId: jsii.String("templateId"),
		},
	},
	priority: jsii.Number(123),
	segmentVersion: jsii.Number(123),
	tags: tags,
	templateConfiguration: &templateConfigurationProperty{
		emailTemplate: &templateProperty{
			name: jsii.String("name"),
			version: jsii.String("version"),
		},
		pushTemplate: &templateProperty{
			name: jsii.String("name"),
			version: jsii.String("version"),
		},
		smsTemplate: &templateProperty{
			name: jsii.String("name"),
			version: jsii.String("version"),
		},
		voiceTemplate: &templateProperty{
			name: jsii.String("name"),
			version: jsii.String("version"),
		},
	},
	treatmentDescription: jsii.String("treatmentDescription"),
	treatmentName: jsii.String("treatmentName"),
})

func NewCfnCampaign

func NewCfnCampaign(scope awscdk.Construct, id *string, props *CfnCampaignProps) CfnCampaign

Create a new `AWS::Pinpoint::Campaign`.

type CfnCampaignProps

type CfnCampaignProps struct {
	// The unique identifier for the Amazon Pinpoint application that the campaign is associated with.
	ApplicationId *string `field:"required" json:"applicationId" yaml:"applicationId"`
	// The name of the campaign.
	Name *string `field:"required" json:"name" yaml:"name"`
	// The schedule settings for the campaign.
	Schedule interface{} `field:"required" json:"schedule" yaml:"schedule"`
	// The unique identifier for the segment to associate with the campaign.
	SegmentId *string `field:"required" json:"segmentId" yaml:"segmentId"`
	// An array of requests that defines additional treatments for the campaign, in addition to the default treatment for the campaign.
	AdditionalTreatments interface{} `field:"optional" json:"additionalTreatments" yaml:"additionalTreatments"`
	// Specifies the Lambda function to use as a code hook for a campaign.
	CampaignHook interface{} `field:"optional" json:"campaignHook" yaml:"campaignHook"`
	// The delivery configuration settings for sending the treatment through a custom channel.
	//
	// This object is required if the `MessageConfiguration` object for the treatment specifies a `CustomMessage` object.
	CustomDeliveryConfiguration interface{} `field:"optional" json:"customDeliveryConfiguration" yaml:"customDeliveryConfiguration"`
	// A custom description of the campaign.
	Description *string `field:"optional" json:"description" yaml:"description"`
	// The allocated percentage of users (segment members) who shouldn't receive messages from the campaign.
	HoldoutPercent *float64 `field:"optional" json:"holdoutPercent" yaml:"holdoutPercent"`
	// Specifies whether to pause the campaign.
	//
	// A paused campaign doesn't run unless you resume it by changing this value to `false` . If you restart a campaign, the campaign restarts from the beginning and not at the point you paused it.
	IsPaused interface{} `field:"optional" json:"isPaused" yaml:"isPaused"`
	// The messaging limits for the campaign.
	Limits interface{} `field:"optional" json:"limits" yaml:"limits"`
	// The message configuration settings for the campaign.
	MessageConfiguration interface{} `field:"optional" json:"messageConfiguration" yaml:"messageConfiguration"`
	// An integer between 1 and 5, inclusive, that represents the priority of the in-app message campaign, where 1 is the highest priority and 5 is the lowest.
	//
	// If there are multiple messages scheduled to be displayed at the same time, the priority determines the order in which those messages are displayed.
	Priority *float64 `field:"optional" json:"priority" yaml:"priority"`
	// The version of the segment to associate with the campaign.
	SegmentVersion *float64 `field:"optional" json:"segmentVersion" yaml:"segmentVersion"`
	// An array of key-value pairs to apply to this resource.
	//
	// For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
	Tags interface{} `field:"optional" json:"tags" yaml:"tags"`
	// The message template to use for the treatment.
	TemplateConfiguration interface{} `field:"optional" json:"templateConfiguration" yaml:"templateConfiguration"`
	// A custom description of the default treatment for the campaign.
	TreatmentDescription *string `field:"optional" json:"treatmentDescription" yaml:"treatmentDescription"`
	// A custom name of the default treatment for the campaign, if the campaign has multiple treatments.
	//
	// A *treatment* is a variation of a campaign that's used for A/B testing.
	TreatmentName *string `field:"optional" json:"treatmentName" yaml:"treatmentName"`
}

Properties for defining a `CfnCampaign`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var attributes interface{}
var customConfig interface{}
var metrics interface{}
var tags interface{}

cfnCampaignProps := &cfnCampaignProps{
	applicationId: jsii.String("applicationId"),
	name: jsii.String("name"),
	schedule: &scheduleProperty{
		endTime: jsii.String("endTime"),
		eventFilter: &campaignEventFilterProperty{
			dimensions: &eventDimensionsProperty{
				attributes: attributes,
				eventType: &setDimensionProperty{
					dimensionType: jsii.String("dimensionType"),
					values: []*string{
						jsii.String("values"),
					},
				},
				metrics: metrics,
			},
			filterType: jsii.String("filterType"),
		},
		frequency: jsii.String("frequency"),
		isLocalTime: jsii.Boolean(false),
		quietTime: &quietTimeProperty{
			end: jsii.String("end"),
			start: jsii.String("start"),
		},
		startTime: jsii.String("startTime"),
		timeZone: jsii.String("timeZone"),
	},
	segmentId: jsii.String("segmentId"),

	// the properties below are optional
	additionalTreatments: []interface{}{
		&writeTreatmentResourceProperty{
			customDeliveryConfiguration: &customDeliveryConfigurationProperty{
				deliveryUri: jsii.String("deliveryUri"),
				endpointTypes: []*string{
					jsii.String("endpointTypes"),
				},
			},
			messageConfiguration: &messageConfigurationProperty{
				admMessage: &messageProperty{
					action: jsii.String("action"),
					body: jsii.String("body"),
					imageIconUrl: jsii.String("imageIconUrl"),
					imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
					imageUrl: jsii.String("imageUrl"),
					jsonBody: jsii.String("jsonBody"),
					mediaUrl: jsii.String("mediaUrl"),
					rawContent: jsii.String("rawContent"),
					silentPush: jsii.Boolean(false),
					timeToLive: jsii.Number(123),
					title: jsii.String("title"),
					url: jsii.String("url"),
				},
				apnsMessage: &messageProperty{
					action: jsii.String("action"),
					body: jsii.String("body"),
					imageIconUrl: jsii.String("imageIconUrl"),
					imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
					imageUrl: jsii.String("imageUrl"),
					jsonBody: jsii.String("jsonBody"),
					mediaUrl: jsii.String("mediaUrl"),
					rawContent: jsii.String("rawContent"),
					silentPush: jsii.Boolean(false),
					timeToLive: jsii.Number(123),
					title: jsii.String("title"),
					url: jsii.String("url"),
				},
				baiduMessage: &messageProperty{
					action: jsii.String("action"),
					body: jsii.String("body"),
					imageIconUrl: jsii.String("imageIconUrl"),
					imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
					imageUrl: jsii.String("imageUrl"),
					jsonBody: jsii.String("jsonBody"),
					mediaUrl: jsii.String("mediaUrl"),
					rawContent: jsii.String("rawContent"),
					silentPush: jsii.Boolean(false),
					timeToLive: jsii.Number(123),
					title: jsii.String("title"),
					url: jsii.String("url"),
				},
				customMessage: &campaignCustomMessageProperty{
					data: jsii.String("data"),
				},
				defaultMessage: &messageProperty{
					action: jsii.String("action"),
					body: jsii.String("body"),
					imageIconUrl: jsii.String("imageIconUrl"),
					imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
					imageUrl: jsii.String("imageUrl"),
					jsonBody: jsii.String("jsonBody"),
					mediaUrl: jsii.String("mediaUrl"),
					rawContent: jsii.String("rawContent"),
					silentPush: jsii.Boolean(false),
					timeToLive: jsii.Number(123),
					title: jsii.String("title"),
					url: jsii.String("url"),
				},
				emailMessage: &campaignEmailMessageProperty{
					body: jsii.String("body"),
					fromAddress: jsii.String("fromAddress"),
					htmlBody: jsii.String("htmlBody"),
					title: jsii.String("title"),
				},
				gcmMessage: &messageProperty{
					action: jsii.String("action"),
					body: jsii.String("body"),
					imageIconUrl: jsii.String("imageIconUrl"),
					imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
					imageUrl: jsii.String("imageUrl"),
					jsonBody: jsii.String("jsonBody"),
					mediaUrl: jsii.String("mediaUrl"),
					rawContent: jsii.String("rawContent"),
					silentPush: jsii.Boolean(false),
					timeToLive: jsii.Number(123),
					title: jsii.String("title"),
					url: jsii.String("url"),
				},
				inAppMessage: &campaignInAppMessageProperty{
					content: []interface{}{
						&inAppMessageContentProperty{
							backgroundColor: jsii.String("backgroundColor"),
							bodyConfig: &inAppMessageBodyConfigProperty{
								alignment: jsii.String("alignment"),
								body: jsii.String("body"),
								textColor: jsii.String("textColor"),
							},
							headerConfig: &inAppMessageHeaderConfigProperty{
								alignment: jsii.String("alignment"),
								header: jsii.String("header"),
								textColor: jsii.String("textColor"),
							},
							imageUrl: jsii.String("imageUrl"),
							primaryBtn: &inAppMessageButtonProperty{
								android: &overrideButtonConfigurationProperty{
									buttonAction: jsii.String("buttonAction"),
									link: jsii.String("link"),
								},
								defaultConfig: &defaultButtonConfigurationProperty{
									backgroundColor: jsii.String("backgroundColor"),
									borderRadius: jsii.Number(123),
									buttonAction: jsii.String("buttonAction"),
									link: jsii.String("link"),
									text: jsii.String("text"),
									textColor: jsii.String("textColor"),
								},
								ios: &overrideButtonConfigurationProperty{
									buttonAction: jsii.String("buttonAction"),
									link: jsii.String("link"),
								},
								web: &overrideButtonConfigurationProperty{
									buttonAction: jsii.String("buttonAction"),
									link: jsii.String("link"),
								},
							},
							secondaryBtn: &inAppMessageButtonProperty{
								android: &overrideButtonConfigurationProperty{
									buttonAction: jsii.String("buttonAction"),
									link: jsii.String("link"),
								},
								defaultConfig: &defaultButtonConfigurationProperty{
									backgroundColor: jsii.String("backgroundColor"),
									borderRadius: jsii.Number(123),
									buttonAction: jsii.String("buttonAction"),
									link: jsii.String("link"),
									text: jsii.String("text"),
									textColor: jsii.String("textColor"),
								},
								ios: &overrideButtonConfigurationProperty{
									buttonAction: jsii.String("buttonAction"),
									link: jsii.String("link"),
								},
								web: &overrideButtonConfigurationProperty{
									buttonAction: jsii.String("buttonAction"),
									link: jsii.String("link"),
								},
							},
						},
					},
					customConfig: customConfig,
					layout: jsii.String("layout"),
				},
				smsMessage: &campaignSmsMessageProperty{
					body: jsii.String("body"),
					entityId: jsii.String("entityId"),
					messageType: jsii.String("messageType"),
					originationNumber: jsii.String("originationNumber"),
					senderId: jsii.String("senderId"),
					templateId: jsii.String("templateId"),
				},
			},
			schedule: &scheduleProperty{
				endTime: jsii.String("endTime"),
				eventFilter: &campaignEventFilterProperty{
					dimensions: &eventDimensionsProperty{
						attributes: attributes,
						eventType: &setDimensionProperty{
							dimensionType: jsii.String("dimensionType"),
							values: []*string{
								jsii.String("values"),
							},
						},
						metrics: metrics,
					},
					filterType: jsii.String("filterType"),
				},
				frequency: jsii.String("frequency"),
				isLocalTime: jsii.Boolean(false),
				quietTime: &quietTimeProperty{
					end: jsii.String("end"),
					start: jsii.String("start"),
				},
				startTime: jsii.String("startTime"),
				timeZone: jsii.String("timeZone"),
			},
			sizePercent: jsii.Number(123),
			templateConfiguration: &templateConfigurationProperty{
				emailTemplate: &templateProperty{
					name: jsii.String("name"),
					version: jsii.String("version"),
				},
				pushTemplate: &templateProperty{
					name: jsii.String("name"),
					version: jsii.String("version"),
				},
				smsTemplate: &templateProperty{
					name: jsii.String("name"),
					version: jsii.String("version"),
				},
				voiceTemplate: &templateProperty{
					name: jsii.String("name"),
					version: jsii.String("version"),
				},
			},
			treatmentDescription: jsii.String("treatmentDescription"),
			treatmentName: jsii.String("treatmentName"),
		},
	},
	campaignHook: &campaignHookProperty{
		lambdaFunctionName: jsii.String("lambdaFunctionName"),
		mode: jsii.String("mode"),
		webUrl: jsii.String("webUrl"),
	},
	customDeliveryConfiguration: &customDeliveryConfigurationProperty{
		deliveryUri: jsii.String("deliveryUri"),
		endpointTypes: []*string{
			jsii.String("endpointTypes"),
		},
	},
	description: jsii.String("description"),
	holdoutPercent: jsii.Number(123),
	isPaused: jsii.Boolean(false),
	limits: &limitsProperty{
		daily: jsii.Number(123),
		maximumDuration: jsii.Number(123),
		messagesPerSecond: jsii.Number(123),
		session: jsii.Number(123),
		total: jsii.Number(123),
	},
	messageConfiguration: &messageConfigurationProperty{
		admMessage: &messageProperty{
			action: jsii.String("action"),
			body: jsii.String("body"),
			imageIconUrl: jsii.String("imageIconUrl"),
			imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
			imageUrl: jsii.String("imageUrl"),
			jsonBody: jsii.String("jsonBody"),
			mediaUrl: jsii.String("mediaUrl"),
			rawContent: jsii.String("rawContent"),
			silentPush: jsii.Boolean(false),
			timeToLive: jsii.Number(123),
			title: jsii.String("title"),
			url: jsii.String("url"),
		},
		apnsMessage: &messageProperty{
			action: jsii.String("action"),
			body: jsii.String("body"),
			imageIconUrl: jsii.String("imageIconUrl"),
			imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
			imageUrl: jsii.String("imageUrl"),
			jsonBody: jsii.String("jsonBody"),
			mediaUrl: jsii.String("mediaUrl"),
			rawContent: jsii.String("rawContent"),
			silentPush: jsii.Boolean(false),
			timeToLive: jsii.Number(123),
			title: jsii.String("title"),
			url: jsii.String("url"),
		},
		baiduMessage: &messageProperty{
			action: jsii.String("action"),
			body: jsii.String("body"),
			imageIconUrl: jsii.String("imageIconUrl"),
			imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
			imageUrl: jsii.String("imageUrl"),
			jsonBody: jsii.String("jsonBody"),
			mediaUrl: jsii.String("mediaUrl"),
			rawContent: jsii.String("rawContent"),
			silentPush: jsii.Boolean(false),
			timeToLive: jsii.Number(123),
			title: jsii.String("title"),
			url: jsii.String("url"),
		},
		customMessage: &campaignCustomMessageProperty{
			data: jsii.String("data"),
		},
		defaultMessage: &messageProperty{
			action: jsii.String("action"),
			body: jsii.String("body"),
			imageIconUrl: jsii.String("imageIconUrl"),
			imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
			imageUrl: jsii.String("imageUrl"),
			jsonBody: jsii.String("jsonBody"),
			mediaUrl: jsii.String("mediaUrl"),
			rawContent: jsii.String("rawContent"),
			silentPush: jsii.Boolean(false),
			timeToLive: jsii.Number(123),
			title: jsii.String("title"),
			url: jsii.String("url"),
		},
		emailMessage: &campaignEmailMessageProperty{
			body: jsii.String("body"),
			fromAddress: jsii.String("fromAddress"),
			htmlBody: jsii.String("htmlBody"),
			title: jsii.String("title"),
		},
		gcmMessage: &messageProperty{
			action: jsii.String("action"),
			body: jsii.String("body"),
			imageIconUrl: jsii.String("imageIconUrl"),
			imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
			imageUrl: jsii.String("imageUrl"),
			jsonBody: jsii.String("jsonBody"),
			mediaUrl: jsii.String("mediaUrl"),
			rawContent: jsii.String("rawContent"),
			silentPush: jsii.Boolean(false),
			timeToLive: jsii.Number(123),
			title: jsii.String("title"),
			url: jsii.String("url"),
		},
		inAppMessage: &campaignInAppMessageProperty{
			content: []interface{}{
				&inAppMessageContentProperty{
					backgroundColor: jsii.String("backgroundColor"),
					bodyConfig: &inAppMessageBodyConfigProperty{
						alignment: jsii.String("alignment"),
						body: jsii.String("body"),
						textColor: jsii.String("textColor"),
					},
					headerConfig: &inAppMessageHeaderConfigProperty{
						alignment: jsii.String("alignment"),
						header: jsii.String("header"),
						textColor: jsii.String("textColor"),
					},
					imageUrl: jsii.String("imageUrl"),
					primaryBtn: &inAppMessageButtonProperty{
						android: &overrideButtonConfigurationProperty{
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
						},
						defaultConfig: &defaultButtonConfigurationProperty{
							backgroundColor: jsii.String("backgroundColor"),
							borderRadius: jsii.Number(123),
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
							text: jsii.String("text"),
							textColor: jsii.String("textColor"),
						},
						ios: &overrideButtonConfigurationProperty{
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
						},
						web: &overrideButtonConfigurationProperty{
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
						},
					},
					secondaryBtn: &inAppMessageButtonProperty{
						android: &overrideButtonConfigurationProperty{
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
						},
						defaultConfig: &defaultButtonConfigurationProperty{
							backgroundColor: jsii.String("backgroundColor"),
							borderRadius: jsii.Number(123),
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
							text: jsii.String("text"),
							textColor: jsii.String("textColor"),
						},
						ios: &overrideButtonConfigurationProperty{
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
						},
						web: &overrideButtonConfigurationProperty{
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
						},
					},
				},
			},
			customConfig: customConfig,
			layout: jsii.String("layout"),
		},
		smsMessage: &campaignSmsMessageProperty{
			body: jsii.String("body"),
			entityId: jsii.String("entityId"),
			messageType: jsii.String("messageType"),
			originationNumber: jsii.String("originationNumber"),
			senderId: jsii.String("senderId"),
			templateId: jsii.String("templateId"),
		},
	},
	priority: jsii.Number(123),
	segmentVersion: jsii.Number(123),
	tags: tags,
	templateConfiguration: &templateConfigurationProperty{
		emailTemplate: &templateProperty{
			name: jsii.String("name"),
			version: jsii.String("version"),
		},
		pushTemplate: &templateProperty{
			name: jsii.String("name"),
			version: jsii.String("version"),
		},
		smsTemplate: &templateProperty{
			name: jsii.String("name"),
			version: jsii.String("version"),
		},
		voiceTemplate: &templateProperty{
			name: jsii.String("name"),
			version: jsii.String("version"),
		},
	},
	treatmentDescription: jsii.String("treatmentDescription"),
	treatmentName: jsii.String("treatmentName"),
}

type CfnCampaign_AttributeDimensionProperty

type CfnCampaign_AttributeDimensionProperty struct {
	// The type of segment dimension to use. Valid values are:.
	//
	// - `INCLUSIVE` – endpoints that have attributes matching the values are included in the segment.
	// - `EXCLUSIVE` – endpoints that have attributes matching the values are excluded from the segment.
	// - `CONTAINS` – endpoints that have attributes' substrings match the values are included in the segment.
	// - `BEFORE` – endpoints with attributes read as ISO_INSTANT datetimes before the value are included in the segment.
	// - `AFTER` – endpoints with attributes read as ISO_INSTANT datetimes after the value are included in the segment.
	// - `BETWEEN` – endpoints with attributes read as ISO_INSTANT datetimes between the values are included in the segment.
	// - `ON` – endpoints with attributes read as ISO_INSTANT dates on the value are included in the segment. Time is ignored in this comparison.
	AttributeType *string `field:"optional" json:"attributeType" yaml:"attributeType"`
	// The criteria values to use for the segment dimension.
	//
	// Depending on the value of the `AttributeType` property, endpoints are included or excluded from the segment if their attribute values match the criteria values.
	Values *[]*string `field:"optional" json:"values" yaml:"values"`
}

Specifies attribute-based criteria for including or excluding endpoints from a segment.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

attributeDimensionProperty := &attributeDimensionProperty{
	attributeType: jsii.String("attributeType"),
	values: []*string{
		jsii.String("values"),
	},
}

type CfnCampaign_CampaignCustomMessageProperty

type CfnCampaign_CampaignCustomMessageProperty struct {
	// The raw, JSON-formatted string to use as the payload for the message.
	//
	// The maximum size is 5 KB.
	Data *string `field:"optional" json:"data" yaml:"data"`
}

Specifies the contents of a message that's sent through a custom channel to recipients of a campaign.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

campaignCustomMessageProperty := &campaignCustomMessageProperty{
	data: jsii.String("data"),
}

type CfnCampaign_CampaignEmailMessageProperty

type CfnCampaign_CampaignEmailMessageProperty struct {
	// The body of the email for recipients whose email clients don't render HTML content.
	Body *string `field:"optional" json:"body" yaml:"body"`
	// The verified email address to send the email from.
	//
	// The default address is the `FromAddress` specified for the email channel for the application.
	FromAddress *string `field:"optional" json:"fromAddress" yaml:"fromAddress"`
	// The body of the email, in HTML format, for recipients whose email clients render HTML content.
	HtmlBody *string `field:"optional" json:"htmlBody" yaml:"htmlBody"`
	// The subject line, or title, of the email.
	Title *string `field:"optional" json:"title" yaml:"title"`
}

Specifies the content and "From" address for an email message that's sent to recipients of a campaign.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

campaignEmailMessageProperty := &campaignEmailMessageProperty{
	body: jsii.String("body"),
	fromAddress: jsii.String("fromAddress"),
	htmlBody: jsii.String("htmlBody"),
	title: jsii.String("title"),
}

type CfnCampaign_CampaignEventFilterProperty

type CfnCampaign_CampaignEventFilterProperty struct {
	// The dimension settings of the event filter for the campaign.
	Dimensions interface{} `field:"optional" json:"dimensions" yaml:"dimensions"`
	// The type of event that causes the campaign to be sent.
	//
	// Valid values are: `SYSTEM` , sends the campaign when a system event occurs; and, `ENDPOINT` , sends the campaign when an endpoint event (Events resource) occurs.
	FilterType *string `field:"optional" json:"filterType" yaml:"filterType"`
}

Specifies the settings for events that cause a campaign to be sent.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var attributes interface{}
var metrics interface{}

campaignEventFilterProperty := &campaignEventFilterProperty{
	dimensions: &eventDimensionsProperty{
		attributes: attributes,
		eventType: &setDimensionProperty{
			dimensionType: jsii.String("dimensionType"),
			values: []*string{
				jsii.String("values"),
			},
		},
		metrics: metrics,
	},
	filterType: jsii.String("filterType"),
}

type CfnCampaign_CampaignHookProperty

type CfnCampaign_CampaignHookProperty struct {
	// The name or Amazon Resource Name (ARN) of the Lambda function that Amazon Pinpoint invokes to customize a segment for a campaign.
	LambdaFunctionName *string `field:"optional" json:"lambdaFunctionName" yaml:"lambdaFunctionName"`
	// The mode that Amazon Pinpoint uses to invoke the Lambda function. Possible values are:.
	//
	// - `FILTER` - Invoke the function to customize the segment that's used by a campaign.
	// - `DELIVERY` - (Deprecated) Previously, invoked the function to send a campaign through a custom channel. This functionality is not supported anymore. To send a campaign through a custom channel, use the `CustomDeliveryConfiguration` and `CampaignCustomMessage` objects of the campaign.
	Mode *string `field:"optional" json:"mode" yaml:"mode"`
	// The web URL that Amazon Pinpoint calls to invoke the Lambda function over HTTPS.
	WebUrl *string `field:"optional" json:"webUrl" yaml:"webUrl"`
}

Specifies settings for invoking an Lambda function that customizes a segment for a campaign.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

campaignHookProperty := &campaignHookProperty{
	lambdaFunctionName: jsii.String("lambdaFunctionName"),
	mode: jsii.String("mode"),
	webUrl: jsii.String("webUrl"),
}

type CfnCampaign_CampaignInAppMessageProperty

type CfnCampaign_CampaignInAppMessageProperty struct {
	// An array that contains configurtion information about the in-app message for the campaign, including title and body text, text colors, background colors, image URLs, and button configurations.
	Content interface{} `field:"optional" json:"content" yaml:"content"`
	// Custom data, in the form of key-value pairs, that is included in an in-app messaging payload.
	CustomConfig interface{} `field:"optional" json:"customConfig" yaml:"customConfig"`
	// A string that describes how the in-app message will appear. You can specify one of the following:.
	//
	// - `BOTTOM_BANNER` – a message that appears as a banner at the bottom of the page.
	// - `TOP_BANNER` – a message that appears as a banner at the top of the page.
	// - `OVERLAYS` – a message that covers entire screen.
	// - `MOBILE_FEED` – a message that appears in a window in front of the page.
	// - `MIDDLE_BANNER` – a message that appears as a banner in the middle of the page.
	// - `CAROUSEL` – a scrollable layout of up to five unique messages.
	Layout *string `field:"optional" json:"layout" yaml:"layout"`
}

Specifies the appearance of an in-app message, including the message type, the title and body text, text and background colors, and the configurations of buttons that appear in the message.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var customConfig interface{}

campaignInAppMessageProperty := &campaignInAppMessageProperty{
	content: []interface{}{
		&inAppMessageContentProperty{
			backgroundColor: jsii.String("backgroundColor"),
			bodyConfig: &inAppMessageBodyConfigProperty{
				alignment: jsii.String("alignment"),
				body: jsii.String("body"),
				textColor: jsii.String("textColor"),
			},
			headerConfig: &inAppMessageHeaderConfigProperty{
				alignment: jsii.String("alignment"),
				header: jsii.String("header"),
				textColor: jsii.String("textColor"),
			},
			imageUrl: jsii.String("imageUrl"),
			primaryBtn: &inAppMessageButtonProperty{
				android: &overrideButtonConfigurationProperty{
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
				},
				defaultConfig: &defaultButtonConfigurationProperty{
					backgroundColor: jsii.String("backgroundColor"),
					borderRadius: jsii.Number(123),
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
					text: jsii.String("text"),
					textColor: jsii.String("textColor"),
				},
				ios: &overrideButtonConfigurationProperty{
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
				},
				web: &overrideButtonConfigurationProperty{
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
				},
			},
			secondaryBtn: &inAppMessageButtonProperty{
				android: &overrideButtonConfigurationProperty{
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
				},
				defaultConfig: &defaultButtonConfigurationProperty{
					backgroundColor: jsii.String("backgroundColor"),
					borderRadius: jsii.Number(123),
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
					text: jsii.String("text"),
					textColor: jsii.String("textColor"),
				},
				ios: &overrideButtonConfigurationProperty{
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
				},
				web: &overrideButtonConfigurationProperty{
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
				},
			},
		},
	},
	customConfig: customConfig,
	layout: jsii.String("layout"),
}

type CfnCampaign_CampaignSmsMessageProperty

type CfnCampaign_CampaignSmsMessageProperty struct {
	// The body of the SMS message.
	Body *string `field:"optional" json:"body" yaml:"body"`
	// The entity ID or Principal Entity (PE) id received from the regulatory body for sending SMS in your country.
	EntityId *string `field:"optional" json:"entityId" yaml:"entityId"`
	// The SMS message type.
	//
	// Valid values are `TRANSACTIONAL` (for messages that are critical or time-sensitive, such as a one-time passwords) and `PROMOTIONAL` (for messsages that aren't critical or time-sensitive, such as marketing messages).
	MessageType *string `field:"optional" json:"messageType" yaml:"messageType"`
	// The long code to send the SMS message from.
	//
	// This value should be one of the dedicated long codes that's assigned to your AWS account. Although it isn't required, we recommend that you specify the long code using an E.164 format to ensure prompt and accurate delivery of the message. For example, +12065550100.
	OriginationNumber *string `field:"optional" json:"originationNumber" yaml:"originationNumber"`
	// The alphabetic Sender ID to display as the sender of the message on a recipient's device.
	//
	// Support for sender IDs varies by country or region. To specify a phone number as the sender, omit this parameter and use `OriginationNumber` instead. For more information about support for Sender ID by country, see the [Amazon Pinpoint User Guide](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-countries.html) .
	SenderId *string `field:"optional" json:"senderId" yaml:"senderId"`
	// The template ID received from the regulatory body for sending SMS in your country.
	TemplateId *string `field:"optional" json:"templateId" yaml:"templateId"`
}

Specifies the content and settings for an SMS message that's sent to recipients of a campaign.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

campaignSmsMessageProperty := &campaignSmsMessageProperty{
	body: jsii.String("body"),
	entityId: jsii.String("entityId"),
	messageType: jsii.String("messageType"),
	originationNumber: jsii.String("originationNumber"),
	senderId: jsii.String("senderId"),
	templateId: jsii.String("templateId"),
}

type CfnCampaign_CustomDeliveryConfigurationProperty

type CfnCampaign_CustomDeliveryConfigurationProperty struct {
	// The destination to send the campaign or treatment to. This value can be one of the following:.
	//
	// - The name or Amazon Resource Name (ARN) of an AWS Lambda function to invoke to handle delivery of the campaign or treatment.
	// - The URL for a web application or service that supports HTTPS and can receive the message. The URL has to be a full URL, including the HTTPS protocol.
	DeliveryUri *string `field:"optional" json:"deliveryUri" yaml:"deliveryUri"`
	// The types of endpoints to send the campaign or treatment to.
	//
	// Each valid value maps to a type of channel that you can associate with an endpoint by using the `ChannelType` property of an endpoint.
	EndpointTypes *[]*string `field:"optional" json:"endpointTypes" yaml:"endpointTypes"`
}

Specifies the delivery configuration settings for sending a campaign or campaign treatment through a custom channel.

This object is required if you use the `CampaignCustomMessage` object to define the message to send for the campaign or campaign treatment.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

customDeliveryConfigurationProperty := &customDeliveryConfigurationProperty{
	deliveryUri: jsii.String("deliveryUri"),
	endpointTypes: []*string{
		jsii.String("endpointTypes"),
	},
}

type CfnCampaign_DefaultButtonConfigurationProperty

type CfnCampaign_DefaultButtonConfigurationProperty struct {
	// The background color of a button, expressed as a hex color code (such as #000000 for black).
	BackgroundColor *string `field:"optional" json:"backgroundColor" yaml:"backgroundColor"`
	// The border radius of a button.
	BorderRadius *float64 `field:"optional" json:"borderRadius" yaml:"borderRadius"`
	// The action that occurs when a recipient chooses a button in an in-app message.
	//
	// You can specify one of the following:
	//
	// - `LINK` – A link to a web destination.
	// - `DEEP_LINK` – A link to a specific page in an application.
	// - `CLOSE` – Dismisses the message.
	ButtonAction *string `field:"optional" json:"buttonAction" yaml:"buttonAction"`
	// The destination (such as a URL) for a button.
	Link *string `field:"optional" json:"link" yaml:"link"`
	// The text that appears on a button in an in-app message.
	Text *string `field:"optional" json:"text" yaml:"text"`
	// The color of the body text in a button, expressed as a hex color code (such as #000000 for black).
	TextColor *string `field:"optional" json:"textColor" yaml:"textColor"`
}

Specifies the default behavior for a button that appears in an in-app message.

You can optionally add button configurations that specifically apply to iOS, Android, or web browser users.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

defaultButtonConfigurationProperty := &defaultButtonConfigurationProperty{
	backgroundColor: jsii.String("backgroundColor"),
	borderRadius: jsii.Number(123),
	buttonAction: jsii.String("buttonAction"),
	link: jsii.String("link"),
	text: jsii.String("text"),
	textColor: jsii.String("textColor"),
}

type CfnCampaign_EventDimensionsProperty

type CfnCampaign_EventDimensionsProperty struct {
	// One or more custom attributes that your application reports to Amazon Pinpoint.
	//
	// You can use these attributes as selection criteria when you create an event filter.
	Attributes interface{} `field:"optional" json:"attributes" yaml:"attributes"`
	// The name of the event that causes the campaign to be sent or the journey activity to be performed.
	//
	// This can be a standard event that Amazon Pinpoint generates, such as `_email.delivered` . For campaigns, this can also be a custom event that's specific to your application. For information about standard events, see [Streaming Amazon Pinpoint Events](https://docs.aws.amazon.com/pinpoint/latest/developerguide/event-streams.html) in the *Amazon Pinpoint Developer Guide* .
	EventType interface{} `field:"optional" json:"eventType" yaml:"eventType"`
	// One or more custom metrics that your application reports to Amazon Pinpoint .
	//
	// You can use these metrics as selection criteria when you create an event filter.
	Metrics interface{} `field:"optional" json:"metrics" yaml:"metrics"`
}

Specifies the dimensions for an event filter that determines when a campaign is sent or a journey activity is performed.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var attributes interface{}
var metrics interface{}

eventDimensionsProperty := &eventDimensionsProperty{
	attributes: attributes,
	eventType: &setDimensionProperty{
		dimensionType: jsii.String("dimensionType"),
		values: []*string{
			jsii.String("values"),
		},
	},
	metrics: metrics,
}

type CfnCampaign_InAppMessageBodyConfigProperty

type CfnCampaign_InAppMessageBodyConfigProperty struct {
	// The text alignment of the main body text of the message.
	//
	// Acceptable values: `LEFT` , `CENTER` , `RIGHT` .
	Alignment *string `field:"optional" json:"alignment" yaml:"alignment"`
	// The main body text of the message.
	Body *string `field:"optional" json:"body" yaml:"body"`
	// The color of the body text, expressed as a string consisting of a hex color code (such as "#000000" for black).
	TextColor *string `field:"optional" json:"textColor" yaml:"textColor"`
}

Specifies the configuration of main body text of the in-app message.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

inAppMessageBodyConfigProperty := &inAppMessageBodyConfigProperty{
	alignment: jsii.String("alignment"),
	body: jsii.String("body"),
	textColor: jsii.String("textColor"),
}

type CfnCampaign_InAppMessageButtonProperty

type CfnCampaign_InAppMessageButtonProperty struct {
	// An object that defines the default behavior for a button in in-app messages sent to Android.
	Android interface{} `field:"optional" json:"android" yaml:"android"`
	// An object that defines the default behavior for a button in an in-app message.
	DefaultConfig interface{} `field:"optional" json:"defaultConfig" yaml:"defaultConfig"`
	// An object that defines the default behavior for a button in in-app messages sent to iOS devices.
	Ios interface{} `field:"optional" json:"ios" yaml:"ios"`
	// An object that defines the default behavior for a button in in-app messages for web applications.
	Web interface{} `field:"optional" json:"web" yaml:"web"`
}

Specifies the configuration of a button that appears in an in-app message.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

inAppMessageButtonProperty := &inAppMessageButtonProperty{
	android: &overrideButtonConfigurationProperty{
		buttonAction: jsii.String("buttonAction"),
		link: jsii.String("link"),
	},
	defaultConfig: &defaultButtonConfigurationProperty{
		backgroundColor: jsii.String("backgroundColor"),
		borderRadius: jsii.Number(123),
		buttonAction: jsii.String("buttonAction"),
		link: jsii.String("link"),
		text: jsii.String("text"),
		textColor: jsii.String("textColor"),
	},
	ios: &overrideButtonConfigurationProperty{
		buttonAction: jsii.String("buttonAction"),
		link: jsii.String("link"),
	},
	web: &overrideButtonConfigurationProperty{
		buttonAction: jsii.String("buttonAction"),
		link: jsii.String("link"),
	},
}

type CfnCampaign_InAppMessageContentProperty

type CfnCampaign_InAppMessageContentProperty struct {
	// The background color for an in-app message banner, expressed as a hex color code (such as #000000 for black).
	BackgroundColor *string `field:"optional" json:"backgroundColor" yaml:"backgroundColor"`
	// Specifies the configuration of main body text in an in-app message template.
	BodyConfig interface{} `field:"optional" json:"bodyConfig" yaml:"bodyConfig"`
	// Specifies the configuration and content of the header or title text of the in-app message.
	HeaderConfig interface{} `field:"optional" json:"headerConfig" yaml:"headerConfig"`
	// The URL of the image that appears on an in-app message banner.
	ImageUrl *string `field:"optional" json:"imageUrl" yaml:"imageUrl"`
	// An object that contains configuration information about the primary button in an in-app message.
	PrimaryBtn interface{} `field:"optional" json:"primaryBtn" yaml:"primaryBtn"`
	// An object that contains configuration information about the secondary button in an in-app message.
	SecondaryBtn interface{} `field:"optional" json:"secondaryBtn" yaml:"secondaryBtn"`
}

Specifies the configuration and contents of an in-app message.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

inAppMessageContentProperty := &inAppMessageContentProperty{
	backgroundColor: jsii.String("backgroundColor"),
	bodyConfig: &inAppMessageBodyConfigProperty{
		alignment: jsii.String("alignment"),
		body: jsii.String("body"),
		textColor: jsii.String("textColor"),
	},
	headerConfig: &inAppMessageHeaderConfigProperty{
		alignment: jsii.String("alignment"),
		header: jsii.String("header"),
		textColor: jsii.String("textColor"),
	},
	imageUrl: jsii.String("imageUrl"),
	primaryBtn: &inAppMessageButtonProperty{
		android: &overrideButtonConfigurationProperty{
			buttonAction: jsii.String("buttonAction"),
			link: jsii.String("link"),
		},
		defaultConfig: &defaultButtonConfigurationProperty{
			backgroundColor: jsii.String("backgroundColor"),
			borderRadius: jsii.Number(123),
			buttonAction: jsii.String("buttonAction"),
			link: jsii.String("link"),
			text: jsii.String("text"),
			textColor: jsii.String("textColor"),
		},
		ios: &overrideButtonConfigurationProperty{
			buttonAction: jsii.String("buttonAction"),
			link: jsii.String("link"),
		},
		web: &overrideButtonConfigurationProperty{
			buttonAction: jsii.String("buttonAction"),
			link: jsii.String("link"),
		},
	},
	secondaryBtn: &inAppMessageButtonProperty{
		android: &overrideButtonConfigurationProperty{
			buttonAction: jsii.String("buttonAction"),
			link: jsii.String("link"),
		},
		defaultConfig: &defaultButtonConfigurationProperty{
			backgroundColor: jsii.String("backgroundColor"),
			borderRadius: jsii.Number(123),
			buttonAction: jsii.String("buttonAction"),
			link: jsii.String("link"),
			text: jsii.String("text"),
			textColor: jsii.String("textColor"),
		},
		ios: &overrideButtonConfigurationProperty{
			buttonAction: jsii.String("buttonAction"),
			link: jsii.String("link"),
		},
		web: &overrideButtonConfigurationProperty{
			buttonAction: jsii.String("buttonAction"),
			link: jsii.String("link"),
		},
	},
}

type CfnCampaign_InAppMessageHeaderConfigProperty

type CfnCampaign_InAppMessageHeaderConfigProperty struct {
	// The text alignment of the title of the message.
	//
	// Acceptable values: `LEFT` , `CENTER` , `RIGHT` .
	Alignment *string `field:"optional" json:"alignment" yaml:"alignment"`
	// The header or title text of the in-app message.
	Header *string `field:"optional" json:"header" yaml:"header"`
	// The color of the body text, expressed as a string consisting of a hex color code (such as "#000000" for black).
	TextColor *string `field:"optional" json:"textColor" yaml:"textColor"`
}

Specifies the configuration and content of the header or title text of the in-app message.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

inAppMessageHeaderConfigProperty := &inAppMessageHeaderConfigProperty{
	alignment: jsii.String("alignment"),
	header: jsii.String("header"),
	textColor: jsii.String("textColor"),
}

type CfnCampaign_LimitsProperty

type CfnCampaign_LimitsProperty struct {
	// The maximum number of messages that a campaign can send to a single endpoint during a 24-hour period.
	//
	// The maximum value is 100.
	Daily *float64 `field:"optional" json:"daily" yaml:"daily"`
	// The maximum amount of time, in seconds, that a campaign can attempt to deliver a message after the scheduled start time for the campaign.
	//
	// The minimum value is 60 seconds.
	MaximumDuration *float64 `field:"optional" json:"maximumDuration" yaml:"maximumDuration"`
	// The maximum number of messages that a campaign can send each second.
	//
	// The minimum value is 50. The maximum value is 20,000.
	MessagesPerSecond *float64 `field:"optional" json:"messagesPerSecond" yaml:"messagesPerSecond"`
	// `CfnCampaign.LimitsProperty.Session`.
	Session *float64 `field:"optional" json:"session" yaml:"session"`
	// The maximum number of messages that a campaign can send to a single endpoint during the course of the campaign.
	//
	// The maximum value is 100.
	Total *float64 `field:"optional" json:"total" yaml:"total"`
}

Specifies the limits on the messages that a campaign can send.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

limitsProperty := &limitsProperty{
	daily: jsii.Number(123),
	maximumDuration: jsii.Number(123),
	messagesPerSecond: jsii.Number(123),
	session: jsii.Number(123),
	total: jsii.Number(123),
}

type CfnCampaign_MessageConfigurationProperty

type CfnCampaign_MessageConfigurationProperty struct {
	// The message that the campaign sends through the ADM (Amazon Device Messaging) channel.
	//
	// If specified, this message overrides the default message.
	AdmMessage interface{} `field:"optional" json:"admMessage" yaml:"admMessage"`
	// The message that the campaign sends through the APNs (Apple Push Notification service) channel.
	//
	// If specified, this message overrides the default message.
	ApnsMessage interface{} `field:"optional" json:"apnsMessage" yaml:"apnsMessage"`
	// The message that the campaign sends through the Baidu (Baidu Cloud Push) channel.
	//
	// If specified, this message overrides the default message.
	BaiduMessage interface{} `field:"optional" json:"baiduMessage" yaml:"baiduMessage"`
	// The message that the campaign sends through a custom channel, as specified by the delivery configuration ( `CustomDeliveryConfiguration` ) settings for the campaign.
	//
	// If specified, this message overrides the default message.
	CustomMessage interface{} `field:"optional" json:"customMessage" yaml:"customMessage"`
	// The default message that the campaign sends through all the channels that are configured for the campaign.
	DefaultMessage interface{} `field:"optional" json:"defaultMessage" yaml:"defaultMessage"`
	// The message that the campaign sends through the email channel.
	//
	// If specified, this message overrides the default message.
	EmailMessage interface{} `field:"optional" json:"emailMessage" yaml:"emailMessage"`
	// The message that the campaign sends through the GCM channel, which enables Amazon Pinpoint to send push notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud Messaging (GCM), service.
	//
	// If specified, this message overrides the default message.
	GcmMessage interface{} `field:"optional" json:"gcmMessage" yaml:"gcmMessage"`
	// The default message for the in-app messaging channel.
	//
	// This message overrides the default message ( `DefaultMessage` ).
	InAppMessage interface{} `field:"optional" json:"inAppMessage" yaml:"inAppMessage"`
	// The message that the campaign sends through the SMS channel.
	//
	// If specified, this message overrides the default message.
	SmsMessage interface{} `field:"optional" json:"smsMessage" yaml:"smsMessage"`
}

Specifies the message configuration settings for a campaign.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var customConfig interface{}

messageConfigurationProperty := &messageConfigurationProperty{
	admMessage: &messageProperty{
		action: jsii.String("action"),
		body: jsii.String("body"),
		imageIconUrl: jsii.String("imageIconUrl"),
		imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
		imageUrl: jsii.String("imageUrl"),
		jsonBody: jsii.String("jsonBody"),
		mediaUrl: jsii.String("mediaUrl"),
		rawContent: jsii.String("rawContent"),
		silentPush: jsii.Boolean(false),
		timeToLive: jsii.Number(123),
		title: jsii.String("title"),
		url: jsii.String("url"),
	},
	apnsMessage: &messageProperty{
		action: jsii.String("action"),
		body: jsii.String("body"),
		imageIconUrl: jsii.String("imageIconUrl"),
		imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
		imageUrl: jsii.String("imageUrl"),
		jsonBody: jsii.String("jsonBody"),
		mediaUrl: jsii.String("mediaUrl"),
		rawContent: jsii.String("rawContent"),
		silentPush: jsii.Boolean(false),
		timeToLive: jsii.Number(123),
		title: jsii.String("title"),
		url: jsii.String("url"),
	},
	baiduMessage: &messageProperty{
		action: jsii.String("action"),
		body: jsii.String("body"),
		imageIconUrl: jsii.String("imageIconUrl"),
		imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
		imageUrl: jsii.String("imageUrl"),
		jsonBody: jsii.String("jsonBody"),
		mediaUrl: jsii.String("mediaUrl"),
		rawContent: jsii.String("rawContent"),
		silentPush: jsii.Boolean(false),
		timeToLive: jsii.Number(123),
		title: jsii.String("title"),
		url: jsii.String("url"),
	},
	customMessage: &campaignCustomMessageProperty{
		data: jsii.String("data"),
	},
	defaultMessage: &messageProperty{
		action: jsii.String("action"),
		body: jsii.String("body"),
		imageIconUrl: jsii.String("imageIconUrl"),
		imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
		imageUrl: jsii.String("imageUrl"),
		jsonBody: jsii.String("jsonBody"),
		mediaUrl: jsii.String("mediaUrl"),
		rawContent: jsii.String("rawContent"),
		silentPush: jsii.Boolean(false),
		timeToLive: jsii.Number(123),
		title: jsii.String("title"),
		url: jsii.String("url"),
	},
	emailMessage: &campaignEmailMessageProperty{
		body: jsii.String("body"),
		fromAddress: jsii.String("fromAddress"),
		htmlBody: jsii.String("htmlBody"),
		title: jsii.String("title"),
	},
	gcmMessage: &messageProperty{
		action: jsii.String("action"),
		body: jsii.String("body"),
		imageIconUrl: jsii.String("imageIconUrl"),
		imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
		imageUrl: jsii.String("imageUrl"),
		jsonBody: jsii.String("jsonBody"),
		mediaUrl: jsii.String("mediaUrl"),
		rawContent: jsii.String("rawContent"),
		silentPush: jsii.Boolean(false),
		timeToLive: jsii.Number(123),
		title: jsii.String("title"),
		url: jsii.String("url"),
	},
	inAppMessage: &campaignInAppMessageProperty{
		content: []interface{}{
			&inAppMessageContentProperty{
				backgroundColor: jsii.String("backgroundColor"),
				bodyConfig: &inAppMessageBodyConfigProperty{
					alignment: jsii.String("alignment"),
					body: jsii.String("body"),
					textColor: jsii.String("textColor"),
				},
				headerConfig: &inAppMessageHeaderConfigProperty{
					alignment: jsii.String("alignment"),
					header: jsii.String("header"),
					textColor: jsii.String("textColor"),
				},
				imageUrl: jsii.String("imageUrl"),
				primaryBtn: &inAppMessageButtonProperty{
					android: &overrideButtonConfigurationProperty{
						buttonAction: jsii.String("buttonAction"),
						link: jsii.String("link"),
					},
					defaultConfig: &defaultButtonConfigurationProperty{
						backgroundColor: jsii.String("backgroundColor"),
						borderRadius: jsii.Number(123),
						buttonAction: jsii.String("buttonAction"),
						link: jsii.String("link"),
						text: jsii.String("text"),
						textColor: jsii.String("textColor"),
					},
					ios: &overrideButtonConfigurationProperty{
						buttonAction: jsii.String("buttonAction"),
						link: jsii.String("link"),
					},
					web: &overrideButtonConfigurationProperty{
						buttonAction: jsii.String("buttonAction"),
						link: jsii.String("link"),
					},
				},
				secondaryBtn: &inAppMessageButtonProperty{
					android: &overrideButtonConfigurationProperty{
						buttonAction: jsii.String("buttonAction"),
						link: jsii.String("link"),
					},
					defaultConfig: &defaultButtonConfigurationProperty{
						backgroundColor: jsii.String("backgroundColor"),
						borderRadius: jsii.Number(123),
						buttonAction: jsii.String("buttonAction"),
						link: jsii.String("link"),
						text: jsii.String("text"),
						textColor: jsii.String("textColor"),
					},
					ios: &overrideButtonConfigurationProperty{
						buttonAction: jsii.String("buttonAction"),
						link: jsii.String("link"),
					},
					web: &overrideButtonConfigurationProperty{
						buttonAction: jsii.String("buttonAction"),
						link: jsii.String("link"),
					},
				},
			},
		},
		customConfig: customConfig,
		layout: jsii.String("layout"),
	},
	smsMessage: &campaignSmsMessageProperty{
		body: jsii.String("body"),
		entityId: jsii.String("entityId"),
		messageType: jsii.String("messageType"),
		originationNumber: jsii.String("originationNumber"),
		senderId: jsii.String("senderId"),
		templateId: jsii.String("templateId"),
	},
}

type CfnCampaign_MessageProperty

type CfnCampaign_MessageProperty struct {
	// The action to occur if a recipient taps the push notification. Valid values are:.
	//
	// - `OPEN_APP` – Your app opens or it becomes the foreground app if it was sent to the background. This is the default action.
	// - `DEEP_LINK` – Your app opens and displays a designated user interface in the app. This setting uses the deep-linking features of iOS and Android.
	// - `URL` – The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify.
	Action *string `field:"optional" json:"action" yaml:"action"`
	// The body of the notification message.
	//
	// The maximum number of characters is 200.
	Body *string `field:"optional" json:"body" yaml:"body"`
	// The URL of the image to display as the push notification icon, such as the icon for the app.
	ImageIconUrl *string `field:"optional" json:"imageIconUrl" yaml:"imageIconUrl"`
	// The URL of the image to display as the small, push notification icon, such as a small version of the icon for the app.
	ImageSmallIconUrl *string `field:"optional" json:"imageSmallIconUrl" yaml:"imageSmallIconUrl"`
	// The URL of an image to display in the push notification.
	ImageUrl *string `field:"optional" json:"imageUrl" yaml:"imageUrl"`
	// The JSON payload to use for a silent push notification.
	JsonBody *string `field:"optional" json:"jsonBody" yaml:"jsonBody"`
	// The URL of the image or video to display in the push notification.
	MediaUrl *string `field:"optional" json:"mediaUrl" yaml:"mediaUrl"`
	// The raw, JSON-formatted string to use as the payload for the notification message.
	//
	// If specified, this value overrides all other content for the message.
	RawContent *string `field:"optional" json:"rawContent" yaml:"rawContent"`
	// Specifies whether the notification is a silent push notification, which is a push notification that doesn't display on a recipient's device.
	//
	// Silent push notifications can be used for cases such as updating an app's configuration, displaying messages in an in-app message center, or supporting phone home functionality.
	SilentPush interface{} `field:"optional" json:"silentPush" yaml:"silentPush"`
	// The number of seconds that the push notification service should keep the message, if the service is unable to deliver the notification the first time.
	//
	// This value is converted to an expiration value when it's sent to a push notification service. If this value is `0` , the service treats the notification as if it expires immediately and the service doesn't store or try to deliver the notification again.
	//
	// This value doesn't apply to messages that are sent through the Amazon Device Messaging (ADM) service.
	TimeToLive *float64 `field:"optional" json:"timeToLive" yaml:"timeToLive"`
	// The title to display above the notification message on a recipient's device.
	Title *string `field:"optional" json:"title" yaml:"title"`
	// The URL to open in a recipient's default mobile browser, if a recipient taps the push notification and the value of the `Action` property is `URL` .
	Url *string `field:"optional" json:"url" yaml:"url"`
}

Specifies the content and settings for a push notification that's sent to recipients of a campaign.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

messageProperty := &messageProperty{
	action: jsii.String("action"),
	body: jsii.String("body"),
	imageIconUrl: jsii.String("imageIconUrl"),
	imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
	imageUrl: jsii.String("imageUrl"),
	jsonBody: jsii.String("jsonBody"),
	mediaUrl: jsii.String("mediaUrl"),
	rawContent: jsii.String("rawContent"),
	silentPush: jsii.Boolean(false),
	timeToLive: jsii.Number(123),
	title: jsii.String("title"),
	url: jsii.String("url"),
}

type CfnCampaign_MetricDimensionProperty

type CfnCampaign_MetricDimensionProperty struct {
	// The operator to use when comparing metric values.
	//
	// Valid values are: `GREATER_THAN` , `LESS_THAN` , `GREATER_THAN_OR_EQUAL` , `LESS_THAN_OR_EQUAL` , and `EQUAL` .
	ComparisonOperator *string `field:"optional" json:"comparisonOperator" yaml:"comparisonOperator"`
	// The value to compare.
	Value *float64 `field:"optional" json:"value" yaml:"value"`
}

Specifies metric-based criteria for including or excluding endpoints from a segment.

These criteria derive from custom metrics that you define for endpoints.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

metricDimensionProperty := &metricDimensionProperty{
	comparisonOperator: jsii.String("comparisonOperator"),
	value: jsii.Number(123),
}

type CfnCampaign_OverrideButtonConfigurationProperty

type CfnCampaign_OverrideButtonConfigurationProperty struct {
	// The action that occurs when a recipient chooses a button in an in-app message.
	//
	// You can specify one of the following:
	//
	// - `LINK` – A link to a web destination.
	// - `DEEP_LINK` – A link to a specific page in an application.
	// - `CLOSE` – Dismisses the message.
	ButtonAction *string `field:"optional" json:"buttonAction" yaml:"buttonAction"`
	// The destination (such as a URL) for a button.
	Link *string `field:"optional" json:"link" yaml:"link"`
}

Specifies the configuration of a button with settings that are specific to a certain device type.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

overrideButtonConfigurationProperty := &overrideButtonConfigurationProperty{
	buttonAction: jsii.String("buttonAction"),
	link: jsii.String("link"),
}

type CfnCampaign_QuietTimeProperty

type CfnCampaign_QuietTimeProperty struct {
	// The specific time when quiet time ends.
	//
	// This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use `02:30` to represent 2:30 AM, or `14:30` to represent 2:30 PM.
	End *string `field:"required" json:"end" yaml:"end"`
	// The specific time when quiet time begins.
	//
	// This value has to use 24-hour notation and be in HH:MM format, where HH is the hour (with a leading zero, if applicable) and MM is the minutes. For example, use `02:30` to represent 2:30 AM, or `14:30` to represent 2:30 PM.
	Start *string `field:"required" json:"start" yaml:"start"`
}

Specifies the start and end times that define a time range when messages aren't sent to endpoints.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

quietTimeProperty := &quietTimeProperty{
	end: jsii.String("end"),
	start: jsii.String("start"),
}

type CfnCampaign_ScheduleProperty

type CfnCampaign_ScheduleProperty struct {
	// The scheduled time, in ISO 8601 format, when the campaign ended or will end.
	EndTime *string `field:"optional" json:"endTime" yaml:"endTime"`
	// The type of event that causes the campaign to be sent, if the value of the `Frequency` property is `EVENT` .
	EventFilter interface{} `field:"optional" json:"eventFilter" yaml:"eventFilter"`
	// Specifies how often the campaign is sent or whether the campaign is sent in response to a specific event.
	Frequency *string `field:"optional" json:"frequency" yaml:"frequency"`
	// Specifies whether the start and end times for the campaign schedule use each recipient's local time.
	//
	// To base the schedule on each recipient's local time, set this value to `true` .
	IsLocalTime interface{} `field:"optional" json:"isLocalTime" yaml:"isLocalTime"`
	// The default quiet time for the campaign.
	//
	// Quiet time is a specific time range when a campaign doesn't send messages to endpoints, if all the following conditions are met:
	//
	// - The `EndpointDemographic.Timezone` property of the endpoint is set to a valid value.
	// - The current time in the endpoint's time zone is later than or equal to the time specified by the `QuietTime.Start` property for the campaign.
	// - The current time in the endpoint's time zone is earlier than or equal to the time specified by the `QuietTime.End` property for the campaign.
	//
	// If any of the preceding conditions isn't met, the endpoint will receive messages from the campaign, even if quiet time is enabled.
	QuietTime interface{} `field:"optional" json:"quietTime" yaml:"quietTime"`
	// The scheduled time when the campaign began or will begin.
	//
	// Valid values are: `IMMEDIATE` , to start the campaign immediately; or, a specific time in ISO 8601 format.
	StartTime *string `field:"optional" json:"startTime" yaml:"startTime"`
	// The starting UTC offset for the campaign schedule, if the value of the `IsLocalTime` property is `true` .
	//
	// Valid values are: `UTC, UTC+01, UTC+02, UTC+03, UTC+03:30, UTC+04, UTC+04:30, UTC+05, UTC+05:30, UTC+05:45, UTC+06, UTC+06:30, UTC+07, UTC+08, UTC+09, UTC+09:30, UTC+10, UTC+10:30, UTC+11, UTC+12, UTC+13, UTC-02, UTC-03, UTC-04, UTC-05, UTC-06, UTC-07, UTC-08, UTC-09, UTC-10,` and `UTC-11` .
	TimeZone *string `field:"optional" json:"timeZone" yaml:"timeZone"`
}

Specifies the schedule settings for a campaign.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var attributes interface{}
var metrics interface{}

scheduleProperty := &scheduleProperty{
	endTime: jsii.String("endTime"),
	eventFilter: &campaignEventFilterProperty{
		dimensions: &eventDimensionsProperty{
			attributes: attributes,
			eventType: &setDimensionProperty{
				dimensionType: jsii.String("dimensionType"),
				values: []*string{
					jsii.String("values"),
				},
			},
			metrics: metrics,
		},
		filterType: jsii.String("filterType"),
	},
	frequency: jsii.String("frequency"),
	isLocalTime: jsii.Boolean(false),
	quietTime: &quietTimeProperty{
		end: jsii.String("end"),
		start: jsii.String("start"),
	},
	startTime: jsii.String("startTime"),
	timeZone: jsii.String("timeZone"),
}

type CfnCampaign_SetDimensionProperty

type CfnCampaign_SetDimensionProperty struct {
	// The type of segment dimension to use.
	//
	// Valid values are: `INCLUSIVE` , endpoints that match the criteria are included in the segment; and, `EXCLUSIVE` , endpoints that match the criteria are excluded from the segment.
	DimensionType *string `field:"optional" json:"dimensionType" yaml:"dimensionType"`
	// The criteria values to use for the segment dimension.
	//
	// Depending on the value of the `DimensionType` property, endpoints are included or excluded from the segment if their values match the criteria values.
	Values *[]*string `field:"optional" json:"values" yaml:"values"`
}

Specifies the dimension type and values for a segment dimension.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

setDimensionProperty := &setDimensionProperty{
	dimensionType: jsii.String("dimensionType"),
	values: []*string{
		jsii.String("values"),
	},
}

type CfnCampaign_TemplateConfigurationProperty

type CfnCampaign_TemplateConfigurationProperty struct {
	// The email template to use for the message.
	EmailTemplate interface{} `field:"optional" json:"emailTemplate" yaml:"emailTemplate"`
	// The push notification template to use for the message.
	PushTemplate interface{} `field:"optional" json:"pushTemplate" yaml:"pushTemplate"`
	// The SMS template to use for the message.
	SmsTemplate interface{} `field:"optional" json:"smsTemplate" yaml:"smsTemplate"`
	// The voice template to use for the message.
	//
	// This object isn't supported for campaigns.
	VoiceTemplate interface{} `field:"optional" json:"voiceTemplate" yaml:"voiceTemplate"`
}

Specifies the message template to use for the message, for each type of channel.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

templateConfigurationProperty := &templateConfigurationProperty{
	emailTemplate: &templateProperty{
		name: jsii.String("name"),
		version: jsii.String("version"),
	},
	pushTemplate: &templateProperty{
		name: jsii.String("name"),
		version: jsii.String("version"),
	},
	smsTemplate: &templateProperty{
		name: jsii.String("name"),
		version: jsii.String("version"),
	},
	voiceTemplate: &templateProperty{
		name: jsii.String("name"),
		version: jsii.String("version"),
	},
}

type CfnCampaign_TemplateProperty

type CfnCampaign_TemplateProperty struct {
	// The name of the message template to use for the message.
	//
	// If specified, this value must match the name of an existing message template.
	Name *string `field:"optional" json:"name" yaml:"name"`
	// The unique identifier for the version of the message template to use for the message.
	//
	// If specified, this value must match the identifier for an existing template version. To retrieve a list of versions and version identifiers for a template, use the Template Versions resource.
	//
	// If you don't specify a value for this property, Amazon Pinpoint uses the *active version* of the template. The *active version* is typically the version of a template that's been most recently reviewed and approved for use, depending on your workflow. It isn't necessarily the latest version of a template.
	Version *string `field:"optional" json:"version" yaml:"version"`
}

Specifies the name and version of the message template to use for the message.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

templateProperty := &templateProperty{
	name: jsii.String("name"),
	version: jsii.String("version"),
}

type CfnCampaign_WriteTreatmentResourceProperty

type CfnCampaign_WriteTreatmentResourceProperty struct {
	// The delivery configuration settings for sending the treatment through a custom channel.
	//
	// This object is required if the `MessageConfiguration` object for the treatment specifies a `CustomMessage` object.
	CustomDeliveryConfiguration interface{} `field:"optional" json:"customDeliveryConfiguration" yaml:"customDeliveryConfiguration"`
	// The message configuration settings for the treatment.
	MessageConfiguration interface{} `field:"optional" json:"messageConfiguration" yaml:"messageConfiguration"`
	// The schedule settings for the treatment.
	Schedule interface{} `field:"optional" json:"schedule" yaml:"schedule"`
	// The allocated percentage of users (segment members) to send the treatment to.
	SizePercent *float64 `field:"optional" json:"sizePercent" yaml:"sizePercent"`
	// The message template to use for the treatment.
	TemplateConfiguration interface{} `field:"optional" json:"templateConfiguration" yaml:"templateConfiguration"`
	// A custom description of the treatment.
	TreatmentDescription *string `field:"optional" json:"treatmentDescription" yaml:"treatmentDescription"`
	// A custom name for the treatment.
	TreatmentName *string `field:"optional" json:"treatmentName" yaml:"treatmentName"`
}

Specifies the settings for a campaign treatment.

A *treatment* is a variation of a campaign that's used for A/B testing of a campaign.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var attributes interface{}
var customConfig interface{}
var metrics interface{}

writeTreatmentResourceProperty := &writeTreatmentResourceProperty{
	customDeliveryConfiguration: &customDeliveryConfigurationProperty{
		deliveryUri: jsii.String("deliveryUri"),
		endpointTypes: []*string{
			jsii.String("endpointTypes"),
		},
	},
	messageConfiguration: &messageConfigurationProperty{
		admMessage: &messageProperty{
			action: jsii.String("action"),
			body: jsii.String("body"),
			imageIconUrl: jsii.String("imageIconUrl"),
			imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
			imageUrl: jsii.String("imageUrl"),
			jsonBody: jsii.String("jsonBody"),
			mediaUrl: jsii.String("mediaUrl"),
			rawContent: jsii.String("rawContent"),
			silentPush: jsii.Boolean(false),
			timeToLive: jsii.Number(123),
			title: jsii.String("title"),
			url: jsii.String("url"),
		},
		apnsMessage: &messageProperty{
			action: jsii.String("action"),
			body: jsii.String("body"),
			imageIconUrl: jsii.String("imageIconUrl"),
			imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
			imageUrl: jsii.String("imageUrl"),
			jsonBody: jsii.String("jsonBody"),
			mediaUrl: jsii.String("mediaUrl"),
			rawContent: jsii.String("rawContent"),
			silentPush: jsii.Boolean(false),
			timeToLive: jsii.Number(123),
			title: jsii.String("title"),
			url: jsii.String("url"),
		},
		baiduMessage: &messageProperty{
			action: jsii.String("action"),
			body: jsii.String("body"),
			imageIconUrl: jsii.String("imageIconUrl"),
			imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
			imageUrl: jsii.String("imageUrl"),
			jsonBody: jsii.String("jsonBody"),
			mediaUrl: jsii.String("mediaUrl"),
			rawContent: jsii.String("rawContent"),
			silentPush: jsii.Boolean(false),
			timeToLive: jsii.Number(123),
			title: jsii.String("title"),
			url: jsii.String("url"),
		},
		customMessage: &campaignCustomMessageProperty{
			data: jsii.String("data"),
		},
		defaultMessage: &messageProperty{
			action: jsii.String("action"),
			body: jsii.String("body"),
			imageIconUrl: jsii.String("imageIconUrl"),
			imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
			imageUrl: jsii.String("imageUrl"),
			jsonBody: jsii.String("jsonBody"),
			mediaUrl: jsii.String("mediaUrl"),
			rawContent: jsii.String("rawContent"),
			silentPush: jsii.Boolean(false),
			timeToLive: jsii.Number(123),
			title: jsii.String("title"),
			url: jsii.String("url"),
		},
		emailMessage: &campaignEmailMessageProperty{
			body: jsii.String("body"),
			fromAddress: jsii.String("fromAddress"),
			htmlBody: jsii.String("htmlBody"),
			title: jsii.String("title"),
		},
		gcmMessage: &messageProperty{
			action: jsii.String("action"),
			body: jsii.String("body"),
			imageIconUrl: jsii.String("imageIconUrl"),
			imageSmallIconUrl: jsii.String("imageSmallIconUrl"),
			imageUrl: jsii.String("imageUrl"),
			jsonBody: jsii.String("jsonBody"),
			mediaUrl: jsii.String("mediaUrl"),
			rawContent: jsii.String("rawContent"),
			silentPush: jsii.Boolean(false),
			timeToLive: jsii.Number(123),
			title: jsii.String("title"),
			url: jsii.String("url"),
		},
		inAppMessage: &campaignInAppMessageProperty{
			content: []interface{}{
				&inAppMessageContentProperty{
					backgroundColor: jsii.String("backgroundColor"),
					bodyConfig: &inAppMessageBodyConfigProperty{
						alignment: jsii.String("alignment"),
						body: jsii.String("body"),
						textColor: jsii.String("textColor"),
					},
					headerConfig: &inAppMessageHeaderConfigProperty{
						alignment: jsii.String("alignment"),
						header: jsii.String("header"),
						textColor: jsii.String("textColor"),
					},
					imageUrl: jsii.String("imageUrl"),
					primaryBtn: &inAppMessageButtonProperty{
						android: &overrideButtonConfigurationProperty{
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
						},
						defaultConfig: &defaultButtonConfigurationProperty{
							backgroundColor: jsii.String("backgroundColor"),
							borderRadius: jsii.Number(123),
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
							text: jsii.String("text"),
							textColor: jsii.String("textColor"),
						},
						ios: &overrideButtonConfigurationProperty{
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
						},
						web: &overrideButtonConfigurationProperty{
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
						},
					},
					secondaryBtn: &inAppMessageButtonProperty{
						android: &overrideButtonConfigurationProperty{
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
						},
						defaultConfig: &defaultButtonConfigurationProperty{
							backgroundColor: jsii.String("backgroundColor"),
							borderRadius: jsii.Number(123),
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
							text: jsii.String("text"),
							textColor: jsii.String("textColor"),
						},
						ios: &overrideButtonConfigurationProperty{
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
						},
						web: &overrideButtonConfigurationProperty{
							buttonAction: jsii.String("buttonAction"),
							link: jsii.String("link"),
						},
					},
				},
			},
			customConfig: customConfig,
			layout: jsii.String("layout"),
		},
		smsMessage: &campaignSmsMessageProperty{
			body: jsii.String("body"),
			entityId: jsii.String("entityId"),
			messageType: jsii.String("messageType"),
			originationNumber: jsii.String("originationNumber"),
			senderId: jsii.String("senderId"),
			templateId: jsii.String("templateId"),
		},
	},
	schedule: &scheduleProperty{
		endTime: jsii.String("endTime"),
		eventFilter: &campaignEventFilterProperty{
			dimensions: &eventDimensionsProperty{
				attributes: attributes,
				eventType: &setDimensionProperty{
					dimensionType: jsii.String("dimensionType"),
					values: []*string{
						jsii.String("values"),
					},
				},
				metrics: metrics,
			},
			filterType: jsii.String("filterType"),
		},
		frequency: jsii.String("frequency"),
		isLocalTime: jsii.Boolean(false),
		quietTime: &quietTimeProperty{
			end: jsii.String("end"),
			start: jsii.String("start"),
		},
		startTime: jsii.String("startTime"),
		timeZone: jsii.String("timeZone"),
	},
	sizePercent: jsii.Number(123),
	templateConfiguration: &templateConfigurationProperty{
		emailTemplate: &templateProperty{
			name: jsii.String("name"),
			version: jsii.String("version"),
		},
		pushTemplate: &templateProperty{
			name: jsii.String("name"),
			version: jsii.String("version"),
		},
		smsTemplate: &templateProperty{
			name: jsii.String("name"),
			version: jsii.String("version"),
		},
		voiceTemplate: &templateProperty{
			name: jsii.String("name"),
			version: jsii.String("version"),
		},
	},
	treatmentDescription: jsii.String("treatmentDescription"),
	treatmentName: jsii.String("treatmentName"),
}

type CfnEmailChannel

type CfnEmailChannel interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// The unique identifier for the Amazon Pinpoint application that you're specifying the email channel for.
	ApplicationId() *string
	SetApplicationId(val *string)
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// The [Amazon SES configuration set](https://docs.aws.amazon.com/ses/latest/APIReference/API_ConfigurationSet.html) that you want to apply to messages that you send through the channel.
	ConfigurationSet() *string
	SetConfigurationSet(val *string)
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// Specifies whether to enable the email channel for the application.
	Enabled() interface{}
	SetEnabled(val interface{})
	// The verified email address that you want to send email from when you send email through the channel.
	FromAddress() *string
	SetFromAddress(val *string)
	// The Amazon Resource Name (ARN) of the identity, verified with Amazon Simple Email Service (Amazon SES), that you want to use when you send email through the channel.
	Identity() *string
	SetIdentity(val *string)
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The ARN of the AWS Identity and Access Management (IAM) role that you want Amazon Pinpoint to use when it submits email-related event data for the channel.
	RoleArn() *string
	SetRoleArn(val *string)
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// 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, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::Pinpoint::EmailChannel`.

A *channel* is a type of platform that you can deliver messages to. You can use the email channel to send email to users. Before you can use Amazon Pinpoint to send email, you must enable the email channel for an Amazon Pinpoint application.

The EmailChannel resource represents the status, identity, and other settings of the email channel for an application.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnEmailChannel := awscdk.Aws_pinpoint.NewCfnEmailChannel(this, jsii.String("MyCfnEmailChannel"), &cfnEmailChannelProps{
	applicationId: jsii.String("applicationId"),
	fromAddress: jsii.String("fromAddress"),
	identity: jsii.String("identity"),

	// the properties below are optional
	configurationSet: jsii.String("configurationSet"),
	enabled: jsii.Boolean(false),
	roleArn: jsii.String("roleArn"),
})

func NewCfnEmailChannel

func NewCfnEmailChannel(scope awscdk.Construct, id *string, props *CfnEmailChannelProps) CfnEmailChannel

Create a new `AWS::Pinpoint::EmailChannel`.

type CfnEmailChannelProps

type CfnEmailChannelProps struct {
	// The unique identifier for the Amazon Pinpoint application that you're specifying the email channel for.
	ApplicationId *string `field:"required" json:"applicationId" yaml:"applicationId"`
	// The verified email address that you want to send email from when you send email through the channel.
	FromAddress *string `field:"required" json:"fromAddress" yaml:"fromAddress"`
	// The Amazon Resource Name (ARN) of the identity, verified with Amazon Simple Email Service (Amazon SES), that you want to use when you send email through the channel.
	Identity *string `field:"required" json:"identity" yaml:"identity"`
	// The [Amazon SES configuration set](https://docs.aws.amazon.com/ses/latest/APIReference/API_ConfigurationSet.html) that you want to apply to messages that you send through the channel.
	ConfigurationSet *string `field:"optional" json:"configurationSet" yaml:"configurationSet"`
	// Specifies whether to enable the email channel for the application.
	Enabled interface{} `field:"optional" json:"enabled" yaml:"enabled"`
	// The ARN of the AWS Identity and Access Management (IAM) role that you want Amazon Pinpoint to use when it submits email-related event data for the channel.
	RoleArn *string `field:"optional" json:"roleArn" yaml:"roleArn"`
}

Properties for defining a `CfnEmailChannel`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnEmailChannelProps := &cfnEmailChannelProps{
	applicationId: jsii.String("applicationId"),
	fromAddress: jsii.String("fromAddress"),
	identity: jsii.String("identity"),

	// the properties below are optional
	configurationSet: jsii.String("configurationSet"),
	enabled: jsii.Boolean(false),
	roleArn: jsii.String("roleArn"),
}

type CfnEmailTemplate

type CfnEmailTemplate interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// The Amazon Resource Name (ARN) of the message template.
	AttrArn() *string
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// A JSON object that specifies the default values to use for message variables in the message template.
	//
	// This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values.
	DefaultSubstitutions() *string
	SetDefaultSubstitutions(val *string)
	// The message body, in HTML format, to use in email messages that are based on the message template.
	//
	// We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message.
	HtmlPart() *string
	SetHtmlPart(val *string)
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// The subject line, or title, to use in email messages that are based on the message template.
	Subject() *string
	SetSubject(val *string)
	// An array of key-value pairs to apply to this resource.
	//
	// For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
	Tags() awscdk.TagManager
	// A custom description of the message template.
	TemplateDescription() *string
	SetTemplateDescription(val *string)
	// The name of the message template.
	TemplateName() *string
	SetTemplateName(val *string)
	// The message body, in plain text format, to use in email messages that are based on the message template.
	//
	// We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices.
	TextPart() *string
	SetTextPart(val *string)
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// 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, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::Pinpoint::EmailTemplate`.

Creates a message template that you can use in messages that are sent through the email channel. A *message template* is a set of content and settings that you can define, save, and reuse in messages for any of your Amazon Pinpoint applications.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var tags interface{}

cfnEmailTemplate := awscdk.Aws_pinpoint.NewCfnEmailTemplate(this, jsii.String("MyCfnEmailTemplate"), &cfnEmailTemplateProps{
	subject: jsii.String("subject"),
	templateName: jsii.String("templateName"),

	// the properties below are optional
	defaultSubstitutions: jsii.String("defaultSubstitutions"),
	htmlPart: jsii.String("htmlPart"),
	tags: tags,
	templateDescription: jsii.String("templateDescription"),
	textPart: jsii.String("textPart"),
})

func NewCfnEmailTemplate

func NewCfnEmailTemplate(scope awscdk.Construct, id *string, props *CfnEmailTemplateProps) CfnEmailTemplate

Create a new `AWS::Pinpoint::EmailTemplate`.

type CfnEmailTemplateProps

type CfnEmailTemplateProps struct {
	// The subject line, or title, to use in email messages that are based on the message template.
	Subject *string `field:"required" json:"subject" yaml:"subject"`
	// The name of the message template.
	TemplateName *string `field:"required" json:"templateName" yaml:"templateName"`
	// A JSON object that specifies the default values to use for message variables in the message template.
	//
	// This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values.
	DefaultSubstitutions *string `field:"optional" json:"defaultSubstitutions" yaml:"defaultSubstitutions"`
	// The message body, in HTML format, to use in email messages that are based on the message template.
	//
	// We recommend using HTML format for email clients that render HTML content. You can include links, formatted text, and more in an HTML message.
	HtmlPart *string `field:"optional" json:"htmlPart" yaml:"htmlPart"`
	// An array of key-value pairs to apply to this resource.
	//
	// For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
	Tags interface{} `field:"optional" json:"tags" yaml:"tags"`
	// A custom description of the message template.
	TemplateDescription *string `field:"optional" json:"templateDescription" yaml:"templateDescription"`
	// The message body, in plain text format, to use in email messages that are based on the message template.
	//
	// We recommend using plain text format for email clients that don't render HTML content and clients that are connected to high-latency networks, such as mobile devices.
	TextPart *string `field:"optional" json:"textPart" yaml:"textPart"`
}

Properties for defining a `CfnEmailTemplate`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var tags interface{}

cfnEmailTemplateProps := &cfnEmailTemplateProps{
	subject: jsii.String("subject"),
	templateName: jsii.String("templateName"),

	// the properties below are optional
	defaultSubstitutions: jsii.String("defaultSubstitutions"),
	htmlPart: jsii.String("htmlPart"),
	tags: tags,
	templateDescription: jsii.String("templateDescription"),
	textPart: jsii.String("textPart"),
}

type CfnEventStream

type CfnEventStream interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// The unique identifier for the Amazon Pinpoint application that you want to export data from.
	ApplicationId() *string
	SetApplicationId(val *string)
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// The Amazon Resource Name (ARN) of the Amazon Kinesis data stream or Amazon Kinesis Data Firehose delivery stream that you want to publish event data to.
	//
	// For a Kinesis data stream, the ARN format is: `arn:aws:kinesis: region : account-id :stream/ stream_name`
	//
	// For a Kinesis Data Firehose delivery stream, the ARN format is: `arn:aws:firehose: region : account-id :deliverystream/ stream_name`.
	DestinationStreamArn() *string
	SetDestinationStreamArn(val *string)
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The AWS Identity and Access Management (IAM) role that authorizes Amazon Pinpoint to publish event data to the stream in your AWS account.
	RoleArn() *string
	SetRoleArn(val *string)
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// 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, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::Pinpoint::EventStream`.

Creates a new event stream for an application or updates the settings of an existing event stream for an application.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnEventStream := awscdk.Aws_pinpoint.NewCfnEventStream(this, jsii.String("MyCfnEventStream"), &cfnEventStreamProps{
	applicationId: jsii.String("applicationId"),
	destinationStreamArn: jsii.String("destinationStreamArn"),
	roleArn: jsii.String("roleArn"),
})

func NewCfnEventStream

func NewCfnEventStream(scope awscdk.Construct, id *string, props *CfnEventStreamProps) CfnEventStream

Create a new `AWS::Pinpoint::EventStream`.

type CfnEventStreamProps

type CfnEventStreamProps struct {
	// The unique identifier for the Amazon Pinpoint application that you want to export data from.
	ApplicationId *string `field:"required" json:"applicationId" yaml:"applicationId"`
	// The Amazon Resource Name (ARN) of the Amazon Kinesis data stream or Amazon Kinesis Data Firehose delivery stream that you want to publish event data to.
	//
	// For a Kinesis data stream, the ARN format is: `arn:aws:kinesis: region : account-id :stream/ stream_name`
	//
	// For a Kinesis Data Firehose delivery stream, the ARN format is: `arn:aws:firehose: region : account-id :deliverystream/ stream_name`.
	DestinationStreamArn *string `field:"required" json:"destinationStreamArn" yaml:"destinationStreamArn"`
	// The AWS Identity and Access Management (IAM) role that authorizes Amazon Pinpoint to publish event data to the stream in your AWS account.
	RoleArn *string `field:"required" json:"roleArn" yaml:"roleArn"`
}

Properties for defining a `CfnEventStream`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnEventStreamProps := &cfnEventStreamProps{
	applicationId: jsii.String("applicationId"),
	destinationStreamArn: jsii.String("destinationStreamArn"),
	roleArn: jsii.String("roleArn"),
}

type CfnGCMChannel

type CfnGCMChannel interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// The Web API key, also called the *server key* , that you received from Google to communicate with Google services.
	ApiKey() *string
	SetApiKey(val *string)
	// The unique identifier for the Amazon Pinpoint application that the GCM channel applies to.
	ApplicationId() *string
	SetApplicationId(val *string)
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// Specifies whether to enable the GCM channel for the Amazon Pinpoint application.
	Enabled() interface{}
	SetEnabled(val interface{})
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// 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, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::Pinpoint::GCMChannel`.

A *channel* is a type of platform that you can deliver messages to. You can use the GCM channel to send push notification messages to the Firebase Cloud Messaging (FCM) service, which replaced the Google Cloud Messaging (GCM) service. Before you use Amazon Pinpoint to send notifications to FCM, you have to enable the GCM channel for an Amazon Pinpoint application.

The GCMChannel resource represents the status and authentication settings of the GCM channel for an application.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnGCMChannel := awscdk.Aws_pinpoint.NewCfnGCMChannel(this, jsii.String("MyCfnGCMChannel"), &cfnGCMChannelProps{
	apiKey: jsii.String("apiKey"),
	applicationId: jsii.String("applicationId"),

	// the properties below are optional
	enabled: jsii.Boolean(false),
})

func NewCfnGCMChannel

func NewCfnGCMChannel(scope awscdk.Construct, id *string, props *CfnGCMChannelProps) CfnGCMChannel

Create a new `AWS::Pinpoint::GCMChannel`.

type CfnGCMChannelProps

type CfnGCMChannelProps struct {
	// The Web API key, also called the *server key* , that you received from Google to communicate with Google services.
	ApiKey *string `field:"required" json:"apiKey" yaml:"apiKey"`
	// The unique identifier for the Amazon Pinpoint application that the GCM channel applies to.
	ApplicationId *string `field:"required" json:"applicationId" yaml:"applicationId"`
	// Specifies whether to enable the GCM channel for the Amazon Pinpoint application.
	Enabled interface{} `field:"optional" json:"enabled" yaml:"enabled"`
}

Properties for defining a `CfnGCMChannel`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnGCMChannelProps := &cfnGCMChannelProps{
	apiKey: jsii.String("apiKey"),
	applicationId: jsii.String("applicationId"),

	// the properties below are optional
	enabled: jsii.Boolean(false),
}

type CfnInAppTemplate

type CfnInAppTemplate interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// The Amazon Resource Name (ARN) of the message template.
	AttrArn() *string
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// An object that contains information about the content of an in-app message, including its title and body text, text colors, background colors, images, buttons, and behaviors.
	Content() interface{}
	SetContent(val interface{})
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// Custom data, in the form of key-value pairs, that is included in an in-app messaging payload.
	CustomConfig() interface{}
	SetCustomConfig(val interface{})
	// A string that determines the appearance of the in-app message. You can specify one of the following:.
	//
	// - `BOTTOM_BANNER` – a message that appears as a banner at the bottom of the page.
	// - `TOP_BANNER` – a message that appears as a banner at the top of the page.
	// - `OVERLAYS` – a message that covers entire screen.
	// - `MOBILE_FEED` – a message that appears in a window in front of the page.
	// - `MIDDLE_BANNER` – a message that appears as a banner in the middle of the page.
	// - `CAROUSEL` – a scrollable layout of up to five unique messages.
	Layout() *string
	SetLayout(val *string)
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// An array of key-value pairs to apply to this resource.
	//
	// For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
	Tags() awscdk.TagManager
	// An optional description of the in-app template.
	TemplateDescription() *string
	SetTemplateDescription(val *string)
	// The name of the in-app message template.
	TemplateName() *string
	SetTemplateName(val *string)
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// 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, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::Pinpoint::InAppTemplate`.

Creates a message template that you can use to send in-app messages. A message template is a set of content and settings that you can define, save, and reuse in messages for any of your Amazon Pinpoint applications.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var customConfig interface{}
var tags interface{}

cfnInAppTemplate := awscdk.Aws_pinpoint.NewCfnInAppTemplate(this, jsii.String("MyCfnInAppTemplate"), &cfnInAppTemplateProps{
	templateName: jsii.String("templateName"),

	// the properties below are optional
	content: []interface{}{
		&inAppMessageContentProperty{
			backgroundColor: jsii.String("backgroundColor"),
			bodyConfig: &bodyConfigProperty{
				alignment: jsii.String("alignment"),
				body: jsii.String("body"),
				textColor: jsii.String("textColor"),
			},
			headerConfig: &headerConfigProperty{
				alignment: jsii.String("alignment"),
				header: jsii.String("header"),
				textColor: jsii.String("textColor"),
			},
			imageUrl: jsii.String("imageUrl"),
			primaryBtn: &buttonConfigProperty{
				android: &overrideButtonConfigurationProperty{
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
				},
				defaultConfig: &defaultButtonConfigurationProperty{
					backgroundColor: jsii.String("backgroundColor"),
					borderRadius: jsii.Number(123),
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
					text: jsii.String("text"),
					textColor: jsii.String("textColor"),
				},
				ios: &overrideButtonConfigurationProperty{
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
				},
				web: &overrideButtonConfigurationProperty{
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
				},
			},
			secondaryBtn: &buttonConfigProperty{
				android: &overrideButtonConfigurationProperty{
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
				},
				defaultConfig: &defaultButtonConfigurationProperty{
					backgroundColor: jsii.String("backgroundColor"),
					borderRadius: jsii.Number(123),
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
					text: jsii.String("text"),
					textColor: jsii.String("textColor"),
				},
				ios: &overrideButtonConfigurationProperty{
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
				},
				web: &overrideButtonConfigurationProperty{
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
				},
			},
		},
	},
	customConfig: customConfig,
	layout: jsii.String("layout"),
	tags: tags,
	templateDescription: jsii.String("templateDescription"),
})

func NewCfnInAppTemplate

func NewCfnInAppTemplate(scope awscdk.Construct, id *string, props *CfnInAppTemplateProps) CfnInAppTemplate

Create a new `AWS::Pinpoint::InAppTemplate`.

type CfnInAppTemplateProps

type CfnInAppTemplateProps struct {
	// The name of the in-app message template.
	TemplateName *string `field:"required" json:"templateName" yaml:"templateName"`
	// An object that contains information about the content of an in-app message, including its title and body text, text colors, background colors, images, buttons, and behaviors.
	Content interface{} `field:"optional" json:"content" yaml:"content"`
	// Custom data, in the form of key-value pairs, that is included in an in-app messaging payload.
	CustomConfig interface{} `field:"optional" json:"customConfig" yaml:"customConfig"`
	// A string that determines the appearance of the in-app message. You can specify one of the following:.
	//
	// - `BOTTOM_BANNER` – a message that appears as a banner at the bottom of the page.
	// - `TOP_BANNER` – a message that appears as a banner at the top of the page.
	// - `OVERLAYS` – a message that covers entire screen.
	// - `MOBILE_FEED` – a message that appears in a window in front of the page.
	// - `MIDDLE_BANNER` – a message that appears as a banner in the middle of the page.
	// - `CAROUSEL` – a scrollable layout of up to five unique messages.
	Layout *string `field:"optional" json:"layout" yaml:"layout"`
	// An array of key-value pairs to apply to this resource.
	//
	// For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
	Tags interface{} `field:"optional" json:"tags" yaml:"tags"`
	// An optional description of the in-app template.
	TemplateDescription *string `field:"optional" json:"templateDescription" yaml:"templateDescription"`
}

Properties for defining a `CfnInAppTemplate`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var customConfig interface{}
var tags interface{}

cfnInAppTemplateProps := &cfnInAppTemplateProps{
	templateName: jsii.String("templateName"),

	// the properties below are optional
	content: []interface{}{
		&inAppMessageContentProperty{
			backgroundColor: jsii.String("backgroundColor"),
			bodyConfig: &bodyConfigProperty{
				alignment: jsii.String("alignment"),
				body: jsii.String("body"),
				textColor: jsii.String("textColor"),
			},
			headerConfig: &headerConfigProperty{
				alignment: jsii.String("alignment"),
				header: jsii.String("header"),
				textColor: jsii.String("textColor"),
			},
			imageUrl: jsii.String("imageUrl"),
			primaryBtn: &buttonConfigProperty{
				android: &overrideButtonConfigurationProperty{
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
				},
				defaultConfig: &defaultButtonConfigurationProperty{
					backgroundColor: jsii.String("backgroundColor"),
					borderRadius: jsii.Number(123),
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
					text: jsii.String("text"),
					textColor: jsii.String("textColor"),
				},
				ios: &overrideButtonConfigurationProperty{
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
				},
				web: &overrideButtonConfigurationProperty{
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
				},
			},
			secondaryBtn: &buttonConfigProperty{
				android: &overrideButtonConfigurationProperty{
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
				},
				defaultConfig: &defaultButtonConfigurationProperty{
					backgroundColor: jsii.String("backgroundColor"),
					borderRadius: jsii.Number(123),
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
					text: jsii.String("text"),
					textColor: jsii.String("textColor"),
				},
				ios: &overrideButtonConfigurationProperty{
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
				},
				web: &overrideButtonConfigurationProperty{
					buttonAction: jsii.String("buttonAction"),
					link: jsii.String("link"),
				},
			},
		},
	},
	customConfig: customConfig,
	layout: jsii.String("layout"),
	tags: tags,
	templateDescription: jsii.String("templateDescription"),
}

type CfnInAppTemplate_BodyConfigProperty

type CfnInAppTemplate_BodyConfigProperty struct {
	// The text alignment of the main body text of the message.
	//
	// Acceptable values: `LEFT` , `CENTER` , `RIGHT` .
	Alignment *string `field:"optional" json:"alignment" yaml:"alignment"`
	// The main body text of the message.
	Body *string `field:"optional" json:"body" yaml:"body"`
	// The color of the body text, expressed as a hex color code (such as #000000 for black).
	TextColor *string `field:"optional" json:"textColor" yaml:"textColor"`
}

Specifies the configuration of the main body text of the in-app message.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

bodyConfigProperty := &bodyConfigProperty{
	alignment: jsii.String("alignment"),
	body: jsii.String("body"),
	textColor: jsii.String("textColor"),
}

type CfnInAppTemplate_ButtonConfigProperty

type CfnInAppTemplate_ButtonConfigProperty struct {
	// Optional button configuration to use for in-app messages sent to Android devices.
	//
	// This button configuration overrides the default button configuration.
	Android interface{} `field:"optional" json:"android" yaml:"android"`
	// Specifies the default behavior of a button that appears in an in-app message.
	//
	// You can optionally add button configurations that specifically apply to iOS, Android, or web browser users.
	DefaultConfig interface{} `field:"optional" json:"defaultConfig" yaml:"defaultConfig"`
	// Optional button configuration to use for in-app messages sent to iOS devices.
	//
	// This button configuration overrides the default button configuration.
	Ios interface{} `field:"optional" json:"ios" yaml:"ios"`
	// Optional button configuration to use for in-app messages sent to web applications.
	//
	// This button configuration overrides the default button configuration.
	Web interface{} `field:"optional" json:"web" yaml:"web"`
}

Specifies the behavior of buttons that appear in an in-app message template.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

buttonConfigProperty := &buttonConfigProperty{
	android: &overrideButtonConfigurationProperty{
		buttonAction: jsii.String("buttonAction"),
		link: jsii.String("link"),
	},
	defaultConfig: &defaultButtonConfigurationProperty{
		backgroundColor: jsii.String("backgroundColor"),
		borderRadius: jsii.Number(123),
		buttonAction: jsii.String("buttonAction"),
		link: jsii.String("link"),
		text: jsii.String("text"),
		textColor: jsii.String("textColor"),
	},
	ios: &overrideButtonConfigurationProperty{
		buttonAction: jsii.String("buttonAction"),
		link: jsii.String("link"),
	},
	web: &overrideButtonConfigurationProperty{
		buttonAction: jsii.String("buttonAction"),
		link: jsii.String("link"),
	},
}

type CfnInAppTemplate_DefaultButtonConfigurationProperty

type CfnInAppTemplate_DefaultButtonConfigurationProperty struct {
	// The background color of a button, expressed as a hex color code (such as #000000 for black).
	BackgroundColor *string `field:"optional" json:"backgroundColor" yaml:"backgroundColor"`
	// The border radius of a button.
	BorderRadius *float64 `field:"optional" json:"borderRadius" yaml:"borderRadius"`
	// The action that occurs when a recipient chooses a button in an in-app message.
	//
	// You can specify one of the following:
	//
	// - `LINK` – A link to a web destination.
	// - `DEEP_LINK` – A link to a specific page in an application.
	// - `CLOSE` – Dismisses the message.
	ButtonAction *string `field:"optional" json:"buttonAction" yaml:"buttonAction"`
	// The destination (such as a URL) for a button.
	Link *string `field:"optional" json:"link" yaml:"link"`
	// The text that appears on a button in an in-app message.
	Text *string `field:"optional" json:"text" yaml:"text"`
	// The color of the body text in a button, expressed as a hex color code (such as #000000 for black).
	TextColor *string `field:"optional" json:"textColor" yaml:"textColor"`
}

Specifies the default behavior of a button that appears in an in-app message.

You can optionally add button configurations that specifically apply to iOS, Android, or web browser users.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

defaultButtonConfigurationProperty := &defaultButtonConfigurationProperty{
	backgroundColor: jsii.String("backgroundColor"),
	borderRadius: jsii.Number(123),
	buttonAction: jsii.String("buttonAction"),
	link: jsii.String("link"),
	text: jsii.String("text"),
	textColor: jsii.String("textColor"),
}

type CfnInAppTemplate_HeaderConfigProperty

type CfnInAppTemplate_HeaderConfigProperty struct {
	// The text alignment of the title of the message.
	//
	// Acceptable values: `LEFT` , `CENTER` , `RIGHT` .
	Alignment *string `field:"optional" json:"alignment" yaml:"alignment"`
	// The title text of the in-app message.
	Header *string `field:"optional" json:"header" yaml:"header"`
	// The color of the title text, expressed as a hex color code (such as #000000 for black).
	TextColor *string `field:"optional" json:"textColor" yaml:"textColor"`
}

Specifies the configuration and content of the header or title text of the in-app message.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

headerConfigProperty := &headerConfigProperty{
	alignment: jsii.String("alignment"),
	header: jsii.String("header"),
	textColor: jsii.String("textColor"),
}

type CfnInAppTemplate_InAppMessageContentProperty

type CfnInAppTemplate_InAppMessageContentProperty struct {
	// The background color for an in-app message banner, expressed as a hex color code (such as #000000 for black).
	BackgroundColor *string `field:"optional" json:"backgroundColor" yaml:"backgroundColor"`
	// An object that contains configuration information about the header or title text of the in-app message.
	BodyConfig interface{} `field:"optional" json:"bodyConfig" yaml:"bodyConfig"`
	// An object that contains configuration information about the header or title text of the in-app message.
	HeaderConfig interface{} `field:"optional" json:"headerConfig" yaml:"headerConfig"`
	// The URL of the image that appears on an in-app message banner.
	ImageUrl *string `field:"optional" json:"imageUrl" yaml:"imageUrl"`
	// An object that contains configuration information about the primary button in an in-app message.
	PrimaryBtn interface{} `field:"optional" json:"primaryBtn" yaml:"primaryBtn"`
	// An object that contains configuration information about the secondary button in an in-app message.
	SecondaryBtn interface{} `field:"optional" json:"secondaryBtn" yaml:"secondaryBtn"`
}

Specifies the configuration of an in-app message, including its header, body, buttons, colors, and images.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

inAppMessageContentProperty := &inAppMessageContentProperty{
	backgroundColor: jsii.String("backgroundColor"),
	bodyConfig: &bodyConfigProperty{
		alignment: jsii.String("alignment"),
		body: jsii.String("body"),
		textColor: jsii.String("textColor"),
	},
	headerConfig: &headerConfigProperty{
		alignment: jsii.String("alignment"),
		header: jsii.String("header"),
		textColor: jsii.String("textColor"),
	},
	imageUrl: jsii.String("imageUrl"),
	primaryBtn: &buttonConfigProperty{
		android: &overrideButtonConfigurationProperty{
			buttonAction: jsii.String("buttonAction"),
			link: jsii.String("link"),
		},
		defaultConfig: &defaultButtonConfigurationProperty{
			backgroundColor: jsii.String("backgroundColor"),
			borderRadius: jsii.Number(123),
			buttonAction: jsii.String("buttonAction"),
			link: jsii.String("link"),
			text: jsii.String("text"),
			textColor: jsii.String("textColor"),
		},
		ios: &overrideButtonConfigurationProperty{
			buttonAction: jsii.String("buttonAction"),
			link: jsii.String("link"),
		},
		web: &overrideButtonConfigurationProperty{
			buttonAction: jsii.String("buttonAction"),
			link: jsii.String("link"),
		},
	},
	secondaryBtn: &buttonConfigProperty{
		android: &overrideButtonConfigurationProperty{
			buttonAction: jsii.String("buttonAction"),
			link: jsii.String("link"),
		},
		defaultConfig: &defaultButtonConfigurationProperty{
			backgroundColor: jsii.String("backgroundColor"),
			borderRadius: jsii.Number(123),
			buttonAction: jsii.String("buttonAction"),
			link: jsii.String("link"),
			text: jsii.String("text"),
			textColor: jsii.String("textColor"),
		},
		ios: &overrideButtonConfigurationProperty{
			buttonAction: jsii.String("buttonAction"),
			link: jsii.String("link"),
		},
		web: &overrideButtonConfigurationProperty{
			buttonAction: jsii.String("buttonAction"),
			link: jsii.String("link"),
		},
	},
}

type CfnInAppTemplate_OverrideButtonConfigurationProperty

type CfnInAppTemplate_OverrideButtonConfigurationProperty struct {
	// The action that occurs when a recipient chooses a button in an in-app message.
	//
	// You can specify one of the following:
	//
	// - `LINK` – A link to a web destination.
	// - `DEEP_LINK` – A link to a specific page in an application.
	// - `CLOSE` – Dismisses the message.
	ButtonAction *string `field:"optional" json:"buttonAction" yaml:"buttonAction"`
	// The destination (such as a URL) for a button.
	Link *string `field:"optional" json:"link" yaml:"link"`
}

Specifies the configuration of a button with settings that are specific to a certain device type.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

overrideButtonConfigurationProperty := &overrideButtonConfigurationProperty{
	buttonAction: jsii.String("buttonAction"),
	link: jsii.String("link"),
}

type CfnPushTemplate

type CfnPushTemplate interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// The message template to use for the ADM (Amazon Device Messaging) channel.
	//
	// This message template overrides the default template for push notification channels ( `Default` ).
	Adm() interface{}
	SetAdm(val interface{})
	// The message template to use for the APNs (Apple Push Notification service) channel.
	//
	// This message template overrides the default template for push notification channels ( `Default` ).
	Apns() interface{}
	SetApns(val interface{})
	// The Amazon Resource Name (ARN) of the message template.
	AttrArn() *string
	// The message template to use for the Baidu (Baidu Cloud Push) channel.
	//
	// This message template overrides the default template for push notification channels ( `Default` ).
	Baidu() interface{}
	SetBaidu(val interface{})
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// The default message template to use for push notification channels.
	Default() interface{}
	SetDefault(val interface{})
	// A JSON object that specifies the default values to use for message variables in the message template.
	//
	// This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values.
	DefaultSubstitutions() *string
	SetDefaultSubstitutions(val *string)
	// The message template to use for the GCM channel, which is used to send notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud Messaging (GCM), service.
	//
	// This message template overrides the default template for push notification channels ( `Default` ).
	Gcm() interface{}
	SetGcm(val interface{})
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// An array of key-value pairs to apply to this resource.
	//
	// For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
	Tags() awscdk.TagManager
	// A custom description of the message template.
	TemplateDescription() *string
	SetTemplateDescription(val *string)
	// The name of the message template.
	TemplateName() *string
	SetTemplateName(val *string)
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// 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, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::Pinpoint::PushTemplate`.

Creates a message template that you can use in messages that are sent through a push notification channel. A *message template* is a set of content and settings that you can define, save, and reuse in messages for any of your Amazon Pinpoint applications.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var tags interface{}

cfnPushTemplate := awscdk.Aws_pinpoint.NewCfnPushTemplate(this, jsii.String("MyCfnPushTemplate"), &cfnPushTemplateProps{
	templateName: jsii.String("templateName"),

	// the properties below are optional
	adm: &androidPushNotificationTemplateProperty{
		action: jsii.String("action"),
		body: jsii.String("body"),
		imageIconUrl: jsii.String("imageIconUrl"),
		imageUrl: jsii.String("imageUrl"),
		smallImageIconUrl: jsii.String("smallImageIconUrl"),
		sound: jsii.String("sound"),
		title: jsii.String("title"),
		url: jsii.String("url"),
	},
	apns: &aPNSPushNotificationTemplateProperty{
		action: jsii.String("action"),
		body: jsii.String("body"),
		mediaUrl: jsii.String("mediaUrl"),
		sound: jsii.String("sound"),
		title: jsii.String("title"),
		url: jsii.String("url"),
	},
	baidu: &androidPushNotificationTemplateProperty{
		action: jsii.String("action"),
		body: jsii.String("body"),
		imageIconUrl: jsii.String("imageIconUrl"),
		imageUrl: jsii.String("imageUrl"),
		smallImageIconUrl: jsii.String("smallImageIconUrl"),
		sound: jsii.String("sound"),
		title: jsii.String("title"),
		url: jsii.String("url"),
	},
	default: &defaultPushNotificationTemplateProperty{
		action: jsii.String("action"),
		body: jsii.String("body"),
		sound: jsii.String("sound"),
		title: jsii.String("title"),
		url: jsii.String("url"),
	},
	defaultSubstitutions: jsii.String("defaultSubstitutions"),
	gcm: &androidPushNotificationTemplateProperty{
		action: jsii.String("action"),
		body: jsii.String("body"),
		imageIconUrl: jsii.String("imageIconUrl"),
		imageUrl: jsii.String("imageUrl"),
		smallImageIconUrl: jsii.String("smallImageIconUrl"),
		sound: jsii.String("sound"),
		title: jsii.String("title"),
		url: jsii.String("url"),
	},
	tags: tags,
	templateDescription: jsii.String("templateDescription"),
})

func NewCfnPushTemplate

func NewCfnPushTemplate(scope awscdk.Construct, id *string, props *CfnPushTemplateProps) CfnPushTemplate

Create a new `AWS::Pinpoint::PushTemplate`.

type CfnPushTemplateProps

type CfnPushTemplateProps struct {
	// The name of the message template.
	TemplateName *string `field:"required" json:"templateName" yaml:"templateName"`
	// The message template to use for the ADM (Amazon Device Messaging) channel.
	//
	// This message template overrides the default template for push notification channels ( `Default` ).
	Adm interface{} `field:"optional" json:"adm" yaml:"adm"`
	// The message template to use for the APNs (Apple Push Notification service) channel.
	//
	// This message template overrides the default template for push notification channels ( `Default` ).
	Apns interface{} `field:"optional" json:"apns" yaml:"apns"`
	// The message template to use for the Baidu (Baidu Cloud Push) channel.
	//
	// This message template overrides the default template for push notification channels ( `Default` ).
	Baidu interface{} `field:"optional" json:"baidu" yaml:"baidu"`
	// The default message template to use for push notification channels.
	Default interface{} `field:"optional" json:"default" yaml:"default"`
	// A JSON object that specifies the default values to use for message variables in the message template.
	//
	// This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values.
	DefaultSubstitutions *string `field:"optional" json:"defaultSubstitutions" yaml:"defaultSubstitutions"`
	// The message template to use for the GCM channel, which is used to send notifications through the Firebase Cloud Messaging (FCM), formerly Google Cloud Messaging (GCM), service.
	//
	// This message template overrides the default template for push notification channels ( `Default` ).
	Gcm interface{} `field:"optional" json:"gcm" yaml:"gcm"`
	// An array of key-value pairs to apply to this resource.
	//
	// For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
	Tags interface{} `field:"optional" json:"tags" yaml:"tags"`
	// A custom description of the message template.
	TemplateDescription *string `field:"optional" json:"templateDescription" yaml:"templateDescription"`
}

Properties for defining a `CfnPushTemplate`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var tags interface{}

cfnPushTemplateProps := &cfnPushTemplateProps{
	templateName: jsii.String("templateName"),

	// the properties below are optional
	adm: &androidPushNotificationTemplateProperty{
		action: jsii.String("action"),
		body: jsii.String("body"),
		imageIconUrl: jsii.String("imageIconUrl"),
		imageUrl: jsii.String("imageUrl"),
		smallImageIconUrl: jsii.String("smallImageIconUrl"),
		sound: jsii.String("sound"),
		title: jsii.String("title"),
		url: jsii.String("url"),
	},
	apns: &aPNSPushNotificationTemplateProperty{
		action: jsii.String("action"),
		body: jsii.String("body"),
		mediaUrl: jsii.String("mediaUrl"),
		sound: jsii.String("sound"),
		title: jsii.String("title"),
		url: jsii.String("url"),
	},
	baidu: &androidPushNotificationTemplateProperty{
		action: jsii.String("action"),
		body: jsii.String("body"),
		imageIconUrl: jsii.String("imageIconUrl"),
		imageUrl: jsii.String("imageUrl"),
		smallImageIconUrl: jsii.String("smallImageIconUrl"),
		sound: jsii.String("sound"),
		title: jsii.String("title"),
		url: jsii.String("url"),
	},
	default: &defaultPushNotificationTemplateProperty{
		action: jsii.String("action"),
		body: jsii.String("body"),
		sound: jsii.String("sound"),
		title: jsii.String("title"),
		url: jsii.String("url"),
	},
	defaultSubstitutions: jsii.String("defaultSubstitutions"),
	gcm: &androidPushNotificationTemplateProperty{
		action: jsii.String("action"),
		body: jsii.String("body"),
		imageIconUrl: jsii.String("imageIconUrl"),
		imageUrl: jsii.String("imageUrl"),
		smallImageIconUrl: jsii.String("smallImageIconUrl"),
		sound: jsii.String("sound"),
		title: jsii.String("title"),
		url: jsii.String("url"),
	},
	tags: tags,
	templateDescription: jsii.String("templateDescription"),
}

type CfnPushTemplate_APNSPushNotificationTemplateProperty

type CfnPushTemplate_APNSPushNotificationTemplateProperty struct {
	// The action to occur if a recipient taps a push notification that's based on the message template.
	//
	// Valid values are:
	//
	// - `OPEN_APP` – Your app opens or it becomes the foreground app if it was sent to the background. This is the default action.
	// - `DEEP_LINK` – Your app opens and displays a designated user interface in the app. This setting uses the deep-linking features of the iOS platform.
	// - `URL` – The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify.
	Action *string `field:"optional" json:"action" yaml:"action"`
	// The message body to use in push notifications that are based on the message template.
	Body *string `field:"optional" json:"body" yaml:"body"`
	// The URL of an image or video to display in push notifications that are based on the message template.
	MediaUrl *string `field:"optional" json:"mediaUrl" yaml:"mediaUrl"`
	// The key for the sound to play when the recipient receives a push notification that's based on the message template.
	//
	// The value for this key is the name of a sound file in your app's main bundle or the `Library/Sounds` folder in your app's data container. If the sound file can't be found or you specify `default` for the value, the system plays the default alert sound.
	Sound *string `field:"optional" json:"sound" yaml:"sound"`
	// The title to use in push notifications that are based on the message template.
	//
	// This title appears above the notification message on a recipient's device.
	Title *string `field:"optional" json:"title" yaml:"title"`
	// The URL to open in the recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the `Action` property is `URL` .
	Url *string `field:"optional" json:"url" yaml:"url"`
}

Specifies channel-specific content and settings for a message template that can be used in push notifications that are sent through the APNs (Apple Push Notification service) channel.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

aPNSPushNotificationTemplateProperty := &aPNSPushNotificationTemplateProperty{
	action: jsii.String("action"),
	body: jsii.String("body"),
	mediaUrl: jsii.String("mediaUrl"),
	sound: jsii.String("sound"),
	title: jsii.String("title"),
	url: jsii.String("url"),
}

type CfnPushTemplate_AndroidPushNotificationTemplateProperty

type CfnPushTemplate_AndroidPushNotificationTemplateProperty struct {
	// The action to occur if a recipient taps a push notification that's based on the message template.
	//
	// Valid values are:
	//
	// - `OPEN_APP` – Your app opens or it becomes the foreground app if it was sent to the background. This is the default action.
	// - `DEEP_LINK` – Your app opens and displays a designated user interface in the app. This action uses the deep-linking features of the Android platform.
	// - `URL` – The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify.
	Action *string `field:"optional" json:"action" yaml:"action"`
	// The message body to use in a push notification that's based on the message template.
	Body *string `field:"optional" json:"body" yaml:"body"`
	// The URL of the large icon image to display in the content view of a push notification that's based on the message template.
	ImageIconUrl *string `field:"optional" json:"imageIconUrl" yaml:"imageIconUrl"`
	// The URL of an image to display in a push notification that's based on the message template.
	ImageUrl *string `field:"optional" json:"imageUrl" yaml:"imageUrl"`
	// The URL of the small icon image to display in the status bar and the content view of a push notification that's based on the message template.
	SmallImageIconUrl *string `field:"optional" json:"smallImageIconUrl" yaml:"smallImageIconUrl"`
	// The sound to play when a recipient receives a push notification that's based on the message template.
	//
	// You can use the default stream or specify the file name of a sound resource that's bundled in your app. On an Android platform, the sound file must reside in `/res/raw/` .
	Sound *string `field:"optional" json:"sound" yaml:"sound"`
	// The title to use in a push notification that's based on the message template.
	//
	// This title appears above the notification message on a recipient's device.
	Title *string `field:"optional" json:"title" yaml:"title"`
	// The URL to open in a recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the `Action` property is `URL` .
	Url *string `field:"optional" json:"url" yaml:"url"`
}

Specifies channel-specific content and settings for a message template that can be used in push notifications that are sent through the ADM (Amazon Device Messaging), Baidu (Baidu Cloud Push), or GCM (Firebase Cloud Messaging, formerly Google Cloud Messaging) channel.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

androidPushNotificationTemplateProperty := &androidPushNotificationTemplateProperty{
	action: jsii.String("action"),
	body: jsii.String("body"),
	imageIconUrl: jsii.String("imageIconUrl"),
	imageUrl: jsii.String("imageUrl"),
	smallImageIconUrl: jsii.String("smallImageIconUrl"),
	sound: jsii.String("sound"),
	title: jsii.String("title"),
	url: jsii.String("url"),
}

type CfnPushTemplate_DefaultPushNotificationTemplateProperty

type CfnPushTemplate_DefaultPushNotificationTemplateProperty struct {
	// The action to occur if a recipient taps a push notification that's based on the message template.
	//
	// Valid values are:
	//
	// - `OPEN_APP` – Your app opens or it becomes the foreground app if it was sent to the background. This is the default action.
	// - `DEEP_LINK` – Your app opens and displays a designated user interface in the app. This setting uses the deep-linking features of the iOS and Android platforms.
	// - `URL` – The default mobile browser on the recipient's device opens and loads the web page at a URL that you specify.
	Action *string `field:"optional" json:"action" yaml:"action"`
	// The message body to use in push notifications that are based on the message template.
	Body *string `field:"optional" json:"body" yaml:"body"`
	// The sound to play when a recipient receives a push notification that's based on the message template.
	//
	// You can use the default stream or specify the file name of a sound resource that's bundled in your app. On an Android platform, the sound file must reside in `/res/raw/` .
	//
	// For an iOS platform, this value is the key for the name of a sound file in your app's main bundle or the `Library/Sounds` folder in your app's data container. If the sound file can't be found or you specify `default` for the value, the system plays the default alert sound.
	Sound *string `field:"optional" json:"sound" yaml:"sound"`
	// The title to use in push notifications that are based on the message template.
	//
	// This title appears above the notification message on a recipient's device.
	Title *string `field:"optional" json:"title" yaml:"title"`
	// The URL to open in a recipient's default mobile browser, if a recipient taps a push notification that's based on the message template and the value of the `Action` property is `URL` .
	Url *string `field:"optional" json:"url" yaml:"url"`
}

Specifies the default settings and content for a message template that can be used in messages that are sent through a push notification channel.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

defaultPushNotificationTemplateProperty := &defaultPushNotificationTemplateProperty{
	action: jsii.String("action"),
	body: jsii.String("body"),
	sound: jsii.String("sound"),
	title: jsii.String("title"),
	url: jsii.String("url"),
}

type CfnSMSChannel

type CfnSMSChannel interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// The unique identifier for the Amazon Pinpoint application that the SMS channel applies to.
	ApplicationId() *string
	SetApplicationId(val *string)
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// Specifies whether to enable the SMS channel for the application.
	Enabled() interface{}
	SetEnabled(val interface{})
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The identity that you want to display on recipients' devices when they receive messages from the SMS channel.
	//
	// > SenderIDs are only supported in certain countries and regions. For more information, see [Supported Countries and Regions](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-countries.html) in the *Amazon Pinpoint User Guide* .
	SenderId() *string
	SetSenderId(val *string)
	// The registered short code that you want to use when you send messages through the SMS channel.
	//
	// > For information about obtaining a dedicated short code for sending SMS messages, see [Requesting Dedicated Short Codes for SMS Messaging with Amazon Pinpoint](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-awssupport-short-code.html) in the *Amazon Pinpoint User Guide* .
	ShortCode() *string
	SetShortCode(val *string)
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// 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, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::Pinpoint::SMSChannel`.

A *channel* is a type of platform that you can deliver messages to. To send an SMS text message, you send the message through the SMS channel. Before you can use Amazon Pinpoint to send text messages, you have to enable the SMS channel for an Amazon Pinpoint application.

The SMSChannel resource represents the status, sender ID, and other settings for the SMS channel for an application.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnSMSChannel := awscdk.Aws_pinpoint.NewCfnSMSChannel(this, jsii.String("MyCfnSMSChannel"), &cfnSMSChannelProps{
	applicationId: jsii.String("applicationId"),

	// the properties below are optional
	enabled: jsii.Boolean(false),
	senderId: jsii.String("senderId"),
	shortCode: jsii.String("shortCode"),
})

func NewCfnSMSChannel

func NewCfnSMSChannel(scope awscdk.Construct, id *string, props *CfnSMSChannelProps) CfnSMSChannel

Create a new `AWS::Pinpoint::SMSChannel`.

type CfnSMSChannelProps

type CfnSMSChannelProps struct {
	// The unique identifier for the Amazon Pinpoint application that the SMS channel applies to.
	ApplicationId *string `field:"required" json:"applicationId" yaml:"applicationId"`
	// Specifies whether to enable the SMS channel for the application.
	Enabled interface{} `field:"optional" json:"enabled" yaml:"enabled"`
	// The identity that you want to display on recipients' devices when they receive messages from the SMS channel.
	//
	// > SenderIDs are only supported in certain countries and regions. For more information, see [Supported Countries and Regions](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-countries.html) in the *Amazon Pinpoint User Guide* .
	SenderId *string `field:"optional" json:"senderId" yaml:"senderId"`
	// The registered short code that you want to use when you send messages through the SMS channel.
	//
	// > For information about obtaining a dedicated short code for sending SMS messages, see [Requesting Dedicated Short Codes for SMS Messaging with Amazon Pinpoint](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-awssupport-short-code.html) in the *Amazon Pinpoint User Guide* .
	ShortCode *string `field:"optional" json:"shortCode" yaml:"shortCode"`
}

Properties for defining a `CfnSMSChannel`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnSMSChannelProps := &cfnSMSChannelProps{
	applicationId: jsii.String("applicationId"),

	// the properties below are optional
	enabled: jsii.Boolean(false),
	senderId: jsii.String("senderId"),
	shortCode: jsii.String("shortCode"),
}

type CfnSegment

type CfnSegment interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// The unique identifier for the Amazon Pinpoint application that the segment is associated with.
	ApplicationId() *string
	SetApplicationId(val *string)
	// The Amazon Resource Name (ARN) of the segment.
	AttrArn() *string
	// The unique identifier for the segment.
	AttrSegmentId() *string
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// The criteria that define the dimensions for the segment.
	Dimensions() interface{}
	SetDimensions(val interface{})
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The name of the segment.
	Name() *string
	SetName(val *string)
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The segment group to use and the dimensions to apply to the group's base segments in order to build the segment.
	//
	// A segment group can consist of zero or more base segments. Your request can include only one segment group.
	SegmentGroups() interface{}
	SetSegmentGroups(val interface{})
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// An array of key-value pairs to apply to this resource.
	//
	// For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
	Tags() awscdk.TagManager
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// 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, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::Pinpoint::Segment`.

Updates the configuration, dimension, and other settings for an existing segment.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var attributes interface{}
var metrics interface{}
var tags interface{}
var userAttributes interface{}

cfnSegment := awscdk.Aws_pinpoint.NewCfnSegment(this, jsii.String("MyCfnSegment"), &cfnSegmentProps{
	applicationId: jsii.String("applicationId"),
	name: jsii.String("name"),

	// the properties below are optional
	dimensions: &segmentDimensionsProperty{
		attributes: attributes,
		behavior: &behaviorProperty{
			recency: &recencyProperty{
				duration: jsii.String("duration"),
				recencyType: jsii.String("recencyType"),
			},
		},
		demographic: &demographicProperty{
			appVersion: &setDimensionProperty{
				dimensionType: jsii.String("dimensionType"),
				values: []*string{
					jsii.String("values"),
				},
			},
			channel: &setDimensionProperty{
				dimensionType: jsii.String("dimensionType"),
				values: []*string{
					jsii.String("values"),
				},
			},
			deviceType: &setDimensionProperty{
				dimensionType: jsii.String("dimensionType"),
				values: []*string{
					jsii.String("values"),
				},
			},
			make: &setDimensionProperty{
				dimensionType: jsii.String("dimensionType"),
				values: []*string{
					jsii.String("values"),
				},
			},
			model: &setDimensionProperty{
				dimensionType: jsii.String("dimensionType"),
				values: []*string{
					jsii.String("values"),
				},
			},
			platform: &setDimensionProperty{
				dimensionType: jsii.String("dimensionType"),
				values: []*string{
					jsii.String("values"),
				},
			},
		},
		location: &locationProperty{
			country: &setDimensionProperty{
				dimensionType: jsii.String("dimensionType"),
				values: []*string{
					jsii.String("values"),
				},
			},
			gpsPoint: &gPSPointProperty{
				coordinates: &coordinatesProperty{
					latitude: jsii.Number(123),
					longitude: jsii.Number(123),
				},
				rangeInKilometers: jsii.Number(123),
			},
		},
		metrics: metrics,
		userAttributes: userAttributes,
	},
	segmentGroups: &segmentGroupsProperty{
		groups: []interface{}{
			&groupsProperty{
				dimensions: []interface{}{
					&segmentDimensionsProperty{
						attributes: attributes,
						behavior: &behaviorProperty{
							recency: &recencyProperty{
								duration: jsii.String("duration"),
								recencyType: jsii.String("recencyType"),
							},
						},
						demographic: &demographicProperty{
							appVersion: &setDimensionProperty{
								dimensionType: jsii.String("dimensionType"),
								values: []*string{
									jsii.String("values"),
								},
							},
							channel: &setDimensionProperty{
								dimensionType: jsii.String("dimensionType"),
								values: []*string{
									jsii.String("values"),
								},
							},
							deviceType: &setDimensionProperty{
								dimensionType: jsii.String("dimensionType"),
								values: []*string{
									jsii.String("values"),
								},
							},
							make: &setDimensionProperty{
								dimensionType: jsii.String("dimensionType"),
								values: []*string{
									jsii.String("values"),
								},
							},
							model: &setDimensionProperty{
								dimensionType: jsii.String("dimensionType"),
								values: []*string{
									jsii.String("values"),
								},
							},
							platform: &setDimensionProperty{
								dimensionType: jsii.String("dimensionType"),
								values: []*string{
									jsii.String("values"),
								},
							},
						},
						location: &locationProperty{
							country: &setDimensionProperty{
								dimensionType: jsii.String("dimensionType"),
								values: []*string{
									jsii.String("values"),
								},
							},
							gpsPoint: &gPSPointProperty{
								coordinates: &coordinatesProperty{
									latitude: jsii.Number(123),
									longitude: jsii.Number(123),
								},
								rangeInKilometers: jsii.Number(123),
							},
						},
						metrics: metrics,
						userAttributes: userAttributes,
					},
				},
				sourceSegments: []interface{}{
					&sourceSegmentsProperty{
						id: jsii.String("id"),

						// the properties below are optional
						version: jsii.Number(123),
					},
				},
				sourceType: jsii.String("sourceType"),
				type: jsii.String("type"),
			},
		},
		include: jsii.String("include"),
	},
	tags: tags,
})

func NewCfnSegment

func NewCfnSegment(scope awscdk.Construct, id *string, props *CfnSegmentProps) CfnSegment

Create a new `AWS::Pinpoint::Segment`.

type CfnSegmentProps

type CfnSegmentProps struct {
	// The unique identifier for the Amazon Pinpoint application that the segment is associated with.
	ApplicationId *string `field:"required" json:"applicationId" yaml:"applicationId"`
	// The name of the segment.
	Name *string `field:"required" json:"name" yaml:"name"`
	// The criteria that define the dimensions for the segment.
	Dimensions interface{} `field:"optional" json:"dimensions" yaml:"dimensions"`
	// The segment group to use and the dimensions to apply to the group's base segments in order to build the segment.
	//
	// A segment group can consist of zero or more base segments. Your request can include only one segment group.
	SegmentGroups interface{} `field:"optional" json:"segmentGroups" yaml:"segmentGroups"`
	// An array of key-value pairs to apply to this resource.
	//
	// For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
	Tags interface{} `field:"optional" json:"tags" yaml:"tags"`
}

Properties for defining a `CfnSegment`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var attributes interface{}
var metrics interface{}
var tags interface{}
var userAttributes interface{}

cfnSegmentProps := &cfnSegmentProps{
	applicationId: jsii.String("applicationId"),
	name: jsii.String("name"),

	// the properties below are optional
	dimensions: &segmentDimensionsProperty{
		attributes: attributes,
		behavior: &behaviorProperty{
			recency: &recencyProperty{
				duration: jsii.String("duration"),
				recencyType: jsii.String("recencyType"),
			},
		},
		demographic: &demographicProperty{
			appVersion: &setDimensionProperty{
				dimensionType: jsii.String("dimensionType"),
				values: []*string{
					jsii.String("values"),
				},
			},
			channel: &setDimensionProperty{
				dimensionType: jsii.String("dimensionType"),
				values: []*string{
					jsii.String("values"),
				},
			},
			deviceType: &setDimensionProperty{
				dimensionType: jsii.String("dimensionType"),
				values: []*string{
					jsii.String("values"),
				},
			},
			make: &setDimensionProperty{
				dimensionType: jsii.String("dimensionType"),
				values: []*string{
					jsii.String("values"),
				},
			},
			model: &setDimensionProperty{
				dimensionType: jsii.String("dimensionType"),
				values: []*string{
					jsii.String("values"),
				},
			},
			platform: &setDimensionProperty{
				dimensionType: jsii.String("dimensionType"),
				values: []*string{
					jsii.String("values"),
				},
			},
		},
		location: &locationProperty{
			country: &setDimensionProperty{
				dimensionType: jsii.String("dimensionType"),
				values: []*string{
					jsii.String("values"),
				},
			},
			gpsPoint: &gPSPointProperty{
				coordinates: &coordinatesProperty{
					latitude: jsii.Number(123),
					longitude: jsii.Number(123),
				},
				rangeInKilometers: jsii.Number(123),
			},
		},
		metrics: metrics,
		userAttributes: userAttributes,
	},
	segmentGroups: &segmentGroupsProperty{
		groups: []interface{}{
			&groupsProperty{
				dimensions: []interface{}{
					&segmentDimensionsProperty{
						attributes: attributes,
						behavior: &behaviorProperty{
							recency: &recencyProperty{
								duration: jsii.String("duration"),
								recencyType: jsii.String("recencyType"),
							},
						},
						demographic: &demographicProperty{
							appVersion: &setDimensionProperty{
								dimensionType: jsii.String("dimensionType"),
								values: []*string{
									jsii.String("values"),
								},
							},
							channel: &setDimensionProperty{
								dimensionType: jsii.String("dimensionType"),
								values: []*string{
									jsii.String("values"),
								},
							},
							deviceType: &setDimensionProperty{
								dimensionType: jsii.String("dimensionType"),
								values: []*string{
									jsii.String("values"),
								},
							},
							make: &setDimensionProperty{
								dimensionType: jsii.String("dimensionType"),
								values: []*string{
									jsii.String("values"),
								},
							},
							model: &setDimensionProperty{
								dimensionType: jsii.String("dimensionType"),
								values: []*string{
									jsii.String("values"),
								},
							},
							platform: &setDimensionProperty{
								dimensionType: jsii.String("dimensionType"),
								values: []*string{
									jsii.String("values"),
								},
							},
						},
						location: &locationProperty{
							country: &setDimensionProperty{
								dimensionType: jsii.String("dimensionType"),
								values: []*string{
									jsii.String("values"),
								},
							},
							gpsPoint: &gPSPointProperty{
								coordinates: &coordinatesProperty{
									latitude: jsii.Number(123),
									longitude: jsii.Number(123),
								},
								rangeInKilometers: jsii.Number(123),
							},
						},
						metrics: metrics,
						userAttributes: userAttributes,
					},
				},
				sourceSegments: []interface{}{
					&sourceSegmentsProperty{
						id: jsii.String("id"),

						// the properties below are optional
						version: jsii.Number(123),
					},
				},
				sourceType: jsii.String("sourceType"),
				type: jsii.String("type"),
			},
		},
		include: jsii.String("include"),
	},
	tags: tags,
}

type CfnSegment_AttributeDimensionProperty

type CfnSegment_AttributeDimensionProperty struct {
	// The type of segment dimension to use. Valid values are:.
	//
	// - `INCLUSIVE` – endpoints that have attributes matching the values are included in the segment.
	// - `EXCLUSIVE` – endpoints that have attributes matching the values are excluded from the segment.
	// - `CONTAINS` – endpoints that have attributes' substrings match the values are included in the segment.
	// - `BEFORE` – endpoints with attributes read as ISO_INSTANT datetimes before the value are included in the segment.
	// - `AFTER` – endpoints with attributes read as ISO_INSTANT datetimes after the value are included in the segment.
	// - `BETWEEN` – endpoints with attributes read as ISO_INSTANT datetimes between the values are included in the segment.
	// - `ON` – endpoints with attributes read as ISO_INSTANT dates on the value are included in the segment. Time is ignored in this comparison.
	AttributeType *string `field:"optional" json:"attributeType" yaml:"attributeType"`
	// The criteria values to use for the segment dimension.
	//
	// Depending on the value of the `AttributeType` property, endpoints are included or excluded from the segment if their attribute values match the criteria values.
	Values *[]*string `field:"optional" json:"values" yaml:"values"`
}

Specifies attribute-based criteria for including or excluding endpoints from a segment.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

attributeDimensionProperty := &attributeDimensionProperty{
	attributeType: jsii.String("attributeType"),
	values: []*string{
		jsii.String("values"),
	},
}

type CfnSegment_BehaviorProperty

type CfnSegment_BehaviorProperty struct {
	// Specifies how recently segment members were active.
	Recency interface{} `field:"optional" json:"recency" yaml:"recency"`
}

Specifies behavior-based criteria for the segment, such as how recently users have used your app.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

behaviorProperty := &behaviorProperty{
	recency: &recencyProperty{
		duration: jsii.String("duration"),
		recencyType: jsii.String("recencyType"),
	},
}

type CfnSegment_CoordinatesProperty

type CfnSegment_CoordinatesProperty struct {
	// The latitude coordinate of the location.
	Latitude *float64 `field:"required" json:"latitude" yaml:"latitude"`
	// The longitude coordinate of the location.
	Longitude *float64 `field:"required" json:"longitude" yaml:"longitude"`
}

Specifies the GPS coordinates of a location.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

coordinatesProperty := &coordinatesProperty{
	latitude: jsii.Number(123),
	longitude: jsii.Number(123),
}

type CfnSegment_DemographicProperty

type CfnSegment_DemographicProperty struct {
	// The app version criteria for the segment.
	AppVersion interface{} `field:"optional" json:"appVersion" yaml:"appVersion"`
	// The channel criteria for the segment.
	Channel interface{} `field:"optional" json:"channel" yaml:"channel"`
	// The device type criteria for the segment.
	DeviceType interface{} `field:"optional" json:"deviceType" yaml:"deviceType"`
	// The device make criteria for the segment.
	Make interface{} `field:"optional" json:"make" yaml:"make"`
	// The device model criteria for the segment.
	Model interface{} `field:"optional" json:"model" yaml:"model"`
	// The device platform criteria for the segment.
	Platform interface{} `field:"optional" json:"platform" yaml:"platform"`
}

Specifies demographic-based criteria, such as device platform, for the segment.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

demographicProperty := &demographicProperty{
	appVersion: &setDimensionProperty{
		dimensionType: jsii.String("dimensionType"),
		values: []*string{
			jsii.String("values"),
		},
	},
	channel: &setDimensionProperty{
		dimensionType: jsii.String("dimensionType"),
		values: []*string{
			jsii.String("values"),
		},
	},
	deviceType: &setDimensionProperty{
		dimensionType: jsii.String("dimensionType"),
		values: []*string{
			jsii.String("values"),
		},
	},
	make: &setDimensionProperty{
		dimensionType: jsii.String("dimensionType"),
		values: []*string{
			jsii.String("values"),
		},
	},
	model: &setDimensionProperty{
		dimensionType: jsii.String("dimensionType"),
		values: []*string{
			jsii.String("values"),
		},
	},
	platform: &setDimensionProperty{
		dimensionType: jsii.String("dimensionType"),
		values: []*string{
			jsii.String("values"),
		},
	},
}

type CfnSegment_GPSPointProperty

type CfnSegment_GPSPointProperty struct {
	// The GPS coordinates to measure distance from.
	Coordinates interface{} `field:"required" json:"coordinates" yaml:"coordinates"`
	// The range, in kilometers, from the GPS coordinates.
	RangeInKilometers *float64 `field:"required" json:"rangeInKilometers" yaml:"rangeInKilometers"`
}

Specifies the GPS coordinates of the endpoint location.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

gPSPointProperty := &gPSPointProperty{
	coordinates: &coordinatesProperty{
		latitude: jsii.Number(123),
		longitude: jsii.Number(123),
	},
	rangeInKilometers: jsii.Number(123),
}

type CfnSegment_GroupsProperty

type CfnSegment_GroupsProperty struct {
	// An array that defines the dimensions to include or exclude from the segment.
	Dimensions interface{} `field:"optional" json:"dimensions" yaml:"dimensions"`
	// The base segment to build the segment on.
	//
	// A base segment, also called a *source segment* , defines the initial population of endpoints for a segment. When you add dimensions to the segment, Amazon Pinpoint filters the base segment by using the dimensions that you specify.
	//
	// You can specify more than one dimensional segment or only one imported segment. If you specify an imported segment, the segment size estimate that displays on the Amazon Pinpoint console indicates the size of the imported segment without any filters applied to it.
	SourceSegments interface{} `field:"optional" json:"sourceSegments" yaml:"sourceSegments"`
	// Specifies how to handle multiple base segments for the segment.
	//
	// For example, if you specify three base segments for the segment, whether the resulting segment is based on all, any, or none of the base segments.
	SourceType *string `field:"optional" json:"sourceType" yaml:"sourceType"`
	// Specifies how to handle multiple dimensions for the segment.
	//
	// For example, if you specify three dimensions for the segment, whether the resulting segment includes endpoints that match all, any, or none of the dimensions.
	Type *string `field:"optional" json:"type" yaml:"type"`
}

An array that defines the set of segment criteria to evaluate when handling segment groups for the segment.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var attributes interface{}
var metrics interface{}
var userAttributes interface{}

groupsProperty := &groupsProperty{
	dimensions: []interface{}{
		&segmentDimensionsProperty{
			attributes: attributes,
			behavior: &behaviorProperty{
				recency: &recencyProperty{
					duration: jsii.String("duration"),
					recencyType: jsii.String("recencyType"),
				},
			},
			demographic: &demographicProperty{
				appVersion: &setDimensionProperty{
					dimensionType: jsii.String("dimensionType"),
					values: []*string{
						jsii.String("values"),
					},
				},
				channel: &setDimensionProperty{
					dimensionType: jsii.String("dimensionType"),
					values: []*string{
						jsii.String("values"),
					},
				},
				deviceType: &setDimensionProperty{
					dimensionType: jsii.String("dimensionType"),
					values: []*string{
						jsii.String("values"),
					},
				},
				make: &setDimensionProperty{
					dimensionType: jsii.String("dimensionType"),
					values: []*string{
						jsii.String("values"),
					},
				},
				model: &setDimensionProperty{
					dimensionType: jsii.String("dimensionType"),
					values: []*string{
						jsii.String("values"),
					},
				},
				platform: &setDimensionProperty{
					dimensionType: jsii.String("dimensionType"),
					values: []*string{
						jsii.String("values"),
					},
				},
			},
			location: &locationProperty{
				country: &setDimensionProperty{
					dimensionType: jsii.String("dimensionType"),
					values: []*string{
						jsii.String("values"),
					},
				},
				gpsPoint: &gPSPointProperty{
					coordinates: &coordinatesProperty{
						latitude: jsii.Number(123),
						longitude: jsii.Number(123),
					},
					rangeInKilometers: jsii.Number(123),
				},
			},
			metrics: metrics,
			userAttributes: userAttributes,
		},
	},
	sourceSegments: []interface{}{
		&sourceSegmentsProperty{
			id: jsii.String("id"),

			// the properties below are optional
			version: jsii.Number(123),
		},
	},
	sourceType: jsii.String("sourceType"),
	type: jsii.String("type"),
}

type CfnSegment_LocationProperty

type CfnSegment_LocationProperty struct {
	// The country or region code, in ISO 3166-1 alpha-2 format, for the segment.
	Country interface{} `field:"optional" json:"country" yaml:"country"`
	// The GPS point dimension for the segment.
	GpsPoint interface{} `field:"optional" json:"gpsPoint" yaml:"gpsPoint"`
}

Specifies location-based criteria, such as region or GPS coordinates, for the segment.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

locationProperty := &locationProperty{
	country: &setDimensionProperty{
		dimensionType: jsii.String("dimensionType"),
		values: []*string{
			jsii.String("values"),
		},
	},
	gpsPoint: &gPSPointProperty{
		coordinates: &coordinatesProperty{
			latitude: jsii.Number(123),
			longitude: jsii.Number(123),
		},
		rangeInKilometers: jsii.Number(123),
	},
}

type CfnSegment_RecencyProperty

type CfnSegment_RecencyProperty struct {
	// The duration to use when determining which users have been active or inactive with your app.
	//
	// Possible values: `HR_24` | `DAY_7` | `DAY_14` | `DAY_30` .
	Duration *string `field:"required" json:"duration" yaml:"duration"`
	// The type of recency dimension to use for the segment.
	//
	// Valid values are: `ACTIVE` and `INACTIVE` . If the value is `ACTIVE` , the segment includes users who have used your app within the specified duration are included in the segment. If the value is `INACTIVE` , the segment includes users who haven't used your app within the specified duration are included in the segment.
	RecencyType *string `field:"required" json:"recencyType" yaml:"recencyType"`
}

Specifies how recently segment members were active.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

recencyProperty := &recencyProperty{
	duration: jsii.String("duration"),
	recencyType: jsii.String("recencyType"),
}

type CfnSegment_SegmentDimensionsProperty

type CfnSegment_SegmentDimensionsProperty struct {
	// One or more custom attributes to use as criteria for the segment.
	Attributes interface{} `field:"optional" json:"attributes" yaml:"attributes"`
	// The behavior-based criteria, such as how recently users have used your app, for the segment.
	Behavior interface{} `field:"optional" json:"behavior" yaml:"behavior"`
	// The demographic-based criteria, such as device platform, for the segment.
	Demographic interface{} `field:"optional" json:"demographic" yaml:"demographic"`
	// The location-based criteria, such as region or GPS coordinates, for the segment.
	Location interface{} `field:"optional" json:"location" yaml:"location"`
	// One or more custom metrics to use as criteria for the segment.
	Metrics interface{} `field:"optional" json:"metrics" yaml:"metrics"`
	// One or more custom user attributes to use as criteria for the segment.
	UserAttributes interface{} `field:"optional" json:"userAttributes" yaml:"userAttributes"`
}

Specifies the dimension settings for a segment.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var attributes interface{}
var metrics interface{}
var userAttributes interface{}

segmentDimensionsProperty := &segmentDimensionsProperty{
	attributes: attributes,
	behavior: &behaviorProperty{
		recency: &recencyProperty{
			duration: jsii.String("duration"),
			recencyType: jsii.String("recencyType"),
		},
	},
	demographic: &demographicProperty{
		appVersion: &setDimensionProperty{
			dimensionType: jsii.String("dimensionType"),
			values: []*string{
				jsii.String("values"),
			},
		},
		channel: &setDimensionProperty{
			dimensionType: jsii.String("dimensionType"),
			values: []*string{
				jsii.String("values"),
			},
		},
		deviceType: &setDimensionProperty{
			dimensionType: jsii.String("dimensionType"),
			values: []*string{
				jsii.String("values"),
			},
		},
		make: &setDimensionProperty{
			dimensionType: jsii.String("dimensionType"),
			values: []*string{
				jsii.String("values"),
			},
		},
		model: &setDimensionProperty{
			dimensionType: jsii.String("dimensionType"),
			values: []*string{
				jsii.String("values"),
			},
		},
		platform: &setDimensionProperty{
			dimensionType: jsii.String("dimensionType"),
			values: []*string{
				jsii.String("values"),
			},
		},
	},
	location: &locationProperty{
		country: &setDimensionProperty{
			dimensionType: jsii.String("dimensionType"),
			values: []*string{
				jsii.String("values"),
			},
		},
		gpsPoint: &gPSPointProperty{
			coordinates: &coordinatesProperty{
				latitude: jsii.Number(123),
				longitude: jsii.Number(123),
			},
			rangeInKilometers: jsii.Number(123),
		},
	},
	metrics: metrics,
	userAttributes: userAttributes,
}

type CfnSegment_SegmentGroupsProperty

type CfnSegment_SegmentGroupsProperty struct {
	// Specifies the set of segment criteria to evaluate when handling segment groups for the segment.
	Groups interface{} `field:"optional" json:"groups" yaml:"groups"`
	// Specifies how to handle multiple segment groups for the segment.
	//
	// For example, if the segment includes three segment groups, whether the resulting segment includes endpoints that match all, any, or none of the segment groups.
	Include *string `field:"optional" json:"include" yaml:"include"`
}

Specifies the set of segment criteria to evaluate when handling segment groups for the segment.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var attributes interface{}
var metrics interface{}
var userAttributes interface{}

segmentGroupsProperty := &segmentGroupsProperty{
	groups: []interface{}{
		&groupsProperty{
			dimensions: []interface{}{
				&segmentDimensionsProperty{
					attributes: attributes,
					behavior: &behaviorProperty{
						recency: &recencyProperty{
							duration: jsii.String("duration"),
							recencyType: jsii.String("recencyType"),
						},
					},
					demographic: &demographicProperty{
						appVersion: &setDimensionProperty{
							dimensionType: jsii.String("dimensionType"),
							values: []*string{
								jsii.String("values"),
							},
						},
						channel: &setDimensionProperty{
							dimensionType: jsii.String("dimensionType"),
							values: []*string{
								jsii.String("values"),
							},
						},
						deviceType: &setDimensionProperty{
							dimensionType: jsii.String("dimensionType"),
							values: []*string{
								jsii.String("values"),
							},
						},
						make: &setDimensionProperty{
							dimensionType: jsii.String("dimensionType"),
							values: []*string{
								jsii.String("values"),
							},
						},
						model: &setDimensionProperty{
							dimensionType: jsii.String("dimensionType"),
							values: []*string{
								jsii.String("values"),
							},
						},
						platform: &setDimensionProperty{
							dimensionType: jsii.String("dimensionType"),
							values: []*string{
								jsii.String("values"),
							},
						},
					},
					location: &locationProperty{
						country: &setDimensionProperty{
							dimensionType: jsii.String("dimensionType"),
							values: []*string{
								jsii.String("values"),
							},
						},
						gpsPoint: &gPSPointProperty{
							coordinates: &coordinatesProperty{
								latitude: jsii.Number(123),
								longitude: jsii.Number(123),
							},
							rangeInKilometers: jsii.Number(123),
						},
					},
					metrics: metrics,
					userAttributes: userAttributes,
				},
			},
			sourceSegments: []interface{}{
				&sourceSegmentsProperty{
					id: jsii.String("id"),

					// the properties below are optional
					version: jsii.Number(123),
				},
			},
			sourceType: jsii.String("sourceType"),
			type: jsii.String("type"),
		},
	},
	include: jsii.String("include"),
}

type CfnSegment_SetDimensionProperty

type CfnSegment_SetDimensionProperty struct {
	// The type of segment dimension to use.
	//
	// Valid values are: `INCLUSIVE` , endpoints that match the criteria are included in the segment; and, `EXCLUSIVE` , endpoints that match the criteria are excluded from the segment.
	DimensionType *string `field:"optional" json:"dimensionType" yaml:"dimensionType"`
	// The criteria values to use for the segment dimension.
	//
	// Depending on the value of the `DimensionType` property, endpoints are included or excluded from the segment if their values match the criteria values.
	Values *[]*string `field:"optional" json:"values" yaml:"values"`
}

Specifies the dimension type and values for a segment dimension.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

setDimensionProperty := &setDimensionProperty{
	dimensionType: jsii.String("dimensionType"),
	values: []*string{
		jsii.String("values"),
	},
}

type CfnSegment_SourceSegmentsProperty

type CfnSegment_SourceSegmentsProperty struct {
	// The unique identifier for the source segment.
	Id *string `field:"required" json:"id" yaml:"id"`
	// The version number of the source segment.
	Version *float64 `field:"optional" json:"version" yaml:"version"`
}

Specifies the base segment to build the segment on.

A base segment, also called a *source segment* , defines the initial population of endpoints for a segment. When you add dimensions to the segment, Amazon Pinpoint filters the base segment by using the dimensions that you specify.

You can specify more than one dimensional segment or only one imported segment. If you specify an imported segment, the segment size estimate that displays on the Amazon Pinpoint console indicates the size of the imported segment without any filters applied to it.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

sourceSegmentsProperty := &sourceSegmentsProperty{
	id: jsii.String("id"),

	// the properties below are optional
	version: jsii.Number(123),
}

type CfnSmsTemplate

type CfnSmsTemplate interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// The Amazon Resource Name (ARN) of the message template.
	AttrArn() *string
	// The message body to use in text messages that are based on the message template.
	Body() *string
	SetBody(val *string)
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// A JSON object that specifies the default values to use for message variables in the message template.
	//
	// This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values.
	DefaultSubstitutions() *string
	SetDefaultSubstitutions(val *string)
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// An array of key-value pairs to apply to this resource.
	//
	// For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
	Tags() awscdk.TagManager
	// A custom description of the message template.
	TemplateDescription() *string
	SetTemplateDescription(val *string)
	// The name of the message template.
	TemplateName() *string
	SetTemplateName(val *string)
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// 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, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::Pinpoint::SmsTemplate`.

Creates a message template that you can use in messages that are sent through the SMS channel. A *message template* is a set of content and settings that you can define, save, and reuse in messages for any of your Amazon Pinpoint applications.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var tags interface{}

cfnSmsTemplate := awscdk.Aws_pinpoint.NewCfnSmsTemplate(this, jsii.String("MyCfnSmsTemplate"), &cfnSmsTemplateProps{
	body: jsii.String("body"),
	templateName: jsii.String("templateName"),

	// the properties below are optional
	defaultSubstitutions: jsii.String("defaultSubstitutions"),
	tags: tags,
	templateDescription: jsii.String("templateDescription"),
})

func NewCfnSmsTemplate

func NewCfnSmsTemplate(scope awscdk.Construct, id *string, props *CfnSmsTemplateProps) CfnSmsTemplate

Create a new `AWS::Pinpoint::SmsTemplate`.

type CfnSmsTemplateProps

type CfnSmsTemplateProps struct {
	// The message body to use in text messages that are based on the message template.
	Body *string `field:"required" json:"body" yaml:"body"`
	// The name of the message template.
	TemplateName *string `field:"required" json:"templateName" yaml:"templateName"`
	// A JSON object that specifies the default values to use for message variables in the message template.
	//
	// This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the default value for that variable. When you create a message that's based on the template, you can override these defaults with message-specific and address-specific variables and values.
	DefaultSubstitutions *string `field:"optional" json:"defaultSubstitutions" yaml:"defaultSubstitutions"`
	// An array of key-value pairs to apply to this resource.
	//
	// For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
	Tags interface{} `field:"optional" json:"tags" yaml:"tags"`
	// A custom description of the message template.
	TemplateDescription *string `field:"optional" json:"templateDescription" yaml:"templateDescription"`
}

Properties for defining a `CfnSmsTemplate`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

var tags interface{}

cfnSmsTemplateProps := &cfnSmsTemplateProps{
	body: jsii.String("body"),
	templateName: jsii.String("templateName"),

	// the properties below are optional
	defaultSubstitutions: jsii.String("defaultSubstitutions"),
	tags: tags,
	templateDescription: jsii.String("templateDescription"),
}

type CfnVoiceChannel

type CfnVoiceChannel interface {
	awscdk.CfnResource
	awscdk.IInspectable
	// The unique identifier for the Amazon Pinpoint application that the voice channel applies to.
	ApplicationId() *string
	SetApplicationId(val *string)
	// Options for this resource, such as condition, update policy etc.
	// Experimental.
	CfnOptions() awscdk.ICfnResourceOptions
	CfnProperties() *map[string]interface{}
	// AWS resource type.
	// Experimental.
	CfnResourceType() *string
	// Returns: the stack trace of the point where this Resource was created from, sourced
	// from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most
	// node +internal+ entries filtered.
	// Experimental.
	CreationStack() *[]*string
	// Specifies whether to enable the voice channel for the application.
	Enabled() interface{}
	SetEnabled(val interface{})
	// The logical ID for this CloudFormation stack element.
	//
	// The logical ID of the element
	// is calculated from the path of the resource node in the construct tree.
	//
	// To override this value, use `overrideLogicalId(newLogicalId)`.
	//
	// Returns: the logical ID as a stringified token. This value will only get
	// resolved during synthesis.
	// Experimental.
	LogicalId() *string
	// The construct tree node associated with this construct.
	// Experimental.
	Node() awscdk.ConstructNode
	// Return a string that will be resolved to a CloudFormation `{ Ref }` for this element.
	//
	// If, by any chance, the intrinsic reference of a resource is not a string, you could
	// coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`.
	// Experimental.
	Ref() *string
	// The stack in which this element is defined.
	//
	// CfnElements must be defined within a stack scope (directly or indirectly).
	// Experimental.
	Stack() awscdk.Stack
	// Return properties modified after initiation.
	//
	// Resources that expose mutable properties should override this function to
	// collect and return the properties object for this resource.
	// Experimental.
	UpdatedProperites() *map[string]interface{}
	// Syntactic sugar for `addOverride(path, undefined)`.
	// Experimental.
	AddDeletionOverride(path *string)
	// Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
	//
	// This can be used for resources across stacks (or nested stack) boundaries
	// and the dependency will automatically be transferred to the relevant scope.
	// Experimental.
	AddDependsOn(target awscdk.CfnResource)
	// Add a value to the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	AddMetadata(key *string, value interface{})
	// Adds an override to the synthesized CloudFormation resource.
	//
	// To add a
	// property override, either use `addPropertyOverride` or prefix `path` with
	// "Properties." (i.e. `Properties.TopicName`).
	//
	// If the override is nested, separate each nested level using a dot (.) in the path parameter.
	// If there is an array as part of the nesting, specify the index in the path.
	//
	// To include a literal `.` in the property name, prefix with a `\`. In most
	// programming languages you will need to write this as `"\\."` because the
	// `\` itself will need to be escaped.
	//
	// For example,
	// “`typescript
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
	// cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
	// “`
	// would add the overrides
	// “`json
	// "Properties": {
	//    "GlobalSecondaryIndexes": [
	//      {
	//        "Projection": {
	//          "NonKeyAttributes": [ "myattribute" ]
	//          ...
	//        }
	//        ...
	//      },
	//      {
	//        "ProjectionType": "INCLUDE"
	//        ...
	//      },
	//    ]
	//    ...
	// }
	// “`
	//
	// The `value` argument to `addOverride` will not be processed or translated
	// in any way. Pass raw JSON values in here with the correct capitalization
	// for CloudFormation. If you pass CDK classes or structs, they will be
	// rendered with lowercased key names, and CloudFormation will reject the
	// template.
	// Experimental.
	AddOverride(path *string, value interface{})
	// Adds an override that deletes the value of a property from the resource definition.
	// Experimental.
	AddPropertyDeletionOverride(propertyPath *string)
	// Adds an override to a resource property.
	//
	// Syntactic sugar for `addOverride("Properties.<...>", value)`.
	// Experimental.
	AddPropertyOverride(propertyPath *string, value interface{})
	// Sets the deletion policy of the resource based on the removal policy specified.
	//
	// 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, options *awscdk.RemovalPolicyOptions)
	// Returns a token for an runtime attribute of this resource.
	//
	// Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
	// in case there is no generated attribute.
	// Experimental.
	GetAtt(attributeName *string) awscdk.Reference
	// Retrieve a value value from the CloudFormation Resource Metadata.
	// See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
	//
	// Note that this is a different set of metadata from CDK node metadata; this
	// metadata ends up in the stack template under the resource, whereas CDK
	// node metadata ends up in the Cloud Assembly.
	//
	// Experimental.
	GetMetadata(key *string) interface{}
	// Examines the CloudFormation resource and discloses attributes.
	Inspect(inspector awscdk.TreeInspector)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	OnPrepare()
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	OnSynthesize(session constructs.ISynthesisSession)
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	OnValidate() *[]*string
	// Overrides the auto-generated logical ID with a specific ID.
	// Experimental.
	OverrideLogicalId(newLogicalId *string)
	// Perform final modifications before synthesis.
	//
	// This method can be implemented by derived constructs in order to perform
	// final changes before synthesis. prepare() will be called after child
	// constructs have been prepared.
	//
	// This is an advanced framework feature. Only use this if you
	// understand the implications.
	// Experimental.
	Prepare()
	RenderProperties(props *map[string]interface{}) *map[string]interface{}
	// Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.
	//
	// Returns: `true` if the resource should be included or `false` is the resource
	// should be omitted.
	// Experimental.
	ShouldSynthesize() *bool
	// Allows this construct to emit artifacts into the cloud assembly during synthesis.
	//
	// This method is usually implemented by framework-level constructs such as `Stack` and `Asset`
	// as they participate in synthesizing the cloud assembly.
	// Experimental.
	Synthesize(session awscdk.ISynthesisSession)
	// Returns a string representation of this construct.
	//
	// Returns: a string representation of this resource.
	// Experimental.
	ToString() *string
	// Validate the current construct.
	//
	// This method can be implemented by derived constructs in order to perform
	// validation logic. It is called on all constructs before synthesis.
	//
	// Returns: An array of validation error messages, or an empty array if the construct is valid.
	// Experimental.
	Validate() *[]*string
	// Experimental.
	ValidateProperties(_properties interface{})
}

A CloudFormation `AWS::Pinpoint::VoiceChannel`.

A *channel* is a type of platform that you can deliver messages to. To send a voice message, you send the message through the voice channel. Before you can use Amazon Pinpoint to send voice messages, you have to enable the voice channel for an Amazon Pinpoint application.

The VoiceChannel resource represents the status and other information about the voice channel for an application.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnVoiceChannel := awscdk.Aws_pinpoint.NewCfnVoiceChannel(this, jsii.String("MyCfnVoiceChannel"), &cfnVoiceChannelProps{
	applicationId: jsii.String("applicationId"),

	// the properties below are optional
	enabled: jsii.Boolean(false),
})

func NewCfnVoiceChannel

func NewCfnVoiceChannel(scope awscdk.Construct, id *string, props *CfnVoiceChannelProps) CfnVoiceChannel

Create a new `AWS::Pinpoint::VoiceChannel`.

type CfnVoiceChannelProps

type CfnVoiceChannelProps struct {
	// The unique identifier for the Amazon Pinpoint application that the voice channel applies to.
	ApplicationId *string `field:"required" json:"applicationId" yaml:"applicationId"`
	// Specifies whether to enable the voice channel for the application.
	Enabled interface{} `field:"optional" json:"enabled" yaml:"enabled"`
}

Properties for defining a `CfnVoiceChannel`.

Example:

// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import "github.com/aws/aws-cdk-go/awscdk"

cfnVoiceChannelProps := &cfnVoiceChannelProps{
	applicationId: jsii.String("applicationId"),

	// the properties below are optional
	enabled: jsii.Boolean(false),
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL