@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS Elemental MediaPackage VOD
@version 2018-11-07
@auth AWS SigV4
@endpoints 17
@toc packaging_groups(6), assets(4), packaging_configurations(4), tags(3)

@group packaging_groups
@endpoint PUT /packaging_groups/{id}/configure_logs
@required {Id: str}
@optional {EgressAccessLogs: EgressAccessLogs}
@returns(200) {Arn: str?, Authorization: Authorization?{CdnIdentifierSecret: str, SecretsRoleArn: str}, CreatedAt: str?, DomainName: str?, EgressAccessLogs: EgressAccessLogs?{LogGroupName: str?}, Id: str?, Tags: map<str,str>?}

@endgroup

@group assets
@endpoint POST /assets
@required {Id: str, PackagingGroupId: str, SourceArn: str, SourceRoleArn: str}
@optional {ResourceId: str, Tags: map<str,str>}
@returns(200) {Arn: str?, CreatedAt: str?, EgressEndpoints: [EgressEndpoint]?, Id: str?, PackagingGroupId: str?, ResourceId: str?, SourceArn: str?, SourceRoleArn: str?, Tags: map<str,str>?}

@endgroup

@group packaging_configurations
@endpoint POST /packaging_configurations
@required {Id: str, PackagingGroupId: str}
@optional {CmafPackage: CmafPackage, DashPackage: DashPackage, HlsPackage: HlsPackage, MssPackage: MssPackage, Tags: map<str,str>}
@returns(200) {Arn: str?, CmafPackage: CmafPackage?{Encryption: CmafEncryption?{ConstantInitializationVector: str?, SpekeKeyProvider: SpekeKeyProvider{EncryptionContractConfiguration: EncryptionContractConfiguration?, RoleArn: str, SystemIds: [str], Url: str}}, HlsManifests: [HlsManifest], IncludeEncoderConfigurationInSegments: bool?, SegmentDurationSeconds: int?}, CreatedAt: str?, DashPackage: DashPackage?{DashManifests: [DashManifest], Encryption: DashEncryption?{SpekeKeyProvider: SpekeKeyProvider{EncryptionContractConfiguration: EncryptionContractConfiguration?, RoleArn: str, SystemIds: [str], Url: str}}, IncludeEncoderConfigurationInSegments: bool?, IncludeIframeOnlyStream: bool?, PeriodTriggers: [str]?, SegmentDurationSeconds: int?, SegmentTemplateFormat: str?}, HlsPackage: HlsPackage?{Encryption: HlsEncryption?{ConstantInitializationVector: str?, EncryptionMethod: str?, SpekeKeyProvider: SpekeKeyProvider{EncryptionContractConfiguration: EncryptionContractConfiguration?, RoleArn: str, SystemIds: [str], Url: str}}, HlsManifests: [HlsManifest], IncludeDvbSubtitles: bool?, SegmentDurationSeconds: int?, UseAudioRenditionGroup: bool?}, Id: str?, MssPackage: MssPackage?{Encryption: MssEncryption?{SpekeKeyProvider: SpekeKeyProvider{EncryptionContractConfiguration: EncryptionContractConfiguration?, RoleArn: str, SystemIds: [str], Url: str}}, MssManifests: [MssManifest], SegmentDurationSeconds: int?}, PackagingGroupId: str?, Tags: map<str,str>?}

@endgroup

@group packaging_groups
@endpoint POST /packaging_groups
@required {Id: str}
@optional {Authorization: Authorization, EgressAccessLogs: EgressAccessLogs, Tags: map<str,str>}
@returns(200) {Arn: str?, Authorization: Authorization?{CdnIdentifierSecret: str, SecretsRoleArn: str}, CreatedAt: str?, DomainName: str?, EgressAccessLogs: EgressAccessLogs?{LogGroupName: str?}, Id: str?, Tags: map<str,str>?}

@endgroup

@group assets
@endpoint DELETE /assets/{id}
@required {Id: str}

@endgroup

@group packaging_configurations
@endpoint DELETE /packaging_configurations/{id}
@required {Id: str}

@endgroup

@group packaging_groups
@endpoint DELETE /packaging_groups/{id}
@required {Id: str}

