@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Amazon Pinpoint
@version 2016-12-01
@auth AWS SigV4
@endpoints 122
@hint download_for_search
@toc apps(90), templates(23), recommenders(5), tags(3), phone(1)

@group apps
@endpoint POST /v1/apps
@desc Creates an application.
@required {CreateApplicationRequest: CreateApplicationRequest}
@returns(200) {ApplicationResponse: ApplicationResponse{Arn: str, Id: str, Name: str, tags: map<str,str>?, CreationDate: str?}}

@endpoint POST /v1/apps/{application-id}/campaigns
@desc Creates a new campaign for an application or updates the settings of an existing campaign for an application.
@required {ApplicationId: str, WriteCampaignRequest: WriteCampaignRequest}
@returns(200) {CampaignResponse: CampaignResponse{AdditionalTreatments: [TreatmentResource]?, ApplicationId: str, Arn: str, CreationDate: str, CustomDeliveryConfiguration: CustomDeliveryConfiguration?{DeliveryUri: str, EndpointTypes: [str]?}, DefaultState: CampaignState?{CampaignStatus: str?}, Description: str?, HoldoutPercent: int?, Hook: CampaignHook?{LambdaFunctionName: str?, Mode: str?, WebUrl: str?}, Id: str, IsPaused: bool?, LastModifiedDate: str, Limits: CampaignLimits?{Daily: int?, MaximumDuration: int?, MessagesPerSecond: int?, Total: int?, Session: int?}, MessageConfiguration: MessageConfiguration?{ADMMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, APNSMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, BaiduMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, CustomMessage: CampaignCustomMessage?{Data: str?}, DefaultMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, EmailMessage: CampaignEmailMessage?{Body: str?, FromAddress: str?, Headers: [MessageHeader]?, HtmlBody: str?, Title: str?}, GCMMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, SMSMessage: CampaignSmsMessage?{Body: str?, MessageType: str?, OriginationNumber: str?, SenderId: str?, EntityId: str?, TemplateId: str?}, InAppMessage: CampaignInAppMessage?{Body: str?, Content: [InAppMessageContent]?, CustomConfig: map<str,str>?, Layout: str?}}, Name: str?, Schedule: Schedule?{EndTime: str?, EventFilter: CampaignEventFilter?{Dimensions: EventDimensions, FilterType: str}, Frequency: str?, IsLocalTime: bool?, QuietTime: QuietTime?{End: str?, Start: str?}, StartTime: str, Timezone: str?}, SegmentId: str, SegmentVersion: int, State: CampaignState?{CampaignStatus: str?}, tags: map<str,str>?, TemplateConfiguration: TemplateConfiguration?{EmailTemplate: Template?{Name: str?, Version: str?}, PushTemplate: Template?{Name: str?, Version: str?}, SMSTemplate: Template?{Name: str?, Version: str?}, VoiceTemplate: Template?{Name: str?, Version: str?}, InAppTemplate: Template?{Name: str?, Version: str?}}, TreatmentDescription: str?, TreatmentName: str?, Version: int?, Priority: int?}}

@endgroup

@group templates
@endpoint POST /v1/templates/{template-name}/email
@desc Creates a message template for messages that are sent through the email channel.
@required {TemplateName: str, EmailTemplateRequest: EmailTemplateRequest}
@returns(200) {CreateTemplateMessageBody: CreateTemplateMessageBody{Arn: str?, Message: str?, RequestID: str?}}

@endgroup

@group apps
@endpoint POST /v1/apps/{application-id}/jobs/export
@desc Creates an export job for an application.
@required {ApplicationId: str, ExportJobRequest: ExportJobRequest}
@returns(200) {ExportJobResponse: ExportJobResponse{ApplicationId: str, CompletedPieces: int?, CompletionDate: str?, CreationDate: str, Definition: ExportJobResource{RoleArn: str, S3UrlPrefix: str, SegmentId: str?, SegmentVersion: int?}, FailedPieces: int?, Failures: [str]?, Id: str, JobStatus: str, TotalFailures: int?, TotalPieces: int?, TotalProcessed: int?, Type: str}}

@endpoint POST /v1/apps/{application-id}/jobs/import
@desc Creates an import job for an application.
@required {ApplicationId: str, ImportJobRequest: ImportJobRequest}
@returns(200) {ImportJobResponse: ImportJobResponse{ApplicationId: str, CompletedPieces: int?, CompletionDate: str?, CreationDate: str, Definition: ImportJobResource{DefineSegment: bool?, ExternalId: str?, Format: str, RegisterEndpoints: bool?, RoleArn: str, S3Url: str, SegmentId: str?, SegmentName: str?}, FailedPieces: int?, Failures: [str]?, Id: str, JobStatus: str, TotalFailures: int?, TotalPieces: int?, TotalProcessed: int?, Type: str}}

@endgroup

@group templates
@endpoint POST /v1/templates/{template-name}/inapp
@desc Creates a new message template for messages using the in-app message channel.
@required {TemplateName: str, InAppTemplateRequest: InAppTemplateRequest}
@returns(200) {TemplateCreateMessageBody: TemplateCreateMessageBody{Arn: str?, Message: str?, RequestID: str?}}

@endgroup

@group apps
@endpoint POST /v1/apps/{application-id}/journeys
@desc Creates a journey for an application.
@required {ApplicationId: str, WriteJourneyRequest: WriteJourneyRequest}
@returns(200) {JourneyResponse: JourneyResponse{Activities: map<str,Activity>?, ApplicationId: str, CreationDate: str?, Id: str, LastModifiedDate: str?, Limits: JourneyLimits?{DailyCap: int?, EndpointReentryCap: int?, MessagesPerSecond: int?, EndpointReentryInterval: str?, TimeframeCap: JourneyTimeframeCap?{Cap: int?, Days: int?}, TotalCap: int?}, LocalTime: bool?, Name: str, QuietTime: QuietTime?{End: str?, Start: str?}, RefreshFrequency: str?, Schedule: JourneySchedule?{EndTime: str(timestamp)?, StartTime: str(timestamp)?, Timezone: str?}, StartActivity: str?, StartCondition: StartCondition?{Description: str?, EventStartCondition: EventStartCondition?{EventFilter: EventFilter?, SegmentId: str?}, SegmentStartCondition: SegmentCondition?{SegmentId: str}}, State: str?, tags: map<str,str>?, WaitForQuietTime: bool?, RefreshOnSegmentUpdate: bool?, JourneyChannelSettings: JourneyChannelSettings?{ConnectCampaignArn: str?, ConnectCampaignExecutionRoleArn: str?}, SendingSchedule: bool?, OpenHours: OpenHours?{EMAIL: map<str,[OpenHoursRule]>?, SMS: map<str,[OpenHoursRule]>?, PUSH: map<str,[OpenHoursRule]>?, VOICE: map<str,[OpenHoursRule]>?, CUSTOM: map<str,[OpenHoursRule]>?}, ClosedDays: ClosedDays?{EMAIL: [ClosedDaysRule]?, SMS: [ClosedDaysRule]?, PUSH: [ClosedDaysRule]?, VOICE: [ClosedDaysRule]?, CUSTOM: [ClosedDaysRule]?}, TimezoneEstimationMethods: [str]?}}

@endgroup

@group templates
@endpoint POST /v1/templates/{template-name}/push
@desc Creates a message template for messages that are sent through a push notification channel.
@required {TemplateName: str, PushNotificationTemplateRequest: PushNotificationTemplateRequest}
@returns(200) {CreateTemplateMessageBody: CreateTemplateMessageBody{Arn: str?, Message: str?, RequestID: str?}}

@endgroup

@group recommenders
@endpoint POST /v1/recommenders
@desc Creates an Amazon Pinpoint configuration for a recommender model.
@required {CreateRecommenderConfiguration: CreateRecommenderConfiguration}
@returns(200) {RecommenderConfigurationResponse: RecommenderConfigurationResponse{Attributes: map<str,str>?, CreationDate: str, Description: str?, Id: str, LastModifiedDate: str, Name: str?, RecommendationProviderIdType: str?, RecommendationProviderRoleArn: str, RecommendationProviderUri: str, RecommendationTransformerUri: str?, RecommendationsDisplayName: str?, RecommendationsPerMessage: int?}}

@endgroup

@group apps
@endpoint POST /v1/apps/{application-id}/segments
@desc Creates a new segment for an application or updates the configuration, dimension, and other settings for an existing segment that's associated with an application.
@required {ApplicationId: str, WriteSegmentRequest: WriteSegmentRequest}
@returns(200) {SegmentResponse: SegmentResponse{ApplicationId: str, Arn: str, CreationDate: str, Dimensions: SegmentDimensions?{Attributes: map<str,AttributeDimension>?, Behavior: SegmentBehaviors?{Recency: RecencyDimension?}, Demographic: SegmentDemographics?{AppVersion: SetDimension?, Channel: SetDimension?, DeviceType: SetDimension?, Make: SetDimension?, Model: SetDimension?, Platform: SetDimension?}, Location: SegmentLocation?{Country: SetDimension?, GPSPoint: GPSPointDimension?}, Metrics: map<str,MetricDimension>?, UserAttributes: map<str,AttributeDimension>?}, Id: str, ImportDefinition: SegmentImportResource?{ChannelCounts: map<str,int>?, ExternalId: str, Format: str, RoleArn: str, S3Url: str, Size: int}, LastModifiedDate: str?, Name: str?, SegmentGroups: SegmentGroupList?{Groups: [SegmentGroup]?, Include: str?}, SegmentType: str, tags: map<str,str>?, Version: int?}}

@endgroup

@group templates
@endpoint POST /v1/templates/{template-name}/sms
@desc Creates a message template for messages that are sent through the SMS channel.
@required {TemplateName: str, SMSTemplateRequest: SMSTemplateRequest}
@returns(200) {CreateTemplateMessageBody: CreateTemplateMessageBody{Arn: str?, Message: str?, RequestID: str?}}

