@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS CodeStar Notifications
@version 2019-10-15
@auth AWS SigV4
@endpoints 13
@toc createNotificationRule(1), deleteNotificationRule(1), deleteTarget(1), describeNotificationRule(1), listEventTypes(1), listNotificationRules(1), listTagsForResource(1), listTargets(1), subscribe(1), tagResource(1), unsubscribe(1), untagResource(1), updateNotificationRule(1)

@group createNotificationRule
@endpoint POST /createNotificationRule
@desc Creates a notification rule for a resource. The rule specifies the events you want notifications about and the targets (such as Chatbot topics or Chatbot clients configured for Slack) where you want to receive them.
@required {Name: str, EventTypeIds: [str], Resource: str, Targets: [Target], DetailType: str}
@optional {ClientRequestToken: str, Tags: map<str,str>, Status: str}
@returns(200) {Arn: str?}

@endgroup

@group deleteNotificationRule
@endpoint POST /deleteNotificationRule
@desc Deletes a notification rule for a resource.
@required {Arn: str}
@returns(200) {Arn: str?}

@endgroup

@group deleteTarget
@endpoint POST /deleteTarget
@desc Deletes a specified target for notifications.
@required {TargetAddress: str}
@optional {ForceUnsubscribeAll: bool}

@endgroup

@group describeNotificationRule
@endpoint POST /describeNotificationRule
@desc Returns information about a specified notification rule.
@required {Arn: str}
@returns(200) {Arn: str, Name: str?, EventTypes: [EventTypeSummary]?, Resource: str?, Targets: [TargetSummary]?, DetailType: str?, CreatedBy: str?, Status: str?, CreatedTimestamp: str(timestamp)?, LastModifiedTimestamp: str(timestamp)?, Tags: map<str,str>?}

@endgroup

@group listEventTypes
@endpoint POST /listEventTypes
@desc Returns information about the event types available for configuring notifications.
@optional {Filters: [ListEventTypesFilter], NextToken: str, MaxResults: int}
@returns(200) {EventTypes: [EventTypeSummary]?, NextToken: str?}

@endgroup

@group listNotificationRules
@endpoint POST /listNotificationRules
@desc Returns a list of the notification rules for an Amazon Web Services account.
@optional {Filters: [ListNotificationRulesFilter], NextToken: str, MaxResults: int}
@returns(200) {NextToken: str?, NotificationRules: [NotificationRuleSummary]?}

@endgroup

@group listTagsForResource
@endpoint POST /listTagsForResource
@desc Returns a list of the tags associated with a notification rule.
@required {Arn: str}
@returns(200) {Tags: map<str,str>?}

@endgroup

@group listTargets
@endpoint POST /listTargets
@desc Returns a list of the notification rule targets for an Amazon Web Services account.
@optional {Filters: [ListTargetsFilter], NextToken: str, MaxResults: int}
@returns(200) {Targets: [TargetSummary]?, NextToken: str?}

@endgroup

@group subscribe
@endpoint POST /subscribe
@desc Creates an association between a notification rule and an Chatbot topic or Chatbot client so that the associated target can receive notifications when the events described in the rule are triggered.
@required {Arn: str, Target: Target}
@optional {ClientRequestToken: str}
@returns(200) {Arn: str?}

@endgroup

@group tagResource
@endpoint POST /tagResource
@desc Associates a set of provided tags with a notification rule.
@required {Arn: str, Tags: map<str,str>}
@returns(200) {Tags: map<str,str>?}

@endgroup

@group unsubscribe
@endpoint POST /unsubscribe
@desc Removes an association between a notification rule and an Chatbot topic so that subscribers to that topic stop receiving notifications when the events described in the rule are triggered.
@required {Arn: str, TargetAddress: str}
@returns(200) {Arn: str}

@endgroup

@group untagResource
@endpoint POST /untagResource/{resourceArn}
@desc Removes the association between one or more provided tags and a notification rule.
@required {Arn: str, tagKeys: [str]}

@endgroup

@group updateNotificationRule
@endpoint POST /updateNotificationRule
@desc Updates a notification rule for a resource. You can change the events that trigger the notification rule, the status of the rule, and the targets that receive the notifications.  To add or remove tags for a notification rule, you must use TagResource and UntagResource.
@required {Arn: str}
@optional {Name: str, Status: str, EventTypeIds: [str], Targets: [Target], DetailType: str}

@endgroup

@end