@endgroup

@group assets
@endpoint GET /assets/{id}
@required {Id: str}
@returns(200) {Arn: str?, CreatedAt: str?, EgressEndpoints: [EgressEndpoint]?, Id: str?, PackagingGroupId: str?, ResourceId: str?, SourceArn: str?, SourceRoleArn: str?, Tags: map<str,str>?}

@endgroup

@group packaging_configurations
@endpoint GET /packaging_configurations/{id}
@required {Id: str}
@returns(200) {Arn: str?, CmafPackage: CmafPackage?{Encryption: CmafEncryption?{ConstantInitializationVector: str?, SpekeKeyProvider: SpekeKeyProvider{EncryptionContractConfiguration: EncryptionContractConfiguration?, RoleArn: str, SystemIds: [str], Url: str}}, HlsManifests: [HlsManifest], IncludeEncoderConfigurationInSegments: bool?, SegmentDurationSeconds: int?}, CreatedAt: str?, DashPackage: DashPackage?{DashManifests: [DashManifest], Encryption: DashEncryption?{SpekeKeyProvider: SpekeKeyProvider{EncryptionContractConfiguration: EncryptionContractConfiguration?, RoleArn: str, SystemIds: [str], Url: str}}, IncludeEncoderConfigurationInSegments: bool?, IncludeIframeOnlyStream: bool?, PeriodTriggers: [str]?, SegmentDurationSeconds: int?, SegmentTemplateFormat: str?}, HlsPackage: HlsPackage?{Encryption: HlsEncryption?{ConstantInitializationVector: str?, EncryptionMethod: str?, SpekeKeyProvider: SpekeKeyProvider{EncryptionContractConfiguration: EncryptionContractConfiguration?, RoleArn: str, SystemIds: [str], Url: str}}, HlsManifests: [HlsManifest], IncludeDvbSubtitles: bool?, SegmentDurationSeconds: int?, UseAudioRenditionGroup: bool?}, Id: str?, MssPackage: MssPackage?{Encryption: MssEncryption?{SpekeKeyProvider: SpekeKeyProvider{EncryptionContractConfiguration: EncryptionContractConfiguration?, RoleArn: str, SystemIds: [str], Url: str}}, MssManifests: [MssManifest], SegmentDurationSeconds: int?}, PackagingGroupId: str?, Tags: map<str,str>?}

@endgroup

@group packaging_groups
@endpoint GET /packaging_groups/{id}
@required {Id: str}
@returns(200) {ApproximateAssetCount: int?, Arn: str?, Authorization: Authorization?{CdnIdentifierSecret: str, SecretsRoleArn: str}, CreatedAt: str?, DomainName: str?, EgressAccessLogs: EgressAccessLogs?{LogGroupName: str?}, Id: str?, Tags: map<str,str>?}

@endgroup

@group assets
@endpoint GET /assets
@optional {maxResults: int, nextToken: str, packagingGroupId: str}
@returns(200) {Assets: [AssetShallow]?, NextToken: str?}

@endgroup

@group packaging_configurations
@endpoint GET /packaging_configurations
@optional {maxResults: int, nextToken: str, packagingGroupId: str}
@returns(200) {NextToken: str?, PackagingConfigurations: [PackagingConfiguration]?}

@endgroup

@group packaging_groups
@endpoint GET /packaging_groups
@optional {maxResults: int, nextToken: str}
@returns(200) {NextToken: str?, PackagingGroups: [PackagingGroup]?}

@endgroup

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

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

@endpoint DELETE /tags/{resource-arn}
@required {ResourceArn: str, tagKeys: [str]}

@endgroup

@group packaging_groups
@endpoint PUT /packaging_groups/{id}
@required {Id: str}
@optional {Authorization: Authorization}
@returns(200) {ApproximateAssetCount: int?, Arn: str?, Authorization: Authorization?{CdnIdentifierSecret: str, SecretsRoleArn: str}, CreatedAt: str?, DomainName: str?, EgressAccessLogs: EgressAccessLogs?{LogGroupName: str?}, Id: str?, Tags: map<str,str>?}

@endgroup

@end
