{"files":{"SKILL.md":"---\nname: aws-elemental-mediapackage\ndescription: \"AWS Elemental MediaPackage API skill. Use when working with AWS Elemental MediaPackage for channels, harvest_jobs, origin_endpoints. Covers 19 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# AWS Elemental MediaPackage\nAPI version: 2017-10-12\n\n## Auth\nAWS SigV4\n\n## Base URL\nNot specified.\n\n## Setup\n1. Configure auth: AWS SigV4\n2. GET /channels -- returns a collection of channels.\n3. POST /channels -- create first channel\n\n## Endpoints\n19 endpoints across 4 groups. See references/api-spec.lap for full details.\n\n### Channels\n| Method | Path | Description |\n|--------|------|-------------|\n| PUT | /channels/{id}/configure_logs | Changes the Channel's properities to configure log subscription |\n| POST | /channels | Creates a new Channel. |\n| DELETE | /channels/{id} | Deletes an existing Channel. |\n| GET | /channels/{id} | Gets details about a Channel. |\n| GET | /channels | Returns a collection of Channels. |\n| PUT | /channels/{id}/credentials | Changes the Channel's first IngestEndpoint's username and password. WARNING - This API is deprecated. Please use RotateIngestEndpointCredentials instead |\n| PUT | /channels/{id}/ingest_endpoints/{ingest_endpoint_id}/credentials | Rotate the IngestEndpoint's username and password, as specified by the IngestEndpoint's id. |\n| PUT | /channels/{id} | Updates an existing Channel. |\n\n### Harvest_jobs\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /harvest_jobs | Creates a new HarvestJob record. |\n| GET | /harvest_jobs/{id} | Gets details about an existing HarvestJob. |\n| GET | /harvest_jobs | Returns a collection of HarvestJob records. |\n\n### Origin_endpoints\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /origin_endpoints | Creates a new OriginEndpoint record. |\n| DELETE | /origin_endpoints/{id} | Deletes an existing OriginEndpoint. |\n| GET | /origin_endpoints/{id} | Gets details about an existing OriginEndpoint. |\n| GET | /origin_endpoints | Returns a collection of OriginEndpoint records. |\n| PUT | /origin_endpoints/{id} | Updates an existing OriginEndpoint. |\n\n### Tags\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /tags/{resource-arn} |  |\n| POST | /tags/{resource-arn} |  |\n| DELETE | /tags/{resource-arn} |  |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Create a channel?\" -> POST /channels\n- \"Create a harvest_job?\" -> POST /harvest_jobs\n- \"Create a origin_endpoint?\" -> POST /origin_endpoints\n- \"Delete a channel?\" -> DELETE /channels/{id}\n- \"Delete a origin_endpoint?\" -> DELETE /origin_endpoints/{id}\n- \"Get channel details?\" -> GET /channels/{id}\n- \"Get harvest_job details?\" -> GET /harvest_jobs/{id}\n- \"Get origin_endpoint details?\" -> GET /origin_endpoints/{id}\n- \"List all channels?\" -> GET /channels\n- \"List all harvest_jobs?\" -> GET /harvest_jobs\n- \"List all origin_endpoints?\" -> GET /origin_endpoints\n- \"Get tag details?\" -> GET /tags/{resource-arn}\n- \"Delete a tag?\" -> DELETE /tags/{resource-arn}\n- \"Update a channel?\" -> PUT /channels/{id}\n- \"Update a origin_endpoint?\" -> PUT /origin_endpoints/{id}\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints return the modified resource on success\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api AWS Elemental MediaPackage\n@version 2017-10-12\n@auth AWS SigV4\n@endpoints 19\n@toc channels(8), harvest_jobs(3), origin_endpoints(5), tags(3)\n\n@group channels\n@endpoint PUT /channels/{id}/configure_logs\n@desc Changes the Channel's properities to configure log subscription\n@required {Id: str}\n@optional {EgressAccessLogs: EgressAccessLogs, IngressAccessLogs: IngressAccessLogs}\n@returns(200) {Arn: str?, CreatedAt: str?, Description: str?, EgressAccessLogs: EgressAccessLogs?{LogGroupName: str?}, HlsIngest: HlsIngest?{IngestEndpoints: [IngestEndpoint]?}, Id: str?, IngressAccessLogs: IngressAccessLogs?{LogGroupName: str?}, Tags: map<str,str>?}\n\n@endpoint POST /channels\n@desc Creates a new Channel.\n@required {Id: str}\n@optional {Description: str, Tags: map<str,str>}\n@returns(200) {Arn: str?, CreatedAt: str?, Description: str?, EgressAccessLogs: EgressAccessLogs?{LogGroupName: str?}, HlsIngest: HlsIngest?{IngestEndpoints: [IngestEndpoint]?}, Id: str?, IngressAccessLogs: IngressAccessLogs?{LogGroupName: str?}, Tags: map<str,str>?}\n\n@endgroup\n\n@group harvest_jobs\n@endpoint POST /harvest_jobs\n@desc Creates a new HarvestJob record.\n@required {EndTime: str, Id: str, OriginEndpointId: str, S3Destination: S3Destination, StartTime: str}\n@returns(200) {Arn: str?, ChannelId: str?, CreatedAt: str?, EndTime: str?, Id: str?, OriginEndpointId: str?, S3Destination: S3Destination?{BucketName: str, ManifestKey: str, RoleArn: str}, StartTime: str?, Status: str?}\n\n@endgroup\n\n@group origin_endpoints\n@endpoint POST /origin_endpoints\n@desc Creates a new OriginEndpoint record.\n@required {ChannelId: str, Id: str}\n@optional {Authorization: Authorization, CmafPackage: CmafPackageCreateOrUpdateParameters, DashPackage: DashPackage, Description: str, HlsPackage: HlsPackage, ManifestName: str, MssPackage: MssPackage, Origination: str, StartoverWindowSeconds: int, Tags: map<str,str>, TimeDelaySeconds: int, Whitelist: [str]}\n@returns(200) {Arn: str?, Authorization: Authorization?{CdnIdentifierSecret: str, SecretsRoleArn: str}, ChannelId: str?, CmafPackage: CmafPackage?{Encryption: CmafEncryption?{ConstantInitializationVector: str?, EncryptionMethod: str?, KeyRotationIntervalSeconds: int?, SpekeKeyProvider: SpekeKeyProvider{CertificateArn: str?, EncryptionContractConfiguration: EncryptionContractConfiguration?, ResourceId: str, RoleArn: str, SystemIds: [str], Url: str}}, HlsManifests: [HlsManifest]?, SegmentDurationSeconds: int?, SegmentPrefix: str?, StreamSelection: StreamSelection?{MaxVideoBitsPerSecond: int?, MinVideoBitsPerSecond: int?, StreamOrder: str?}}, CreatedAt: str?, DashPackage: DashPackage?{AdTriggers: [str]?, AdsOnDeliveryRestrictions: str?, Encryption: DashEncryption?{KeyRotationIntervalSeconds: int?, SpekeKeyProvider: SpekeKeyProvider{CertificateArn: str?, EncryptionContractConfiguration: EncryptionContractConfiguration?, ResourceId: str, RoleArn: str, SystemIds: [str], Url: str}}, IncludeIframeOnlyStream: bool?, ManifestLayout: str?, ManifestWindowSeconds: int?, MinBufferTimeSeconds: int?, MinUpdatePeriodSeconds: int?, PeriodTriggers: [str]?, Profile: str?, SegmentDurationSeconds: int?, SegmentTemplateFormat: str?, StreamSelection: StreamSelection?{MaxVideoBitsPerSecond: int?, MinVideoBitsPerSecond: int?, StreamOrder: str?}, SuggestedPresentationDelaySeconds: int?, UtcTiming: str?, UtcTimingUri: str?}, Description: str?, HlsPackage: HlsPackage?{AdMarkers: str?, AdTriggers: [str]?, AdsOnDeliveryRestrictions: str?, Encryption: HlsEncryption?{ConstantInitializationVector: str?, EncryptionMethod: str?, KeyRotationIntervalSeconds: int?, RepeatExtXKey: bool?, SpekeKeyProvider: SpekeKeyProvider{CertificateArn: str?, EncryptionContractConfiguration: EncryptionContractConfiguration?, ResourceId: str, RoleArn: str, SystemIds: [str], Url: str}}, IncludeDvbSubtitles: bool?, IncludeIframeOnlyStream: bool?, PlaylistType: str?, PlaylistWindowSeconds: int?, ProgramDateTimeIntervalSeconds: int?, SegmentDurationSeconds: int?, StreamSelection: StreamSelection?{MaxVideoBitsPerSecond: int?, MinVideoBitsPerSecond: int?, StreamOrder: str?}, UseAudioRenditionGroup: bool?}, Id: str?, ManifestName: str?, MssPackage: MssPackage?{Encryption: MssEncryption?{SpekeKeyProvider: SpekeKeyProvider{CertificateArn: str?, EncryptionContractConfiguration: EncryptionContractConfiguration?, ResourceId: str, RoleArn: str, SystemIds: [str], Url: str}}, ManifestWindowSeconds: int?, SegmentDurationSeconds: int?, StreamSelection: StreamSelection?{MaxVideoBitsPerSecond: int?, MinVideoBitsPerSecond: int?, StreamOrder: str?}}, Origination: str?, StartoverWindowSeconds: int?, Tags: map<str,str>?, TimeDelaySeconds: int?, Url: str?, Whitelist: [str]?}\n\n@endgroup\n\n@group channels\n@endpoint DELETE /channels/{id}\n@desc Deletes an existing Channel.\n@required {Id: str}\n\n@endgroup\n\n@group origin_endpoints\n@endpoint DELETE /origin_endpoints/{id}\n@desc Deletes an existing OriginEndpoint.\n@required {Id: str}\n\n@endgroup\n\n@group channels\n@endpoint GET /channels/{id}\n@desc Gets details about a Channel.\n@required {Id: str}\n@returns(200) {Arn: str?, CreatedAt: str?, Description: str?, EgressAccessLogs: EgressAccessLogs?{LogGroupName: str?}, HlsIngest: HlsIngest?{IngestEndpoints: [IngestEndpoint]?}, Id: str?, IngressAccessLogs: IngressAccessLogs?{LogGroupName: str?}, Tags: map<str,str>?}\n\n@endgroup\n\n@group harvest_jobs\n@endpoint GET /harvest_jobs/{id}\n@desc Gets details about an existing HarvestJob.\n@required {Id: str}\n@returns(200) {Arn: str?, ChannelId: str?, CreatedAt: str?, EndTime: str?, Id: str?, OriginEndpointId: str?, S3Destination: S3Destination?{BucketName: str, ManifestKey: str, RoleArn: str}, StartTime: str?, Status: str?}\n\n@endgroup\n\n@group origin_endpoints\n@endpoint GET /origin_endpoints/{id}\n@desc Gets details about an existing OriginEndpoint.\n@required {Id: str}\n@returns(200) {Arn: str?, Authorization: Authorization?{CdnIdentifierSecret: str, SecretsRoleArn: str}, ChannelId: str?, CmafPackage: CmafPackage?{Encryption: CmafEncryption?{ConstantInitializationVector: str?, EncryptionMethod: str?, KeyRotationIntervalSeconds: int?, SpekeKeyProvider: SpekeKeyProvider{CertificateArn: str?, EncryptionContractConfiguration: EncryptionContractConfiguration?, ResourceId: str, RoleArn: str, SystemIds: [str], Url: str}}, HlsManifests: [HlsManifest]?, SegmentDurationSeconds: int?, SegmentPrefix: str?, StreamSelection: StreamSelection?{MaxVideoBitsPerSecond: int?, MinVideoBitsPerSecond: int?, StreamOrder: str?}}, CreatedAt: str?, DashPackage: DashPackage?{AdTriggers: [str]?, AdsOnDeliveryRestrictions: str?, Encryption: DashEncryption?{KeyRotationIntervalSeconds: int?, SpekeKeyProvider: SpekeKeyProvider{CertificateArn: str?, EncryptionContractConfiguration: EncryptionContractConfiguration?, ResourceId: str, RoleArn: str, SystemIds: [str], Url: str}}, IncludeIframeOnlyStream: bool?, ManifestLayout: str?, ManifestWindowSeconds: int?, MinBufferTimeSeconds: int?, MinUpdatePeriodSeconds: int?, PeriodTriggers: [str]?, Profile: str?, SegmentDurationSeconds: int?, SegmentTemplateFormat: str?, StreamSelection: StreamSelection?{MaxVideoBitsPerSecond: int?, MinVideoBitsPerSecond: int?, StreamOrder: str?}, SuggestedPresentationDelaySeconds: int?, UtcTiming: str?, UtcTimingUri: str?}, Description: str?, HlsPackage: HlsPackage?{AdMarkers: str?, AdTriggers: [str]?, AdsOnDeliveryRestrictions: str?, Encryption: HlsEncryption?{ConstantInitializationVector: str?, EncryptionMethod: str?, KeyRotationIntervalSeconds: int?, RepeatExtXKey: bool?, SpekeKeyProvider: SpekeKeyProvider{CertificateArn: str?, EncryptionContractConfiguration: EncryptionContractConfiguration?, ResourceId: str, RoleArn: str, SystemIds: [str], Url: str}}, IncludeDvbSubtitles: bool?, IncludeIframeOnlyStream: bool?, PlaylistType: str?, PlaylistWindowSeconds: int?, ProgramDateTimeIntervalSeconds: int?, SegmentDurationSeconds: int?, StreamSelection: StreamSelection?{MaxVideoBitsPerSecond: int?, MinVideoBitsPerSecond: int?, StreamOrder: str?}, UseAudioRenditionGroup: bool?}, Id: str?, ManifestName: str?, MssPackage: MssPackage?{Encryption: MssEncryption?{SpekeKeyProvider: SpekeKeyProvider{CertificateArn: str?, EncryptionContractConfiguration: EncryptionContractConfiguration?, ResourceId: str, RoleArn: str, SystemIds: [str], Url: str}}, ManifestWindowSeconds: int?, SegmentDurationSeconds: int?, StreamSelection: StreamSelection?{MaxVideoBitsPerSecond: int?, MinVideoBitsPerSecond: int?, StreamOrder: str?}}, Origination: str?, StartoverWindowSeconds: int?, Tags: map<str,str>?, TimeDelaySeconds: int?, Url: str?, Whitelist: [str]?}\n\n@endgroup\n\n@group channels\n@endpoint GET /channels\n@desc Returns a collection of Channels.\n@optional {maxResults: int, nextToken: str}\n@returns(200) {Channels: [Channel]?, NextToken: str?}\n\n@endgroup\n\n@group harvest_jobs\n@endpoint GET /harvest_jobs\n@desc Returns a collection of HarvestJob records.\n@optional {includeChannelId: str, includeStatus: str, maxResults: int, nextToken: str}\n@returns(200) {HarvestJobs: [HarvestJob]?, NextToken: str?}\n\n@endgroup\n\n@group origin_endpoints\n@endpoint GET /origin_endpoints\n@desc Returns a collection of OriginEndpoint records.\n@optional {channelId: str, maxResults: int, nextToken: str}\n@returns(200) {NextToken: str?, OriginEndpoints: [OriginEndpoint]?}\n\n@endgroup\n\n@group tags\n@endpoint GET /tags/{resource-arn}\n@required {ResourceArn: str}\n@returns(200) {Tags: map<str,str>?}\n\n@endgroup\n\n@group channels\n@endpoint PUT /channels/{id}/credentials\n@desc Changes the Channel's first IngestEndpoint's username and password. WARNING - This API is deprecated. Please use RotateIngestEndpointCredentials instead\n@required {Id: str}\n@returns(200) {Arn: str?, CreatedAt: str?, Description: str?, EgressAccessLogs: EgressAccessLogs?{LogGroupName: str?}, HlsIngest: HlsIngest?{IngestEndpoints: [IngestEndpoint]?}, Id: str?, IngressAccessLogs: IngressAccessLogs?{LogGroupName: str?}, Tags: map<str,str>?}\n\n@endpoint PUT /channels/{id}/ingest_endpoints/{ingest_endpoint_id}/credentials\n@desc Rotate the IngestEndpoint's username and password, as specified by the IngestEndpoint's id.\n@required {Id: str, IngestEndpointId: str}\n@returns(200) {Arn: str?, CreatedAt: str?, Description: str?, EgressAccessLogs: EgressAccessLogs?{LogGroupName: str?}, HlsIngest: HlsIngest?{IngestEndpoints: [IngestEndpoint]?}, Id: str?, IngressAccessLogs: IngressAccessLogs?{LogGroupName: str?}, Tags: map<str,str>?}\n\n@endgroup\n\n@group tags\n@endpoint POST /tags/{resource-arn}\n@required {ResourceArn: str, Tags: map<str,str>}\n\n@endpoint DELETE /tags/{resource-arn}\n@required {ResourceArn: str, tagKeys: [str]}\n\n@endgroup\n\n@group channels\n@endpoint PUT /channels/{id}\n@desc Updates an existing Channel.\n@required {Id: str}\n@optional {Description: str}\n@returns(200) {Arn: str?, CreatedAt: str?, Description: str?, EgressAccessLogs: EgressAccessLogs?{LogGroupName: str?}, HlsIngest: HlsIngest?{IngestEndpoints: [IngestEndpoint]?}, Id: str?, IngressAccessLogs: IngressAccessLogs?{LogGroupName: str?}, Tags: map<str,str>?}\n\n@endgroup\n\n@group origin_endpoints\n@endpoint PUT /origin_endpoints/{id}\n@desc Updates an existing OriginEndpoint.\n@required {Id: str}\n@optional {Authorization: Authorization, CmafPackage: CmafPackageCreateOrUpdateParameters, DashPackage: DashPackage, Description: str, HlsPackage: HlsPackage, ManifestName: str, MssPackage: MssPackage, Origination: str, StartoverWindowSeconds: int, TimeDelaySeconds: int, Whitelist: [str]}\n@returns(200) {Arn: str?, Authorization: Authorization?{CdnIdentifierSecret: str, SecretsRoleArn: str}, ChannelId: str?, CmafPackage: CmafPackage?{Encryption: CmafEncryption?{ConstantInitializationVector: str?, EncryptionMethod: str?, KeyRotationIntervalSeconds: int?, SpekeKeyProvider: SpekeKeyProvider{CertificateArn: str?, EncryptionContractConfiguration: EncryptionContractConfiguration?, ResourceId: str, RoleArn: str, SystemIds: [str], Url: str}}, HlsManifests: [HlsManifest]?, SegmentDurationSeconds: int?, SegmentPrefix: str?, StreamSelection: StreamSelection?{MaxVideoBitsPerSecond: int?, MinVideoBitsPerSecond: int?, StreamOrder: str?}}, CreatedAt: str?, DashPackage: DashPackage?{AdTriggers: [str]?, AdsOnDeliveryRestrictions: str?, Encryption: DashEncryption?{KeyRotationIntervalSeconds: int?, SpekeKeyProvider: SpekeKeyProvider{CertificateArn: str?, EncryptionContractConfiguration: EncryptionContractConfiguration?, ResourceId: str, RoleArn: str, SystemIds: [str], Url: str}}, IncludeIframeOnlyStream: bool?, ManifestLayout: str?, ManifestWindowSeconds: int?, MinBufferTimeSeconds: int?, MinUpdatePeriodSeconds: int?, PeriodTriggers: [str]?, Profile: str?, SegmentDurationSeconds: int?, SegmentTemplateFormat: str?, StreamSelection: StreamSelection?{MaxVideoBitsPerSecond: int?, MinVideoBitsPerSecond: int?, StreamOrder: str?}, SuggestedPresentationDelaySeconds: int?, UtcTiming: str?, UtcTimingUri: str?}, Description: str?, HlsPackage: HlsPackage?{AdMarkers: str?, AdTriggers: [str]?, AdsOnDeliveryRestrictions: str?, Encryption: HlsEncryption?{ConstantInitializationVector: str?, EncryptionMethod: str?, KeyRotationIntervalSeconds: int?, RepeatExtXKey: bool?, SpekeKeyProvider: SpekeKeyProvider{CertificateArn: str?, EncryptionContractConfiguration: EncryptionContractConfiguration?, ResourceId: str, RoleArn: str, SystemIds: [str], Url: str}}, IncludeDvbSubtitles: bool?, IncludeIframeOnlyStream: bool?, PlaylistType: str?, PlaylistWindowSeconds: int?, ProgramDateTimeIntervalSeconds: int?, SegmentDurationSeconds: int?, StreamSelection: StreamSelection?{MaxVideoBitsPerSecond: int?, MinVideoBitsPerSecond: int?, StreamOrder: str?}, UseAudioRenditionGroup: bool?}, Id: str?, ManifestName: str?, MssPackage: MssPackage?{Encryption: MssEncryption?{SpekeKeyProvider: SpekeKeyProvider{CertificateArn: str?, EncryptionContractConfiguration: EncryptionContractConfiguration?, ResourceId: str, RoleArn: str, SystemIds: [str], Url: str}}, ManifestWindowSeconds: int?, SegmentDurationSeconds: int?, StreamSelection: StreamSelection?{MaxVideoBitsPerSecond: int?, MinVideoBitsPerSecond: int?, StreamOrder: str?}}, Origination: str?, StartoverWindowSeconds: int?, Tags: map<str,str>?, TimeDelaySeconds: int?, Url: str?, Whitelist: [str]?}\n\n@endgroup\n\n@end\n"}}