@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Amazon Data Lifecycle Manager
@version 2018-01-12
@auth AWS SigV4
@endpoints 8
@toc policies(5), tags(3)

@group policies
@endpoint POST /policies
@required {ExecutionRoleArn: str, Description: str, State: str}
@optional {PolicyDetails: PolicyDetails, Tags: map<str,str>, DefaultPolicy: str, CreateInterval: int, RetainInterval: int, CopyTags: bool, ExtendDeletion: bool, CrossRegionCopyTargets: [CrossRegionCopyTarget], Exclusions: Exclusions}
@returns(200) {PolicyId: str?}

@endpoint DELETE /policies/{policyId}
@required {PolicyId: str}

@endpoint GET /policies
@optional {policyIds: [str], state: str, resourceTypes: [str], targetTags: [str], tagsToAdd: [str], defaultPolicyType: str}
@returns(200) {Policies: [LifecyclePolicySummary]?}

@endpoint GET /policies/{policyId}
@required {PolicyId: str}
@returns(200) {Policy: LifecyclePolicy?{PolicyId: str?, Description: str?, State: str?, StatusMessage: str?, ExecutionRoleArn: str?, DateCreated: str(timestamp)?, DateModified: str(timestamp)?, PolicyDetails: PolicyDetails?{PolicyType: str?, ResourceTypes: [str]?, ResourceLocations: [str]?, TargetTags: [Tag]?, Schedules: [Schedule]?, Parameters: Parameters?{ExcludeBootVolume: bool?, NoReboot: bool?, ExcludeDataVolumeTags: [Tag]?}, EventSource: EventSource?{Type: str, Parameters: EventParameters?}, Actions: [Action]?, PolicyLanguage: str?, ResourceType: str?, CreateInterval: int?, RetainInterval: int?, CopyTags: bool?, CrossRegionCopyTargets: [CrossRegionCopyTarget]?, ExtendDeletion: bool?, Exclusions: Exclusions?{ExcludeBootVolumes: bool?, ExcludeVolumeTypes: [str]?, ExcludeTags: [Tag]?}}, Tags: map<str,str>?, PolicyArn: str?, DefaultPolicy: bool?}}

@endgroup

@group tags
@endpoint GET /tags/{resourceArn}
@required {ResourceArn: str}
@returns(200) {Tags: map<str,str>?}

@endpoint POST /tags/{resourceArn}
@required {ResourceArn: str, Tags: map<str,str>}

@endpoint DELETE /tags/{resourceArn}
@required {ResourceArn: str, tagKeys: [str]}

@endgroup

@group policies
@endpoint PATCH /policies/{policyId}
@required {PolicyId: str}
@optional {ExecutionRoleArn: str, State: str, Description: str, PolicyDetails: PolicyDetails, CreateInterval: int, RetainInterval: int, CopyTags: bool, ExtendDeletion: bool, CrossRegionCopyTargets: [CrossRegionCopyTarget], Exclusions: Exclusions}

@endgroup

@end