@endpoint POST /v1/templates/{template-name}/voice
@desc Creates a message template for messages that are sent through the voice channel.
@required {TemplateName: str, VoiceTemplateRequest: VoiceTemplateRequest}
@returns(200) {CreateTemplateMessageBody: CreateTemplateMessageBody{Arn: str?, Message: str?, RequestID: str?}}

@endgroup

@group apps
@endpoint DELETE /v1/apps/{application-id}/channels/adm
@desc Disables the ADM channel for an application and deletes any existing settings for the channel.
@required {ApplicationId: str}
@returns(200) {ADMChannelResponse: ADMChannelResponse{ApplicationId: str?, CreationDate: str?, Enabled: bool?, HasCredential: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endpoint DELETE /v1/apps/{application-id}/channels/apns
@desc Disables the APNs channel for an application and deletes any existing settings for the channel.
@required {ApplicationId: str}
@returns(200) {APNSChannelResponse: APNSChannelResponse{ApplicationId: str?, CreationDate: str?, DefaultAuthenticationMethod: str?, Enabled: bool?, HasCredential: bool?, HasTokenKey: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endpoint DELETE /v1/apps/{application-id}/channels/apns_sandbox
@desc Disables the APNs sandbox channel for an application and deletes any existing settings for the channel.
@required {ApplicationId: str}
@returns(200) {APNSSandboxChannelResponse: APNSSandboxChannelResponse{ApplicationId: str?, CreationDate: str?, DefaultAuthenticationMethod: str?, Enabled: bool?, HasCredential: bool?, HasTokenKey: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endpoint DELETE /v1/apps/{application-id}/channels/apns_voip
@desc Disables the APNs VoIP channel for an application and deletes any existing settings for the channel.
@required {ApplicationId: str}
@returns(200) {APNSVoipChannelResponse: APNSVoipChannelResponse{ApplicationId: str?, CreationDate: str?, DefaultAuthenticationMethod: str?, Enabled: bool?, HasCredential: bool?, HasTokenKey: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endpoint DELETE /v1/apps/{application-id}/channels/apns_voip_sandbox
@desc Disables the APNs VoIP sandbox channel for an application and deletes any existing settings for the channel.
@required {ApplicationId: str}
@returns(200) {APNSVoipSandboxChannelResponse: APNSVoipSandboxChannelResponse{ApplicationId: str?, CreationDate: str?, DefaultAuthenticationMethod: str?, Enabled: bool?, HasCredential: bool?, HasTokenKey: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endpoint DELETE /v1/apps/{application-id}
@desc Deletes an application.
@required {ApplicationId: str}
@returns(200) {ApplicationResponse: ApplicationResponse{Arn: str, Id: str, Name: str, tags: map<str,str>?, CreationDate: str?}}

@endpoint DELETE /v1/apps/{application-id}/channels/baidu
@desc Disables the Baidu channel for an application and deletes any existing settings for the channel.
@required {ApplicationId: str}
@returns(200) {BaiduChannelResponse: BaiduChannelResponse{ApplicationId: str?, CreationDate: str?, Credential: str, Enabled: bool?, HasCredential: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endpoint DELETE /v1/apps/{application-id}/campaigns/{campaign-id}
@desc Deletes a campaign from an application.
@required {ApplicationId: str, CampaignId: str}
@returns(200) {CampaignResponse: CampaignResponse{AdditionalTreatments: [TreatmentResource]?, ApplicationId: str, Arn: str, CreationDate: str, CustomDeliveryConfiguration: CustomDeliveryConfiguration?{DeliveryUri: str, EndpointTypes: [str]?}, DefaultState: CampaignState?{CampaignStatus: str?}, Description: str?, HoldoutPercent: int?, Hook: CampaignHook?{LambdaFunctionName: str?, Mode: str?, WebUrl: str?}, Id: str, IsPaused: bool?, LastModifiedDate: str, Limits: CampaignLimits?{Daily: int?, MaximumDuration: int?, MessagesPerSecond: int?, Total: int?, Session: int?}, MessageConfiguration: MessageConfiguration?{ADMMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, APNSMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, BaiduMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, CustomMessage: CampaignCustomMessage?{Data: str?}, DefaultMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, EmailMessage: CampaignEmailMessage?{Body: str?, FromAddress: str?, Headers: [MessageHeader]?, HtmlBody: str?, Title: str?}, GCMMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, SMSMessage: CampaignSmsMessage?{Body: str?, MessageType: str?, OriginationNumber: str?, SenderId: str?, EntityId: str?, TemplateId: str?}, InAppMessage: CampaignInAppMessage?{Body: str?, Content: [InAppMessageContent]?, CustomConfig: map<str,str>?, Layout: str?}}, Name: str?, Schedule: Schedule?{EndTime: str?, EventFilter: CampaignEventFilter?{Dimensions: EventDimensions, FilterType: str}, Frequency: str?, IsLocalTime: bool?, QuietTime: QuietTime?{End: str?, Start: str?}, StartTime: str, Timezone: str?}, SegmentId: str, SegmentVersion: int, State: CampaignState?{CampaignStatus: str?}, tags: map<str,str>?, TemplateConfiguration: TemplateConfiguration?{EmailTemplate: Template?{Name: str?, Version: str?}, PushTemplate: Template?{Name: str?, Version: str?}, SMSTemplate: Template?{Name: str?, Version: str?}, VoiceTemplate: Template?{Name: str?, Version: str?}, InAppTemplate: Template?{Name: str?, Version: str?}}, TreatmentDescription: str?, TreatmentName: str?, Version: int?, Priority: int?}}

@endpoint DELETE /v1/apps/{application-id}/channels/email
@desc Disables the email channel for an application and deletes any existing settings for the channel.
@required {ApplicationId: str}
@returns(200) {EmailChannelResponse: EmailChannelResponse{ApplicationId: str?, ConfigurationSet: str?, CreationDate: str?, Enabled: bool?, FromAddress: str?, HasCredential: bool?, Id: str?, Identity: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, MessagesPerSecond: int?, Platform: str, RoleArn: str?, OrchestrationSendingRoleArn: str?, Version: int?}}

@endgroup

@group templates
@endpoint DELETE /v1/templates/{template-name}/email
@desc Deletes a message template for messages that were sent through the email channel.
@required {TemplateName: str}
@optional {version: str}
@returns(200) {MessageBody: MessageBody{Message: str?, RequestID: str?}}

@endgroup

@group apps
@endpoint DELETE /v1/apps/{application-id}/endpoints/{endpoint-id}
@desc Deletes an endpoint from an application.
@required {ApplicationId: str, EndpointId: str}
@returns(200) {EndpointResponse: EndpointResponse{Address: str?, ApplicationId: str?, Attributes: map<str,[str]>?, ChannelType: str?, CohortId: str?, CreationDate: str?, Demographic: EndpointDemographic?{AppVersion: str?, Locale: str?, Make: str?, Model: str?, ModelVersion: str?, Platform: str?, PlatformVersion: str?, Timezone: str?}, EffectiveDate: str?, EndpointStatus: str?, Id: str?, Location: EndpointLocation?{City: str?, Country: str?, Latitude: num(f64)?, Longitude: num(f64)?, PostalCode: str?, Region: str?}, Metrics: map<str,num(f64)>?, OptOut: str?, RequestId: str?, User: EndpointUser?{UserAttributes: map<str,[str]>?, UserId: str?}}}

@endpoint DELETE /v1/apps/{application-id}/eventstream
@desc Deletes the event stream for an application.
@required {ApplicationId: str}
@returns(200) {EventStream: EventStream{ApplicationId: str, DestinationStreamArn: str, ExternalId: str?, LastModifiedDate: str?, LastUpdatedBy: str?, RoleArn: str}}

@endpoint DELETE /v1/apps/{application-id}/channels/gcm
@desc Disables the GCM channel for an application and deletes any existing settings for the channel.
@required {ApplicationId: str}
@returns(200) {GCMChannelResponse: GCMChannelResponse{ApplicationId: str?, CreationDate: str?, Credential: str?, DefaultAuthenticationMethod: str?, Enabled: bool?, HasCredential: bool?, HasFcmServiceCredentials: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endgroup

@group templates
@endpoint DELETE /v1/templates/{template-name}/inapp
@desc Deletes a message template for messages sent using the in-app message channel.
@required {TemplateName: str}
@optional {version: str}
@returns(200) {MessageBody: MessageBody{Message: str?, RequestID: str?}}

@endgroup

@group apps
@endpoint DELETE /v1/apps/{application-id}/journeys/{journey-id}
@desc Deletes a journey from an application.
@required {ApplicationId: str, JourneyId: str}
@returns(200) {JourneyResponse: JourneyResponse{Activities: map<str,Activity>?, ApplicationId: str, CreationDate: str?, Id: str, LastModifiedDate: str?, Limits: JourneyLimits?{DailyCap: int?, EndpointReentryCap: int?, MessagesPerSecond: int?, EndpointReentryInterval: str?, TimeframeCap: JourneyTimeframeCap?{Cap: int?, Days: int?}, TotalCap: int?}, LocalTime: bool?, Name: str, QuietTime: QuietTime?{End: str?, Start: str?}, RefreshFrequency: str?, Schedule: JourneySchedule?{EndTime: str(timestamp)?, StartTime: str(timestamp)?, Timezone: str?}, StartActivity: str?, StartCondition: StartCondition?{Description: str?, EventStartCondition: EventStartCondition?{EventFilter: EventFilter?, SegmentId: str?}, SegmentStartCondition: SegmentCondition?{SegmentId: str}}, State: str?, tags: map<str,str>?, WaitForQuietTime: bool?, RefreshOnSegmentUpdate: bool?, JourneyChannelSettings: JourneyChannelSettings?{ConnectCampaignArn: str?, ConnectCampaignExecutionRoleArn: str?}, SendingSchedule: bool?, OpenHours: OpenHours?{EMAIL: map<str,[OpenHoursRule]>?, SMS: map<str,[OpenHoursRule]>?, PUSH: map<str,[OpenHoursRule]>?, VOICE: map<str,[OpenHoursRule]>?, CUSTOM: map<str,[OpenHoursRule]>?}, ClosedDays: ClosedDays?{EMAIL: [ClosedDaysRule]?, SMS: [ClosedDaysRule]?, PUSH: [ClosedDaysRule]?, VOICE: [ClosedDaysRule]?, CUSTOM: [ClosedDaysRule]?}, TimezoneEstimationMethods: [str]?}}

@endgroup

@group templates
@endpoint DELETE /v1/templates/{template-name}/push
@desc Deletes a message template for messages that were sent through a push notification channel.
@required {TemplateName: str}
@optional {version: str}
@returns(200) {MessageBody: MessageBody{Message: str?, RequestID: str?}}

@endgroup

@group recommenders
@endpoint DELETE /v1/recommenders/{recommender-id}
@desc Deletes an Amazon Pinpoint configuration for a recommender model.
@required {RecommenderId: str}
@returns(200) {RecommenderConfigurationResponse: RecommenderConfigurationResponse{Attributes: map<str,str>?, CreationDate: str, Description: str?, Id: str, LastModifiedDate: str, Name: str?, RecommendationProviderIdType: str?, RecommendationProviderRoleArn: str, RecommendationProviderUri: str, RecommendationTransformerUri: str?, RecommendationsDisplayName: str?, RecommendationsPerMessage: int?}}

@endgroup

@group apps
@endpoint DELETE /v1/apps/{application-id}/segments/{segment-id}
@desc Deletes a segment from an application.
@required {ApplicationId: str, SegmentId: str}
@returns(200) {SegmentResponse: SegmentResponse{ApplicationId: str, Arn: str, CreationDate: str, Dimensions: SegmentDimensions?{Attributes: map<str,AttributeDimension>?, Behavior: SegmentBehaviors?{Recency: RecencyDimension?}, Demographic: SegmentDemographics?{AppVersion: SetDimension?, Channel: SetDimension?, DeviceType: SetDimension?, Make: SetDimension?, Model: SetDimension?, Platform: SetDimension?}, Location: SegmentLocation?{Country: SetDimension?, GPSPoint: GPSPointDimension?}, Metrics: map<str,MetricDimension>?, UserAttributes: map<str,AttributeDimension>?}, Id: str, ImportDefinition: SegmentImportResource?{ChannelCounts: map<str,int>?, ExternalId: str, Format: str, RoleArn: str, S3Url: str, Size: int}, LastModifiedDate: str?, Name: str?, SegmentGroups: SegmentGroupList?{Groups: [SegmentGroup]?, Include: str?}, SegmentType: str, tags: map<str,str>?, Version: int?}}

@endpoint DELETE /v1/apps/{application-id}/channels/sms
@desc Disables the SMS channel for an application and deletes any existing settings for the channel.
@required {ApplicationId: str}
@returns(200) {SMSChannelResponse: SMSChannelResponse{ApplicationId: str?, CreationDate: str?, Enabled: bool?, HasCredential: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, PromotionalMessagesPerSecond: int?, SenderId: str?, ShortCode: str?, TransactionalMessagesPerSecond: int?, Version: int?}}

@endgroup

@group templates
@endpoint DELETE /v1/templates/{template-name}/sms
@desc Deletes a message template for messages that were sent through the SMS channel.
@required {TemplateName: str}
@optional {version: str}
@returns(200) {MessageBody: MessageBody{Message: str?, RequestID: str?}}

@endgroup

@group apps
@endpoint DELETE /v1/apps/{application-id}/users/{user-id}
@desc Deletes all the endpoints that are associated with a specific user ID.
@required {ApplicationId: str, UserId: str}
@returns(200) {EndpointsResponse: EndpointsResponse{Item: [EndpointResponse]}}

@endpoint DELETE /v1/apps/{application-id}/channels/voice
@desc Disables the voice channel for an application and deletes any existing settings for the channel.
@required {ApplicationId: str}
@returns(200) {VoiceChannelResponse: VoiceChannelResponse{ApplicationId: str?, CreationDate: str?, Enabled: bool?, HasCredential: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endgroup

@group templates
@endpoint DELETE /v1/templates/{template-name}/voice
@desc Deletes a message template for messages that were sent through the voice channel.
@required {TemplateName: str}
@optional {version: str}
@returns(200) {MessageBody: MessageBody{Message: str?, RequestID: str?}}

@endgroup

@group apps
@endpoint GET /v1/apps/{application-id}/channels/adm
@desc Retrieves information about the status and settings of the ADM channel for an application.
@required {ApplicationId: str}
@returns(200) {ADMChannelResponse: ADMChannelResponse{ApplicationId: str?, CreationDate: str?, Enabled: bool?, HasCredential: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endpoint GET /v1/apps/{application-id}/channels/apns
@desc Retrieves information about the status and settings of the APNs channel for an application.
@required {ApplicationId: str}
@returns(200) {APNSChannelResponse: APNSChannelResponse{ApplicationId: str?, CreationDate: str?, DefaultAuthenticationMethod: str?, Enabled: bool?, HasCredential: bool?, HasTokenKey: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endpoint GET /v1/apps/{application-id}/channels/apns_sandbox
@desc Retrieves information about the status and settings of the APNs sandbox channel for an application.
@required {ApplicationId: str}
@returns(200) {APNSSandboxChannelResponse: APNSSandboxChannelResponse{ApplicationId: str?, CreationDate: str?, DefaultAuthenticationMethod: str?, Enabled: bool?, HasCredential: bool?, HasTokenKey: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endpoint GET /v1/apps/{application-id}/channels/apns_voip
@desc Retrieves information about the status and settings of the APNs VoIP channel for an application.
@required {ApplicationId: str}
@returns(200) {APNSVoipChannelResponse: APNSVoipChannelResponse{ApplicationId: str?, CreationDate: str?, DefaultAuthenticationMethod: str?, Enabled: bool?, HasCredential: bool?, HasTokenKey: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endpoint GET /v1/apps/{application-id}/channels/apns_voip_sandbox
@desc Retrieves information about the status and settings of the APNs VoIP sandbox channel for an application.
@required {ApplicationId: str}
@returns(200) {APNSVoipSandboxChannelResponse: APNSVoipSandboxChannelResponse{ApplicationId: str?, CreationDate: str?, DefaultAuthenticationMethod: str?, Enabled: bool?, HasCredential: bool?, HasTokenKey: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endpoint GET /v1/apps/{application-id}
@desc Retrieves information about an application.
@required {ApplicationId: str}
@returns(200) {ApplicationResponse: ApplicationResponse{Arn: str, Id: str, Name: str, tags: map<str,str>?, CreationDate: str?}}

@endpoint GET /v1/apps/{application-id}/kpis/daterange/{kpi-name}
@desc Retrieves (queries) pre-aggregated data for a standard metric that applies to an application.
@required {ApplicationId: str, KpiName: str}
@optional {end-time: str(timestamp), next-token: str, page-size: str, start-time: str(timestamp)}
@returns(200) {ApplicationDateRangeKpiResponse: ApplicationDateRangeKpiResponse{ApplicationId: str, EndTime: str(timestamp), KpiName: str, KpiResult: BaseKpiResult{Rows: [ResultRow]}, NextToken: str?, StartTime: str(timestamp)}}

@endpoint GET /v1/apps/{application-id}/settings
@desc Retrieves information about the settings for an application.
@required {ApplicationId: str}
@returns(200) {ApplicationSettingsResource: ApplicationSettingsResource{ApplicationId: str, CampaignHook: CampaignHook?{LambdaFunctionName: str?, Mode: str?, WebUrl: str?}, LastModifiedDate: str?, Limits: CampaignLimits?{Daily: int?, MaximumDuration: int?, MessagesPerSecond: int?, Total: int?, Session: int?}, QuietTime: QuietTime?{End: str?, Start: str?}, JourneyLimits: ApplicationSettingsJourneyLimits?{DailyCap: int?, TimeframeCap: JourneyTimeframeCap?{Cap: int?, Days: int?}, TotalCap: int?}}}

@endpoint GET /v1/apps
@desc Retrieves information about all the applications that are associated with your Amazon Pinpoint account.
@optional {page-size: str, token: str}
@returns(200) {ApplicationsResponse: ApplicationsResponse{Item: [ApplicationResponse]?, NextToken: str?}}

@endpoint GET /v1/apps/{application-id}/channels/baidu
@desc Retrieves information about the status and settings of the Baidu channel for an application.
@required {ApplicationId: str}
@returns(200) {BaiduChannelResponse: BaiduChannelResponse{ApplicationId: str?, CreationDate: str?, Credential: str, Enabled: bool?, HasCredential: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endpoint GET /v1/apps/{application-id}/campaigns/{campaign-id}
@desc Retrieves information about the status, configuration, and other settings for a campaign.
@required {ApplicationId: str, CampaignId: str}
@returns(200) {CampaignResponse: CampaignResponse{AdditionalTreatments: [TreatmentResource]?, ApplicationId: str, Arn: str, CreationDate: str, CustomDeliveryConfiguration: CustomDeliveryConfiguration?{DeliveryUri: str, EndpointTypes: [str]?}, DefaultState: CampaignState?{CampaignStatus: str?}, Description: str?, HoldoutPercent: int?, Hook: CampaignHook?{LambdaFunctionName: str?, Mode: str?, WebUrl: str?}, Id: str, IsPaused: bool?, LastModifiedDate: str, Limits: CampaignLimits?{Daily: int?, MaximumDuration: int?, MessagesPerSecond: int?, Total: int?, Session: int?}, MessageConfiguration: MessageConfiguration?{ADMMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, APNSMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, BaiduMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, CustomMessage: CampaignCustomMessage?{Data: str?}, DefaultMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, EmailMessage: CampaignEmailMessage?{Body: str?, FromAddress: str?, Headers: [MessageHeader]?, HtmlBody: str?, Title: str?}, GCMMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, SMSMessage: CampaignSmsMessage?{Body: str?, MessageType: str?, OriginationNumber: str?, SenderId: str?, EntityId: str?, TemplateId: str?}, InAppMessage: CampaignInAppMessage?{Body: str?, Content: [InAppMessageContent]?, CustomConfig: map<str,str>?, Layout: str?}}, Name: str?, Schedule: Schedule?{EndTime: str?, EventFilter: CampaignEventFilter?{Dimensions: EventDimensions, FilterType: str}, Frequency: str?, IsLocalTime: bool?, QuietTime: QuietTime?{End: str?, Start: str?}, StartTime: str, Timezone: str?}, SegmentId: str, SegmentVersion: int, State: CampaignState?{CampaignStatus: str?}, tags: map<str,str>?, TemplateConfiguration: TemplateConfiguration?{EmailTemplate: Template?{Name: str?, Version: str?}, PushTemplate: Template?{Name: str?, Version: str?}, SMSTemplate: Template?{Name: str?, Version: str?}, VoiceTemplate: Template?{Name: str?, Version: str?}, InAppTemplate: Template?{Name: str?, Version: str?}}, TreatmentDescription: str?, TreatmentName: str?, Version: int?, Priority: int?}}

@endpoint GET /v1/apps/{application-id}/campaigns/{campaign-id}/activities
@desc Retrieves information about all the activities for a campaign.
@required {ApplicationId: str, CampaignId: str}
@optional {page-size: str, token: str}
@returns(200) {ActivitiesResponse: ActivitiesResponse{Item: [ActivityResponse], NextToken: str?}}

@endpoint GET /v1/apps/{application-id}/campaigns/{campaign-id}/kpis/daterange/{kpi-name}
@desc Retrieves (queries) pre-aggregated data for a standard metric that applies to a campaign.
@required {ApplicationId: str, CampaignId: str, KpiName: str}
@optional {end-time: str(timestamp), next-token: str, page-size: str, start-time: str(timestamp)}
@returns(200) {CampaignDateRangeKpiResponse: CampaignDateRangeKpiResponse{ApplicationId: str, CampaignId: str, EndTime: str(timestamp), KpiName: str, KpiResult: BaseKpiResult{Rows: [ResultRow]}, NextToken: str?, StartTime: str(timestamp)}}

@endpoint GET /v1/apps/{application-id}/campaigns/{campaign-id}/versions/{version}
@desc Retrieves information about the status, configuration, and other settings for a specific version of a campaign.
@required {ApplicationId: str, CampaignId: str, Version: str}
@returns(200) {CampaignResponse: CampaignResponse{AdditionalTreatments: [TreatmentResource]?, ApplicationId: str, Arn: str, CreationDate: str, CustomDeliveryConfiguration: CustomDeliveryConfiguration?{DeliveryUri: str, EndpointTypes: [str]?}, DefaultState: CampaignState?{CampaignStatus: str?}, Description: str?, HoldoutPercent: int?, Hook: CampaignHook?{LambdaFunctionName: str?, Mode: str?, WebUrl: str?}, Id: str, IsPaused: bool?, LastModifiedDate: str, Limits: CampaignLimits?{Daily: int?, MaximumDuration: int?, MessagesPerSecond: int?, Total: int?, Session: int?}, MessageConfiguration: MessageConfiguration?{ADMMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, APNSMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, BaiduMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, CustomMessage: CampaignCustomMessage?{Data: str?}, DefaultMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, EmailMessage: CampaignEmailMessage?{Body: str?, FromAddress: str?, Headers: [MessageHeader]?, HtmlBody: str?, Title: str?}, GCMMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, SMSMessage: CampaignSmsMessage?{Body: str?, MessageType: str?, OriginationNumber: str?, SenderId: str?, EntityId: str?, TemplateId: str?}, InAppMessage: CampaignInAppMessage?{Body: str?, Content: [InAppMessageContent]?, CustomConfig: map<str,str>?, Layout: str?}}, Name: str?, Schedule: Schedule?{EndTime: str?, EventFilter: CampaignEventFilter?{Dimensions: EventDimensions, FilterType: str}, Frequency: str?, IsLocalTime: bool?, QuietTime: QuietTime?{End: str?, Start: str?}, StartTime: str, Timezone: str?}, SegmentId: str, SegmentVersion: int, State: CampaignState?{CampaignStatus: str?}, tags: map<str,str>?, TemplateConfiguration: TemplateConfiguration?{EmailTemplate: Template?{Name: str?, Version: str?}, PushTemplate: Template?{Name: str?, Version: str?}, SMSTemplate: Template?{Name: str?, Version: str?}, VoiceTemplate: Template?{Name: str?, Version: str?}, InAppTemplate: Template?{Name: str?, Version: str?}}, TreatmentDescription: str?, TreatmentName: str?, Version: int?, Priority: int?}}

@endpoint GET /v1/apps/{application-id}/campaigns/{campaign-id}/versions
@desc Retrieves information about the status, configuration, and other settings for all versions of a campaign.
@required {ApplicationId: str, CampaignId: str}
@optional {page-size: str, token: str}
@returns(200) {CampaignsResponse: CampaignsResponse{Item: [CampaignResponse], NextToken: str?}}

@endpoint GET /v1/apps/{application-id}/campaigns
@desc Retrieves information about the status, configuration, and other settings for all the campaigns that are associated with an application.
@required {ApplicationId: str}
@optional {page-size: str, token: str}
@returns(200) {CampaignsResponse: CampaignsResponse{Item: [CampaignResponse], NextToken: str?}}

@endpoint GET /v1/apps/{application-id}/channels
@desc Retrieves information about the history and status of each channel for an application.
@required {ApplicationId: str}
@returns(200) {ChannelsResponse: ChannelsResponse{Channels: map<str,ChannelResponse>}}

@endpoint GET /v1/apps/{application-id}/channels/email
@desc Retrieves information about the status and settings of the email channel for an application.
@required {ApplicationId: str}
@returns(200) {EmailChannelResponse: EmailChannelResponse{ApplicationId: str?, ConfigurationSet: str?, CreationDate: str?, Enabled: bool?, FromAddress: str?, HasCredential: bool?, Id: str?, Identity: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, MessagesPerSecond: int?, Platform: str, RoleArn: str?, OrchestrationSendingRoleArn: str?, Version: int?}}

@endgroup

@group templates
@endpoint GET /v1/templates/{template-name}/email
@desc Retrieves the content and settings of a message template for messages that are sent through the email channel.
@required {TemplateName: str}
@optional {version: str}
@returns(200) {EmailTemplateResponse: EmailTemplateResponse{Arn: str?, CreationDate: str, DefaultSubstitutions: str?, HtmlPart: str?, LastModifiedDate: str, RecommenderId: str?, Subject: str?, Headers: [MessageHeader]?, tags: map<str,str>?, TemplateDescription: str?, TemplateName: str, TemplateType: str, TextPart: str?, Version: str?}}

@endgroup

@group apps
@endpoint GET /v1/apps/{application-id}/endpoints/{endpoint-id}
@desc Retrieves information about the settings and attributes of a specific endpoint for an application.
@required {ApplicationId: str, EndpointId: str}
@returns(200) {EndpointResponse: EndpointResponse{Address: str?, ApplicationId: str?, Attributes: map<str,[str]>?, ChannelType: str?, CohortId: str?, CreationDate: str?, Demographic: EndpointDemographic?{AppVersion: str?, Locale: str?, Make: str?, Model: str?, ModelVersion: str?, Platform: str?, PlatformVersion: str?, Timezone: str?}, EffectiveDate: str?, EndpointStatus: str?, Id: str?, Location: EndpointLocation?{City: str?, Country: str?, Latitude: num(f64)?, Longitude: num(f64)?, PostalCode: str?, Region: str?}, Metrics: map<str,num(f64)>?, OptOut: str?, RequestId: str?, User: EndpointUser?{UserAttributes: map<str,[str]>?, UserId: str?}}}

@endpoint GET /v1/apps/{application-id}/eventstream
@desc Retrieves information about the event stream settings for an application.
@required {ApplicationId: str}
@returns(200) {EventStream: EventStream{ApplicationId: str, DestinationStreamArn: str, ExternalId: str?, LastModifiedDate: str?, LastUpdatedBy: str?, RoleArn: str}}

@endpoint GET /v1/apps/{application-id}/jobs/export/{job-id}
@desc Retrieves information about the status and settings of a specific export job for an application.
@required {ApplicationId: str, JobId: str}
@returns(200) {ExportJobResponse: ExportJobResponse{ApplicationId: str, CompletedPieces: int?, CompletionDate: str?, CreationDate: str, Definition: ExportJobResource{RoleArn: str, S3UrlPrefix: str, SegmentId: str?, SegmentVersion: int?}, FailedPieces: int?, Failures: [str]?, Id: str, JobStatus: str, TotalFailures: int?, TotalPieces: int?, TotalProcessed: int?, Type: str}}

@endpoint GET /v1/apps/{application-id}/jobs/export
@desc Retrieves information about the status and settings of all the export jobs for an application.
@required {ApplicationId: str}
@optional {page-size: str, token: str}
@returns(200) {ExportJobsResponse: ExportJobsResponse{Item: [ExportJobResponse], NextToken: str?}}

@endpoint GET /v1/apps/{application-id}/channels/gcm
@desc Retrieves information about the status and settings of the GCM channel for an application.
@required {ApplicationId: str}
@returns(200) {GCMChannelResponse: GCMChannelResponse{ApplicationId: str?, CreationDate: str?, Credential: str?, DefaultAuthenticationMethod: str?, Enabled: bool?, HasCredential: bool?, HasFcmServiceCredentials: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endpoint GET /v1/apps/{application-id}/jobs/import/{job-id}
@desc Retrieves information about the status and settings of a specific import job for an application.
@required {ApplicationId: str, JobId: str}
@returns(200) {ImportJobResponse: ImportJobResponse{ApplicationId: str, CompletedPieces: int?, CompletionDate: str?, CreationDate: str, Definition: ImportJobResource{DefineSegment: bool?, ExternalId: str?, Format: str, RegisterEndpoints: bool?, RoleArn: str, S3Url: str, SegmentId: str?, SegmentName: str?}, FailedPieces: int?, Failures: [str]?, Id: str, JobStatus: str, TotalFailures: int?, TotalPieces: int?, TotalProcessed: int?, Type: str}}

@endpoint GET /v1/apps/{application-id}/jobs/import
@desc Retrieves information about the status and settings of all the import jobs for an application.
@required {ApplicationId: str}
@optional {page-size: str, token: str}
@returns(200) {ImportJobsResponse: ImportJobsResponse{Item: [ImportJobResponse], NextToken: str?}}

@endpoint GET /v1/apps/{application-id}/endpoints/{endpoint-id}/inappmessages
@desc Retrieves the in-app messages targeted for the provided endpoint ID.
@required {ApplicationId: str, EndpointId: str}
@returns(200) {InAppMessagesResponse: InAppMessagesResponse{InAppMessageCampaigns: [InAppMessageCampaign]?}}

@endgroup

@group templates
@endpoint GET /v1/templates/{template-name}/inapp
@desc Retrieves the content and settings of a message template for messages sent through the in-app channel.
@required {TemplateName: str}
@optional {version: str}
@returns(200) {InAppTemplateResponse: InAppTemplateResponse{Arn: str?, Content: [InAppMessageContent]?, CreationDate: str, CustomConfig: map<str,str>?, LastModifiedDate: str, Layout: str?, tags: map<str,str>?, TemplateDescription: str?, TemplateName: str, TemplateType: str, Version: str?}}

@endgroup

@group apps
@endpoint GET /v1/apps/{application-id}/journeys/{journey-id}
@desc Retrieves information about the status, configuration, and other settings for a journey.
@required {ApplicationId: str, JourneyId: str}
@returns(200) {JourneyResponse: JourneyResponse{Activities: map<str,Activity>?, ApplicationId: str, CreationDate: str?, Id: str, LastModifiedDate: str?, Limits: JourneyLimits?{DailyCap: int?, EndpointReentryCap: int?, MessagesPerSecond: int?, EndpointReentryInterval: str?, TimeframeCap: JourneyTimeframeCap?{Cap: int?, Days: int?}, TotalCap: int?}, LocalTime: bool?, Name: str, QuietTime: QuietTime?{End: str?, Start: str?}, RefreshFrequency: str?, Schedule: JourneySchedule?{EndTime: str(timestamp)?, StartTime: str(timestamp)?, Timezone: str?}, StartActivity: str?, StartCondition: StartCondition?{Description: str?, EventStartCondition: EventStartCondition?{EventFilter: EventFilter?, SegmentId: str?}, SegmentStartCondition: SegmentCondition?{SegmentId: str}}, State: str?, tags: map<str,str>?, WaitForQuietTime: bool?, RefreshOnSegmentUpdate: bool?, JourneyChannelSettings: JourneyChannelSettings?{ConnectCampaignArn: str?, ConnectCampaignExecutionRoleArn: str?}, SendingSchedule: bool?, OpenHours: OpenHours?{EMAIL: map<str,[OpenHoursRule]>?, SMS: map<str,[OpenHoursRule]>?, PUSH: map<str,[OpenHoursRule]>?, VOICE: map<str,[OpenHoursRule]>?, CUSTOM: map<str,[OpenHoursRule]>?}, ClosedDays: ClosedDays?{EMAIL: [ClosedDaysRule]?, SMS: [ClosedDaysRule]?, PUSH: [ClosedDaysRule]?, VOICE: [ClosedDaysRule]?, CUSTOM: [ClosedDaysRule]?}, TimezoneEstimationMethods: [str]?}}

@endpoint GET /v1/apps/{application-id}/journeys/{journey-id}/kpis/daterange/{kpi-name}
@desc Retrieves (queries) pre-aggregated data for a standard engagement metric that applies to a journey.
@required {ApplicationId: str, JourneyId: str, KpiName: str}
@optional {end-time: str(timestamp), next-token: str, page-size: str, start-time: str(timestamp)}
@returns(200) {JourneyDateRangeKpiResponse: JourneyDateRangeKpiResponse{ApplicationId: str, EndTime: str(timestamp), JourneyId: str, KpiName: str, KpiResult: BaseKpiResult{Rows: [ResultRow]}, NextToken: str?, StartTime: str(timestamp)}}

@endpoint GET /v1/apps/{application-id}/journeys/{journey-id}/activities/{journey-activity-id}/execution-metrics
@desc Retrieves (queries) pre-aggregated data for a standard execution metric that applies to a journey activity.
@required {ApplicationId: str, JourneyActivityId: str, JourneyId: str}
@optional {next-token: str, page-size: str}
@returns(200) {JourneyExecutionActivityMetricsResponse: JourneyExecutionActivityMetricsResponse{ActivityType: str, ApplicationId: str, JourneyActivityId: str, JourneyId: str, LastEvaluatedTime: str, Metrics: map<str,str>}}

@endpoint GET /v1/apps/{application-id}/journeys/{journey-id}/execution-metrics
@desc Retrieves (queries) pre-aggregated data for a standard execution metric that applies to a journey.
@required {ApplicationId: str, JourneyId: str}
@optional {next-token: str, page-size: str}
@returns(200) {JourneyExecutionMetricsResponse: JourneyExecutionMetricsResponse{ApplicationId: str, JourneyId: str, LastEvaluatedTime: str, Metrics: map<str,str>}}

@endpoint GET /v1/apps/{application-id}/journeys/{journey-id}/runs/{run-id}/activities/{journey-activity-id}/execution-metrics
@desc Retrieves (queries) pre-aggregated data for a standard run execution metric that applies to a journey activity.
@required {ApplicationId: str, JourneyActivityId: str, JourneyId: str, RunId: str}
@optional {next-token: str, page-size: str}
@returns(200) {JourneyRunExecutionActivityMetricsResponse: JourneyRunExecutionActivityMetricsResponse{ActivityType: str, ApplicationId: str, JourneyActivityId: str, JourneyId: str, LastEvaluatedTime: str, Metrics: map<str,str>, RunId: str}}

@endpoint GET /v1/apps/{application-id}/journeys/{journey-id}/runs/{run-id}/execution-metrics
@desc Retrieves (queries) pre-aggregated data for a standard run execution metric that applies to a journey.
@required {ApplicationId: str, JourneyId: str, RunId: str}
@optional {next-token: str, page-size: str}
@returns(200) {JourneyRunExecutionMetricsResponse: JourneyRunExecutionMetricsResponse{ApplicationId: str, JourneyId: str, LastEvaluatedTime: str, Metrics: map<str,str>, RunId: str}}

@endpoint GET /v1/apps/{application-id}/journeys/{journey-id}/runs
@desc Provides information about the runs of a journey.
@required {ApplicationId: str, JourneyId: str}
@optional {page-size: str, token: str}
@returns(200) {JourneyRunsResponse: JourneyRunsResponse{Item: [JourneyRunResponse], NextToken: str?}}

@endgroup

@group templates
@endpoint GET /v1/templates/{template-name}/push
@desc Retrieves the content and settings of a message template for messages that are sent through a push notification channel.
@required {TemplateName: str}
@optional {version: str}
@returns(200) {PushNotificationTemplateResponse: PushNotificationTemplateResponse{ADM: AndroidPushNotificationTemplate?{Action: str?, Body: str?, ImageIconUrl: str?, ImageUrl: str?, RawContent: str?, SmallImageIconUrl: str?, Sound: str?, Title: str?, Url: str?}, APNS: APNSPushNotificationTemplate?{Action: str?, Body: str?, MediaUrl: str?, RawContent: str?, Sound: str?, Title: str?, Url: str?}, Arn: str?, Baidu: AndroidPushNotificationTemplate?{Action: str?, Body: str?, ImageIconUrl: str?, ImageUrl: str?, RawContent: str?, SmallImageIconUrl: str?, Sound: str?, Title: str?, Url: str?}, CreationDate: str, Default: DefaultPushNotificationTemplate?{Action: str?, Body: str?, Sound: str?, Title: str?, Url: str?}, DefaultSubstitutions: str?, GCM: AndroidPushNotificationTemplate?{Action: str?, Body: str?, ImageIconUrl: str?, ImageUrl: str?, RawContent: str?, SmallImageIconUrl: str?, Sound: str?, Title: str?, Url: str?}, LastModifiedDate: str, RecommenderId: str?, tags: map<str,str>?, TemplateDescription: str?, TemplateName: str, TemplateType: str, Version: str?}}

@endgroup

@group recommenders
@endpoint GET /v1/recommenders/{recommender-id}
@desc Retrieves information about an Amazon Pinpoint configuration for a recommender model.
@required {RecommenderId: str}
@returns(200) {RecommenderConfigurationResponse: RecommenderConfigurationResponse{Attributes: map<str,str>?, CreationDate: str, Description: str?, Id: str, LastModifiedDate: str, Name: str?, RecommendationProviderIdType: str?, RecommendationProviderRoleArn: str, RecommendationProviderUri: str, RecommendationTransformerUri: str?, RecommendationsDisplayName: str?, RecommendationsPerMessage: int?}}

@endpoint GET /v1/recommenders
@desc Retrieves information about all the recommender model configurations that are associated with your Amazon Pinpoint account.
@optional {page-size: str, token: str}
@returns(200) {ListRecommenderConfigurationsResponse: ListRecommenderConfigurationsResponse{Item: [RecommenderConfigurationResponse], NextToken: str?}}

@endgroup

@group apps
@endpoint GET /v1/apps/{application-id}/segments/{segment-id}
@desc Retrieves information about the configuration, dimension, and other settings for a specific segment that's associated with an application.
@required {ApplicationId: str, SegmentId: str}
@returns(200) {SegmentResponse: SegmentResponse{ApplicationId: str, Arn: str, CreationDate: str, Dimensions: SegmentDimensions?{Attributes: map<str,AttributeDimension>?, Behavior: SegmentBehaviors?{Recency: RecencyDimension?}, Demographic: SegmentDemographics?{AppVersion: SetDimension?, Channel: SetDimension?, DeviceType: SetDimension?, Make: SetDimension?, Model: SetDimension?, Platform: SetDimension?}, Location: SegmentLocation?{Country: SetDimension?, GPSPoint: GPSPointDimension?}, Metrics: map<str,MetricDimension>?, UserAttributes: map<str,AttributeDimension>?}, Id: str, ImportDefinition: SegmentImportResource?{ChannelCounts: map<str,int>?, ExternalId: str, Format: str, RoleArn: str, S3Url: str, Size: int}, LastModifiedDate: str?, Name: str?, SegmentGroups: SegmentGroupList?{Groups: [SegmentGroup]?, Include: str?}, SegmentType: str, tags: map<str,str>?, Version: int?}}

@endpoint GET /v1/apps/{application-id}/segments/{segment-id}/jobs/export
@desc Retrieves information about the status and settings of the export jobs for a segment.
@required {ApplicationId: str, SegmentId: str}
@optional {page-size: str, token: str}
@returns(200) {ExportJobsResponse: ExportJobsResponse{Item: [ExportJobResponse], NextToken: str?}}

@endpoint GET /v1/apps/{application-id}/segments/{segment-id}/jobs/import
@desc Retrieves information about the status and settings of the import jobs for a segment.
@required {ApplicationId: str, SegmentId: str}
@optional {page-size: str, token: str}
@returns(200) {ImportJobsResponse: ImportJobsResponse{Item: [ImportJobResponse], NextToken: str?}}

@endpoint GET /v1/apps/{application-id}/segments/{segment-id}/versions/{version}
@desc Retrieves information about the configuration, dimension, and other settings for a specific version of a segment that's associated with an application.
@required {ApplicationId: str, SegmentId: str, Version: str}
@returns(200) {SegmentResponse: SegmentResponse{ApplicationId: str, Arn: str, CreationDate: str, Dimensions: SegmentDimensions?{Attributes: map<str,AttributeDimension>?, Behavior: SegmentBehaviors?{Recency: RecencyDimension?}, Demographic: SegmentDemographics?{AppVersion: SetDimension?, Channel: SetDimension?, DeviceType: SetDimension?, Make: SetDimension?, Model: SetDimension?, Platform: SetDimension?}, Location: SegmentLocation?{Country: SetDimension?, GPSPoint: GPSPointDimension?}, Metrics: map<str,MetricDimension>?, UserAttributes: map<str,AttributeDimension>?}, Id: str, ImportDefinition: SegmentImportResource?{ChannelCounts: map<str,int>?, ExternalId: str, Format: str, RoleArn: str, S3Url: str, Size: int}, LastModifiedDate: str?, Name: str?, SegmentGroups: SegmentGroupList?{Groups: [SegmentGroup]?, Include: str?}, SegmentType: str, tags: map<str,str>?, Version: int?}}

@endpoint GET /v1/apps/{application-id}/segments/{segment-id}/versions
@desc Retrieves information about the configuration, dimension, and other settings for all the versions of a specific segment that's associated with an application.
@required {ApplicationId: str, SegmentId: str}
@optional {page-size: str, token: str}
@returns(200) {SegmentsResponse: SegmentsResponse{Item: [SegmentResponse], NextToken: str?}}

@endpoint GET /v1/apps/{application-id}/segments
@desc Retrieves information about the configuration, dimension, and other settings for all the segments that are associated with an application.
@required {ApplicationId: str}
@optional {page-size: str, token: str}
@returns(200) {SegmentsResponse: SegmentsResponse{Item: [SegmentResponse], NextToken: str?}}

@endpoint GET /v1/apps/{application-id}/channels/sms
@desc Retrieves information about the status and settings of the SMS channel for an application.
@required {ApplicationId: str}
@returns(200) {SMSChannelResponse: SMSChannelResponse{ApplicationId: str?, CreationDate: str?, Enabled: bool?, HasCredential: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, PromotionalMessagesPerSecond: int?, SenderId: str?, ShortCode: str?, TransactionalMessagesPerSecond: int?, Version: int?}}

@endgroup

@group templates
@endpoint GET /v1/templates/{template-name}/sms
@desc Retrieves the content and settings of a message template for messages that are sent through the SMS channel.
@required {TemplateName: str}
@optional {version: str}
@returns(200) {SMSTemplateResponse: SMSTemplateResponse{Arn: str?, Body: str?, CreationDate: str, DefaultSubstitutions: str?, LastModifiedDate: str, RecommenderId: str?, tags: map<str,str>?, TemplateDescription: str?, TemplateName: str, TemplateType: str, Version: str?}}

@endgroup

@group apps
@endpoint GET /v1/apps/{application-id}/users/{user-id}
@desc Retrieves information about all the endpoints that are associated with a specific user ID.
@required {ApplicationId: str, UserId: str}
@returns(200) {EndpointsResponse: EndpointsResponse{Item: [EndpointResponse]}}

@endpoint GET /v1/apps/{application-id}/channels/voice
@desc Retrieves information about the status and settings of the voice channel for an application.
@required {ApplicationId: str}
@returns(200) {VoiceChannelResponse: VoiceChannelResponse{ApplicationId: str?, CreationDate: str?, Enabled: bool?, HasCredential: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endgroup

@group templates
@endpoint GET /v1/templates/{template-name}/voice
@desc Retrieves the content and settings of a message template for messages that are sent through the voice channel.
@required {TemplateName: str}
@optional {version: str}
@returns(200) {VoiceTemplateResponse: VoiceTemplateResponse{Arn: str?, Body: str?, CreationDate: str, DefaultSubstitutions: str?, LanguageCode: str?, LastModifiedDate: str, tags: map<str,str>?, TemplateDescription: str?, TemplateName: str, TemplateType: str, Version: str?, VoiceId: str?}}

@endgroup

@group apps
@endpoint GET /v1/apps/{application-id}/journeys
@desc Retrieves information about the status, configuration, and other settings for all the journeys that are associated with an application.
@required {ApplicationId: str}
@optional {page-size: str, token: str}
@returns(200) {JourneysResponse: JourneysResponse{Item: [JourneyResponse], NextToken: str?}}

@endgroup

@group tags
@endpoint GET /v1/tags/{resource-arn}
@desc Retrieves all the tags (keys and values) that are associated with an application, campaign, message template, or segment.
@required {ResourceArn: str}
@returns(200) {TagsModel: TagsModel{tags: map<str,str>}}

@endgroup

@group templates
@endpoint GET /v1/templates/{template-name}/{template-type}/versions
@desc Retrieves information about all the versions of a specific message template.
@required {TemplateName: str, TemplateType: str}
@optional {next-token: str, page-size: str}
@returns(200) {TemplateVersionsResponse: TemplateVersionsResponse{Item: [TemplateVersionResponse], Message: str?, NextToken: str?, RequestID: str?}}

@endpoint GET /v1/templates
@desc Retrieves information about all the message templates that are associated with your Amazon Pinpoint account.
@optional {next-token: str, page-size: str, prefix: str, template-type: str}
@returns(200) {TemplatesResponse: TemplatesResponse{Item: [TemplateResponse], NextToken: str?}}

@endgroup

@group phone
@endpoint POST /v1/phone/number/validate
@desc Retrieves information about a phone number.
@required {NumberValidateRequest: NumberValidateRequest}
@returns(200) {NumberValidateResponse: NumberValidateResponse{Carrier: str?, City: str?, CleansedPhoneNumberE164: str?, CleansedPhoneNumberNational: str?, Country: str?, CountryCodeIso2: str?, CountryCodeNumeric: str?, County: str?, OriginalCountryCodeIso2: str?, OriginalPhoneNumber: str?, PhoneType: str?, PhoneTypeCode: int?, Timezone: str?, ZipCode: str?}}

@endgroup

@group apps
@endpoint POST /v1/apps/{application-id}/eventstream
@desc Creates a new event stream for an application or updates the settings of an existing event stream for an application.
@required {ApplicationId: str, WriteEventStream: WriteEventStream}
@returns(200) {EventStream: EventStream{ApplicationId: str, DestinationStreamArn: str, ExternalId: str?, LastModifiedDate: str?, LastUpdatedBy: str?, RoleArn: str}}

@endpoint POST /v1/apps/{application-id}/events
@desc Creates a new event to record for endpoints, or creates or updates endpoint data that existing events are associated with.
@required {ApplicationId: str, EventsRequest: EventsRequest}
@returns(200) {EventsResponse: EventsResponse{Results: map<str,ItemResponse>?}}

@endpoint PUT /v1/apps/{application-id}/attributes/{attribute-type}
@desc Removes one or more custom attributes, of the same attribute type, from the application. Existing endpoints still have the attributes but Amazon Pinpoint will stop capturing new or changed values for these attributes.
@required {ApplicationId: str, AttributeType: str, UpdateAttributesRequest: UpdateAttributesRequest}
@returns(200) {AttributesResource: AttributesResource{ApplicationId: str, AttributeType: str, Attributes: [str]?}}

@endpoint POST /v1/apps/{application-id}/messages
@desc Creates and sends a direct message.
@required {ApplicationId: str, MessageRequest: MessageRequest}
@returns(200) {MessageResponse: MessageResponse{ApplicationId: str, EndpointResult: map<str,EndpointMessageResult>?, RequestId: str?, Result: map<str,MessageResult>?}}

@endpoint POST /v1/apps/{application-id}/otp
@desc Send an OTP message
@required {ApplicationId: str, SendOTPMessageRequestParameters: SendOTPMessageRequestParameters}
@returns(200) {MessageResponse: MessageResponse{ApplicationId: str, EndpointResult: map<str,EndpointMessageResult>?, RequestId: str?, Result: map<str,MessageResult>?}}

@endpoint POST /v1/apps/{application-id}/users-messages
@desc Creates and sends a message to a list of users.
@required {ApplicationId: str, SendUsersMessageRequest: SendUsersMessageRequest}
@returns(200) {SendUsersMessageResponse: SendUsersMessageResponse{ApplicationId: str, RequestId: str?, Result: map<str,map<str,EndpointMessageResult>>?}}

@endgroup

@group tags
@endpoint POST /v1/tags/{resource-arn}
@desc Adds one or more tags (keys and values) to an application, campaign, message template, or segment.
@required {ResourceArn: str, TagsModel: TagsModel}

@endpoint DELETE /v1/tags/{resource-arn}
@desc Removes one or more tags (keys and values) from an application, campaign, message template, or segment.
@required {ResourceArn: str, tagKeys: [str]}

@endgroup

@group apps
@endpoint PUT /v1/apps/{application-id}/channels/adm
@desc Enables the ADM channel for an application or updates the status and settings of the ADM channel for an application.
@required {ApplicationId: str, ADMChannelRequest: ADMChannelRequest}
@returns(200) {ADMChannelResponse: ADMChannelResponse{ApplicationId: str?, CreationDate: str?, Enabled: bool?, HasCredential: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endpoint PUT /v1/apps/{application-id}/channels/apns
@desc Enables the APNs channel for an application or updates the status and settings of the APNs channel for an application.
@required {ApplicationId: str, APNSChannelRequest: APNSChannelRequest}
@returns(200) {APNSChannelResponse: APNSChannelResponse{ApplicationId: str?, CreationDate: str?, DefaultAuthenticationMethod: str?, Enabled: bool?, HasCredential: bool?, HasTokenKey: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endpoint PUT /v1/apps/{application-id}/channels/apns_sandbox
@desc Enables the APNs sandbox channel for an application or updates the status and settings of the APNs sandbox channel for an application.
@required {ApplicationId: str, APNSSandboxChannelRequest: APNSSandboxChannelRequest}
@returns(200) {APNSSandboxChannelResponse: APNSSandboxChannelResponse{ApplicationId: str?, CreationDate: str?, DefaultAuthenticationMethod: str?, Enabled: bool?, HasCredential: bool?, HasTokenKey: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endpoint PUT /v1/apps/{application-id}/channels/apns_voip
@desc Enables the APNs VoIP channel for an application or updates the status and settings of the APNs VoIP channel for an application.
@required {ApplicationId: str, APNSVoipChannelRequest: APNSVoipChannelRequest}
@returns(200) {APNSVoipChannelResponse: APNSVoipChannelResponse{ApplicationId: str?, CreationDate: str?, DefaultAuthenticationMethod: str?, Enabled: bool?, HasCredential: bool?, HasTokenKey: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endpoint PUT /v1/apps/{application-id}/channels/apns_voip_sandbox
@desc Enables the APNs VoIP sandbox channel for an application or updates the status and settings of the APNs VoIP sandbox channel for an application.
@required {ApplicationId: str, APNSVoipSandboxChannelRequest: APNSVoipSandboxChannelRequest}
@returns(200) {APNSVoipSandboxChannelResponse: APNSVoipSandboxChannelResponse{ApplicationId: str?, CreationDate: str?, DefaultAuthenticationMethod: str?, Enabled: bool?, HasCredential: bool?, HasTokenKey: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endpoint PUT /v1/apps/{application-id}/settings
@desc Updates the settings for an application.
@required {ApplicationId: str, WriteApplicationSettingsRequest: WriteApplicationSettingsRequest}
@returns(200) {ApplicationSettingsResource: ApplicationSettingsResource{ApplicationId: str, CampaignHook: CampaignHook?{LambdaFunctionName: str?, Mode: str?, WebUrl: str?}, LastModifiedDate: str?, Limits: CampaignLimits?{Daily: int?, MaximumDuration: int?, MessagesPerSecond: int?, Total: int?, Session: int?}, QuietTime: QuietTime?{End: str?, Start: str?}, JourneyLimits: ApplicationSettingsJourneyLimits?{DailyCap: int?, TimeframeCap: JourneyTimeframeCap?{Cap: int?, Days: int?}, TotalCap: int?}}}

@endpoint PUT /v1/apps/{application-id}/channels/baidu
@desc Enables the Baidu channel for an application or updates the status and settings of the Baidu channel for an application.
@required {ApplicationId: str, BaiduChannelRequest: BaiduChannelRequest}
@returns(200) {BaiduChannelResponse: BaiduChannelResponse{ApplicationId: str?, CreationDate: str?, Credential: str, Enabled: bool?, HasCredential: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endpoint PUT /v1/apps/{application-id}/campaigns/{campaign-id}
@desc Updates the configuration and other settings for a campaign.
@required {ApplicationId: str, CampaignId: str, WriteCampaignRequest: WriteCampaignRequest}
@returns(200) {CampaignResponse: CampaignResponse{AdditionalTreatments: [TreatmentResource]?, ApplicationId: str, Arn: str, CreationDate: str, CustomDeliveryConfiguration: CustomDeliveryConfiguration?{DeliveryUri: str, EndpointTypes: [str]?}, DefaultState: CampaignState?{CampaignStatus: str?}, Description: str?, HoldoutPercent: int?, Hook: CampaignHook?{LambdaFunctionName: str?, Mode: str?, WebUrl: str?}, Id: str, IsPaused: bool?, LastModifiedDate: str, Limits: CampaignLimits?{Daily: int?, MaximumDuration: int?, MessagesPerSecond: int?, Total: int?, Session: int?}, MessageConfiguration: MessageConfiguration?{ADMMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, APNSMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, BaiduMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, CustomMessage: CampaignCustomMessage?{Data: str?}, DefaultMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, EmailMessage: CampaignEmailMessage?{Body: str?, FromAddress: str?, Headers: [MessageHeader]?, HtmlBody: str?, Title: str?}, GCMMessage: Message?{Action: str?, Body: str?, ImageIconUrl: str?, ImageSmallIconUrl: str?, ImageUrl: str?, JsonBody: str?, MediaUrl: str?, RawContent: str?, SilentPush: bool?, TimeToLive: int?, Title: str?, Url: str?}, SMSMessage: CampaignSmsMessage?{Body: str?, MessageType: str?, OriginationNumber: str?, SenderId: str?, EntityId: str?, TemplateId: str?}, InAppMessage: CampaignInAppMessage?{Body: str?, Content: [InAppMessageContent]?, CustomConfig: map<str,str>?, Layout: str?}}, Name: str?, Schedule: Schedule?{EndTime: str?, EventFilter: CampaignEventFilter?{Dimensions: EventDimensions, FilterType: str}, Frequency: str?, IsLocalTime: bool?, QuietTime: QuietTime?{End: str?, Start: str?}, StartTime: str, Timezone: str?}, SegmentId: str, SegmentVersion: int, State: CampaignState?{CampaignStatus: str?}, tags: map<str,str>?, TemplateConfiguration: TemplateConfiguration?{EmailTemplate: Template?{Name: str?, Version: str?}, PushTemplate: Template?{Name: str?, Version: str?}, SMSTemplate: Template?{Name: str?, Version: str?}, VoiceTemplate: Template?{Name: str?, Version: str?}, InAppTemplate: Template?{Name: str?, Version: str?}}, TreatmentDescription: str?, TreatmentName: str?, Version: int?, Priority: int?}}

@endpoint PUT /v1/apps/{application-id}/channels/email
@desc Enables the email channel for an application or updates the status and settings of the email channel for an application.
@required {ApplicationId: str, EmailChannelRequest: EmailChannelRequest}
@returns(200) {EmailChannelResponse: EmailChannelResponse{ApplicationId: str?, ConfigurationSet: str?, CreationDate: str?, Enabled: bool?, FromAddress: str?, HasCredential: bool?, Id: str?, Identity: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, MessagesPerSecond: int?, Platform: str, RoleArn: str?, OrchestrationSendingRoleArn: str?, Version: int?}}

@endgroup

@group templates
@endpoint PUT /v1/templates/{template-name}/email
@desc Updates an existing message template for messages that are sent through the email channel.
@required {TemplateName: str, EmailTemplateRequest: EmailTemplateRequest}
@optional {create-new-version: bool, version: str}
@returns(200) {MessageBody: MessageBody{Message: str?, RequestID: str?}}

@endgroup

@group apps
@endpoint PUT /v1/apps/{application-id}/endpoints/{endpoint-id}
@desc Creates a new endpoint for an application or updates the settings and attributes of an existing endpoint for an application. You can also use this operation to define custom attributes for an endpoint. If an update includes one or more values for a custom attribute, Amazon Pinpoint replaces (overwrites) any existing values with the new values.
@required {ApplicationId: str, EndpointId: str, EndpointRequest: EndpointRequest}
@returns(200) {MessageBody: MessageBody{Message: str?, RequestID: str?}}

@endpoint PUT /v1/apps/{application-id}/endpoints
@desc Creates a new batch of endpoints for an application or updates the settings and attributes of a batch of existing endpoints for an application. You can also use this operation to define custom attributes for a batch of endpoints. If an update includes one or more values for a custom attribute, Amazon Pinpoint replaces (overwrites) any existing values with the new values.
@required {ApplicationId: str, EndpointBatchRequest: EndpointBatchRequest}
@returns(200) {MessageBody: MessageBody{Message: str?, RequestID: str?}}

@endpoint PUT /v1/apps/{application-id}/channels/gcm
@desc Enables the GCM channel for an application or updates the status and settings of the GCM channel for an application.
@required {ApplicationId: str, GCMChannelRequest: GCMChannelRequest}
@returns(200) {GCMChannelResponse: GCMChannelResponse{ApplicationId: str?, CreationDate: str?, Credential: str?, DefaultAuthenticationMethod: str?, Enabled: bool?, HasCredential: bool?, HasFcmServiceCredentials: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endgroup

@group templates
@endpoint PUT /v1/templates/{template-name}/inapp
@desc Updates an existing message template for messages sent through the in-app message channel.
@required {TemplateName: str, InAppTemplateRequest: InAppTemplateRequest}
@optional {create-new-version: bool, version: str}
@returns(200) {MessageBody: MessageBody{Message: str?, RequestID: str?}}

@endgroup

@group apps
@endpoint PUT /v1/apps/{application-id}/journeys/{journey-id}
@desc Updates the configuration and other settings for a journey.
@required {ApplicationId: str, JourneyId: str, WriteJourneyRequest: WriteJourneyRequest}
@returns(200) {JourneyResponse: JourneyResponse{Activities: map<str,Activity>?, ApplicationId: str, CreationDate: str?, Id: str, LastModifiedDate: str?, Limits: JourneyLimits?{DailyCap: int?, EndpointReentryCap: int?, MessagesPerSecond: int?, EndpointReentryInterval: str?, TimeframeCap: JourneyTimeframeCap?{Cap: int?, Days: int?}, TotalCap: int?}, LocalTime: bool?, Name: str, QuietTime: QuietTime?{End: str?, Start: str?}, RefreshFrequency: str?, Schedule: JourneySchedule?{EndTime: str(timestamp)?, StartTime: str(timestamp)?, Timezone: str?}, StartActivity: str?, StartCondition: StartCondition?{Description: str?, EventStartCondition: EventStartCondition?{EventFilter: EventFilter?, SegmentId: str?}, SegmentStartCondition: SegmentCondition?{SegmentId: str}}, State: str?, tags: map<str,str>?, WaitForQuietTime: bool?, RefreshOnSegmentUpdate: bool?, JourneyChannelSettings: JourneyChannelSettings?{ConnectCampaignArn: str?, ConnectCampaignExecutionRoleArn: str?}, SendingSchedule: bool?, OpenHours: OpenHours?{EMAIL: map<str,[OpenHoursRule]>?, SMS: map<str,[OpenHoursRule]>?, PUSH: map<str,[OpenHoursRule]>?, VOICE: map<str,[OpenHoursRule]>?, CUSTOM: map<str,[OpenHoursRule]>?}, ClosedDays: ClosedDays?{EMAIL: [ClosedDaysRule]?, SMS: [ClosedDaysRule]?, PUSH: [ClosedDaysRule]?, VOICE: [ClosedDaysRule]?, CUSTOM: [ClosedDaysRule]?}, TimezoneEstimationMethods: [str]?}}

@endpoint PUT /v1/apps/{application-id}/journeys/{journey-id}/state
@desc Cancels (stops) an active journey.
@required {ApplicationId: str, JourneyId: str, JourneyStateRequest: JourneyStateRequest}
@returns(200) {JourneyResponse: JourneyResponse{Activities: map<str,Activity>?, ApplicationId: str, CreationDate: str?, Id: str, LastModifiedDate: str?, Limits: JourneyLimits?{DailyCap: int?, EndpointReentryCap: int?, MessagesPerSecond: int?, EndpointReentryInterval: str?, TimeframeCap: JourneyTimeframeCap?{Cap: int?, Days: int?}, TotalCap: int?}, LocalTime: bool?, Name: str, QuietTime: QuietTime?{End: str?, Start: str?}, RefreshFrequency: str?, Schedule: JourneySchedule?{EndTime: str(timestamp)?, StartTime: str(timestamp)?, Timezone: str?}, StartActivity: str?, StartCondition: StartCondition?{Description: str?, EventStartCondition: EventStartCondition?{EventFilter: EventFilter?, SegmentId: str?}, SegmentStartCondition: SegmentCondition?{SegmentId: str}}, State: str?, tags: map<str,str>?, WaitForQuietTime: bool?, RefreshOnSegmentUpdate: bool?, JourneyChannelSettings: JourneyChannelSettings?{ConnectCampaignArn: str?, ConnectCampaignExecutionRoleArn: str?}, SendingSchedule: bool?, OpenHours: OpenHours?{EMAIL: map<str,[OpenHoursRule]>?, SMS: map<str,[OpenHoursRule]>?, PUSH: map<str,[OpenHoursRule]>?, VOICE: map<str,[OpenHoursRule]>?, CUSTOM: map<str,[OpenHoursRule]>?}, ClosedDays: ClosedDays?{EMAIL: [ClosedDaysRule]?, SMS: [ClosedDaysRule]?, PUSH: [ClosedDaysRule]?, VOICE: [ClosedDaysRule]?, CUSTOM: [ClosedDaysRule]?}, TimezoneEstimationMethods: [str]?}}

@endgroup

@group templates
@endpoint PUT /v1/templates/{template-name}/push
@desc Updates an existing message template for messages that are sent through a push notification channel.
@required {TemplateName: str, PushNotificationTemplateRequest: PushNotificationTemplateRequest}
@optional {create-new-version: bool, version: str}
@returns(200) {MessageBody: MessageBody{Message: str?, RequestID: str?}}

@endgroup

@group recommenders
@endpoint PUT /v1/recommenders/{recommender-id}
@desc Updates an Amazon Pinpoint configuration for a recommender model.
@required {RecommenderId: str, UpdateRecommenderConfiguration: UpdateRecommenderConfiguration}
@returns(200) {RecommenderConfigurationResponse: RecommenderConfigurationResponse{Attributes: map<str,str>?, CreationDate: str, Description: str?, Id: str, LastModifiedDate: str, Name: str?, RecommendationProviderIdType: str?, RecommendationProviderRoleArn: str, RecommendationProviderUri: str, RecommendationTransformerUri: str?, RecommendationsDisplayName: str?, RecommendationsPerMessage: int?}}

@endgroup

@group apps
@endpoint PUT /v1/apps/{application-id}/segments/{segment-id}
@desc Creates a new segment for an application or updates the configuration, dimension, and other settings for an existing segment that's associated with an application.
@required {ApplicationId: str, SegmentId: str, WriteSegmentRequest: WriteSegmentRequest}
@returns(200) {SegmentResponse: SegmentResponse{ApplicationId: str, Arn: str, CreationDate: str, Dimensions: SegmentDimensions?{Attributes: map<str,AttributeDimension>?, Behavior: SegmentBehaviors?{Recency: RecencyDimension?}, Demographic: SegmentDemographics?{AppVersion: SetDimension?, Channel: SetDimension?, DeviceType: SetDimension?, Make: SetDimension?, Model: SetDimension?, Platform: SetDimension?}, Location: SegmentLocation?{Country: SetDimension?, GPSPoint: GPSPointDimension?}, Metrics: map<str,MetricDimension>?, UserAttributes: map<str,AttributeDimension>?}, Id: str, ImportDefinition: SegmentImportResource?{ChannelCounts: map<str,int>?, ExternalId: str, Format: str, RoleArn: str, S3Url: str, Size: int}, LastModifiedDate: str?, Name: str?, SegmentGroups: SegmentGroupList?{Groups: [SegmentGroup]?, Include: str?}, SegmentType: str, tags: map<str,str>?, Version: int?}}

@endpoint PUT /v1/apps/{application-id}/channels/sms
@desc Enables the SMS channel for an application or updates the status and settings of the SMS channel for an application.
@required {ApplicationId: str, SMSChannelRequest: SMSChannelRequest}
@returns(200) {SMSChannelResponse: SMSChannelResponse{ApplicationId: str?, CreationDate: str?, Enabled: bool?, HasCredential: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, PromotionalMessagesPerSecond: int?, SenderId: str?, ShortCode: str?, TransactionalMessagesPerSecond: int?, Version: int?}}

@endgroup

@group templates
@endpoint PUT /v1/templates/{template-name}/sms
@desc Updates an existing message template for messages that are sent through the SMS channel.
@required {TemplateName: str, SMSTemplateRequest: SMSTemplateRequest}
@optional {create-new-version: bool, version: str}
@returns(200) {MessageBody: MessageBody{Message: str?, RequestID: str?}}

@endpoint PUT /v1/templates/{template-name}/{template-type}/active-version
@desc Changes the status of a specific version of a message template to active.
@required {TemplateName: str, TemplateType: str, TemplateActiveVersionRequest: TemplateActiveVersionRequest}
@returns(200) {MessageBody: MessageBody{Message: str?, RequestID: str?}}

@endgroup

@group apps
@endpoint PUT /v1/apps/{application-id}/channels/voice
@desc Enables the voice channel for an application or updates the status and settings of the voice channel for an application.
@required {ApplicationId: str, VoiceChannelRequest: VoiceChannelRequest}
@returns(200) {VoiceChannelResponse: VoiceChannelResponse{ApplicationId: str?, CreationDate: str?, Enabled: bool?, HasCredential: bool?, Id: str?, IsArchived: bool?, LastModifiedBy: str?, LastModifiedDate: str?, Platform: str, Version: int?}}

@endgroup

@group templates
@endpoint PUT /v1/templates/{template-name}/voice
@desc Updates an existing message template for messages that are sent through the voice channel.
@required {TemplateName: str, VoiceTemplateRequest: VoiceTemplateRequest}
@optional {create-new-version: bool, version: str}
@returns(200) {MessageBody: MessageBody{Message: str?, RequestID: str?}}

@endgroup

@group apps
@endpoint POST /v1/apps/{application-id}/verify-otp
@desc Verify an OTP
@required {ApplicationId: str, VerifyOTPMessageRequestParameters: VerifyOTPMessageRequestParameters}
@returns(200) {VerificationResponse: VerificationResponse{Valid: bool?}}

@endgroup

@end
