{"note":"OpenAPI conversion -- returning structured metadata","name":"etsi-local-mec010-2-apppkgmgmt","description":"ETSI GS MEC 010-2 - Part 2: Application lifecycle, rules and requirements management","version":"2.1.1","base_url":"https://localhost/app_pkgm/v1","endpoints":16,"raw":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api ETSI GS MEC 010-2 - Part 2: Application lifecycle, rules and requirements management\n@base https://localhost/app_pkgm/v1\n@version 2.1.1\n@endpoints 16\n@toc app_packages(8), subscriptions(4), user_defined_notification(1), onboarded_app_packages(3)\n\n@group app_packages\n@endpoint POST /app_packages\n@desc Create a resource for on-boarding an application package to a MEO\n@required {appPkgName: str # Name of the application package to be onboarded., appPkgPath: str, appPkgVersion: str # Version of the application package to be onboarded. The appPkgName with appPkgVersion can be used to uniquely identify the application package., checksum: map{algorithm!: str, hash!: str}}\n@optional {appProvider: str # The provider's name of the application package to be onboarded., userDefinedData: map # 'This data type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key-value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259'}\n@returns(201) Successful response for resource creation\n@errors {400: Bad Request : used to indicate that incorrect parameters were passed to the request., 401: Unauthorized :  used when the client did not submit credentials., 403: Forbidden :  operation is not allowed given the current status of the resource., 404: Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI., 406: Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client., 429: Too Many Requests : used when a rate limiter has triggered.}\n\n@endpoint GET /app_packages\n@desc Queries information relating to on-boarded application packages in the MEO\n@optional {filter: str # Attribute-based filtering parameters according to ETSI GS MEC 009, all_fields: str # Include all complex attributes in the response., fields: str # Complex attributes of AppPkgInfo to be included into the response, exclude_fields: str # Complex attributes of AppPkgInfo to be excluded from the response., exclude_default: str # Indicates to exclude the following complex attributes of AppPkgInfo from the response.}\n@returns(200) Contains a representation of the application package resource\n@errors {400: Bad Request : used to indicate that incorrect parameters were passed to the request., 401: Unauthorized :  used when the client did not submit credentials., 403: Forbidden :  operation is not allowed given the current status of the resource., 404: Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI., 406: Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client., 429: Too Many Requests : used when a rate limiter has triggered.}\n\n@endpoint GET /app_packages/{appPkgId}\n@desc Queries the information related to individual application package resources\n@returns(200) {id: str, appDId: str, appProvider: str, appName: str, appSoftwareVersion: str, appDVersion: str, checksum: map{algorithm: str, hash: str}, softwareImages: any, additionalArtifacts: any, onboardingState: str(enum), operationalState: str, usageState: str(enum), userDefinedData: map, _links: map{self: map{href: str(uri)}, appD: map{href: str(uri)}, appPkgContent: map{href: str(uri)}}} # Contains a representation of the application package resource\n@errors {400: Bad Request : used to indicate that incorrect parameters were passed to the request., 401: Unauthorized :  used when the client did not submit credentials., 403: Forbidden :  operation is not allowed given the current status of the resource., 404: Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI., 406: Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client., 429: Too Many Requests : used when a rate limiter has triggered.}\n\n@endpoint DELETE /app_packages/{appPkgId}\n@desc Deletes an individual application package resources\n@returns(204) No Content\n@errors {400: Bad Request : used to indicate that incorrect parameters were passed to the request., 401: Unauthorized :  used when the client did not submit credentials., 403: Forbidden :  operation is not allowed given the current status of the resource., 404: Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI., 406: Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client., 429: Too Many Requests : used when a rate limiter has triggered.}\n\n@endpoint PATCH /app_packages/{appPkgId}\n@desc Updates the operational state of an individual application package resource\n@required {operationState: str(DISABLED/ENABLED)}\n@returns(200) {operationState: str} # Shows that the operation has been completed successfully\n@errors {400: Bad Request : used to indicate that incorrect parameters were passed to the request., 401: Unauthorized :  used when the client did not submit credentials., 403: Forbidden :  operation is not allowed given the current status of the resource., 404: Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI., 406: Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client., 409: Conflict : The operation cannot be executed currently, due to a conflict with the state of the resource, 429: Too Many Requests : used when a rate limiter has triggered.}\n\n@endgroup\n\n@group subscriptions\n@endpoint POST /subscriptions\n@desc Subscribe to notifications about on-boarding an application package\n@required {callbackUri: str(uri) # The URI of the endpoint for the notification to be sent to., subsctiptionType: str(AppPackageOnBoarding/AppPacakgeOperationChange/AppPackageDeletion) # 'Subscribed notification type'}\n@optional {appPkgFilter: [str]}\n@returns(201) {id: str, subscriptionType: str, callbackUri: str(uri), _links: map{self: map{href: str(uri)}}} # Successful response for created subscription\n@errors {400: Bad Request : used to indicate that incorrect parameters were passed to the request., 401: Unauthorized :  used when the client did not submit credentials., 403: Forbidden :  operation is not allowed given the current status of the resource., 404: Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI., 406: Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client., 429: Too Many Requests : used when a rate limiter has triggered.}\n\n@endpoint GET /subscriptions\n@desc used to retrieve the information of subscriptions to individual application package resource in MEO\n@returns(200) {_links: map{self: map{href: str(uri)}, subscriptions: [map]}} # List of zero or more subscriptions\n@errors {400: Bad Request : used to indicate that incorrect parameters were passed to the request., 401: Unauthorized :  used when the client did not submit credentials., 403: Forbidden :  operation is not allowed given the current status of the resource., 404: Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI., 406: Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client., 429: Too Many Requests : used when a rate limiter has triggered.}\n\n@endpoint GET /subscriptions/{subscriptionId}\n@desc Used to represent an individual subscription to notifications about application package changes.\n@returns(200) {id: str, subscriptionType: str, callbackUri: str(uri), _links: map{self: map{href: str(uri)}}} # Representation of the resource.\n@errors {400: Bad Request : used to indicate that incorrect parameters were passed to the request., 401: Unauthorized :  used when the client did not submit credentials., 403: Forbidden :  operation is not allowed given the current status of the resource., 404: Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI., 406: Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client., 429: Too Many Requests : used when a rate limiter has triggered.}\n\n@endpoint DELETE /subscriptions/{subscriptionId}\n@desc Deletes the individual subscription to notifications about application package changes in MEO.\n@returns(204) No Content\n@errors {401: Unauthorized :  used when the client did not submit credentials., 403: Forbidden :  operation is not allowed given the current status of the resource., 404: Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI., 429: Too Many Requests : used when a rate limiter has triggered.}\n\n@endgroup\n\n@group user_defined_notification\n@endpoint POST /user_defined_notification\n@desc Registers a notification endpoint to notify application package operations\n@required {id: str # '', notificationType: str(AppPackageOnBoarded/AppPacakgeEnabled/AppPacakgeDisabled/AppPackageDeleted) # Discriminator for the different notification types, subscriptionId: str # Identifier of the subscription related to this notification., timeStamp: map{nanoSeconds!: int(Uint32), seconds!: int(Uint32)}, appPkgId: str # Identifier of the onboarded application package., appDId: str # Identifier of this MEC application descriptor. This attribute shall be globally unique., operationalState: str(DISABLED/ENABLED), _links: map{subscription!: map} # Links to resources related to this resource.}\n@returns(204) No Content\n@errors {401: Unauthorized :  used when the client did not submit credentials., 403: Forbidden :  operation is not allowed given the current status of the resource., 404: Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI., 429: Too Many Requests : used when a rate limiter has triggered.}\n\n@endgroup\n\n@group app_packages\n@endpoint GET /app_packages/{appPkgId}/appd\n@desc Reads the content of the AppD of on-boarded individual application package resources.\n@optional {filter: str # Attribute-based filtering parameters according to ETSI GS MEC 009, all_fields: str # Include all complex attributes in the response., fields: str # Complex attributes of AppPkgInfo to be included into the response, exclude_fields: str # Complex attributes of AppPkgInfo to be excluded from the response., exclude_default: str # Indicates to exclude the following complex attributes of AppPkgInfo from the response.}\n@returns(200) Content of the AppD is returned.\n@errors {400: Bad Request : used to indicate that incorrect parameters were passed to the request., 401: Unauthorized :  used when the client did not submit credentials., 403: Forbidden :  operation is not allowed given the current status of the resource., 404: Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI., 406: Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client., 429: Too Many Requests : used when a rate limiter has triggered.}\n\n@endgroup\n\n@group onboarded_app_packages\n@endpoint GET /onboarded_app_packages/{appDId}/appd\n@desc Reads the content of the AppD of on-boarded individual application package resources.\n@optional {filter: str # Attribute-based filtering parameters according to ETSI GS MEC 009, all_fields: str # Include all complex attributes in the response., fields: str # Complex attributes of AppPkgInfo to be included into the response, exclude_fields: str # Complex attributes of AppPkgInfo to be excluded from the response., exclude_default: str # Indicates to exclude the following complex attributes of AppPkgInfo from the response.}\n@returns(200) Content of the AppD is returned.\n@errors {400: Bad Request : used to indicate that incorrect parameters were passed to the request., 401: Unauthorized :  used when the client did not submit credentials., 403: Forbidden :  operation is not allowed given the current status of the resource., 404: Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI., 406: Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client., 429: Too Many Requests : used when a rate limiter has triggered.}\n\n@endgroup\n\n@group app_packages\n@endpoint GET /app_packages/{appPkgId}/package_content\n@desc Fetch the onboarded application package content identified by appPkgId or appDId.\n@returns(200) The payload body shall contain a copy of the file representing the AppD or a ZIP file that contains the file or multiple files representing the AppD.\n@returns(206) Partial content\n@errors {400: Bad Request : used to indicate that incorrect parameters were passed to the request., 401: Unauthorized :  used when the client did not submit credentials., 403: Forbidden :  operation is not allowed given the current status of the resource., 404: Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI., 406: Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client., 416: Range Not Satisfiable ., 429: Too Many Requests : used when a rate limiter has triggered.}\n\n@endpoint PUT /app_packages/{appPkgId}/package_content\n@desc Uploads the content of application package.\n@returns(202) The application package has been accepted for uploading, but the processing has not been completed.\n@errors {400: Bad Request : used to indicate that incorrect parameters were passed to the request., 401: Unauthorized :  used when the client did not submit credentials., 403: Forbidden :  operation is not allowed given the current status of the resource., 404: Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI., 406: Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client., 409: Conflict : The operation cannot be executed currently, due to a conflict with the state of the resource, 429: Too Many Requests : used when a rate limiter has triggered.}\n\n@endgroup\n\n@group onboarded_app_packages\n@endpoint GET /onboarded_app_packages/{appDId}/package_content\n@desc Fetch the onboarded application package content identified by appPkgId or appDId.\n@returns(200) The payload body shall contain a copy of the file representing the AppD or a ZIP file that contains the file or multiple files representing the AppD.\n@returns(206) Partial content\n@errors {400: Bad Request : used to indicate that incorrect parameters were passed to the request., 401: Unauthorized :  used when the client did not submit credentials., 403: Forbidden :  operation is not allowed given the current status of the resource., 404: Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI., 406: Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client., 416: Range Not Satisfiable ., 429: Too Many Requests : used when a rate limiter has triggered.}\n\n@endpoint PUT /onboarded_app_packages/{appDId}/package_content\n@desc Uploads the content of application package.\n@returns(202) The application package has been accepted for uploading, but the processing has not been completed.\n@errors {400: Bad Request : used to indicate that incorrect parameters were passed to the request., 401: Unauthorized :  used when the client did not submit credentials., 403: Forbidden :  operation is not allowed given the current status of the resource., 404: Not Found :  used when a client provided a URI that cannot be mapped to a valid resource URI., 406: Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client., 409: Conflict : The operation cannot be executed currently, due to a conflict with the state of the resource, 429: Too Many Requests : used when a rate limiter has triggered.}\n\n@endgroup\n\n@end\n"}