---
title: "Create a resource for on-boarding an application package to a MEO"
method: POST
path: "/app_packages"
tags: ["app-pkgm"]
---

# Create a resource for on-boarding an application package to a MEO

`POST /app_packages`

## Request

- Base URL: `https://localhost/app_pkgm/v1`
- URL: `https://localhost/app_pkgm/v1/app_packages`
- Auth: none declared
- TypeScript: <https://skmtc.dev/etsi/apis/etsi-gs-mec-010-2-part-2-application-lifecycle-rules-and-req/docs/app_packages/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a resource for on-boarding an application package to a MEO

## Request body

- CreateAppPkg
  - `appPkgName` string, required: Name of the application package to be onboarded.
  - `appPkgPath` string, required
  - `appPkgVersion` string, required: Version of the application package to be onboarded. The appPkgName with appPkgVersion can be used to uniquely identify the application package.
  - `appProvider` string: The provider's name of the application package to be onboarded.
  - `checksum` Checksum, required
    - `algorithm` string, required: Name of the algorithm used to generate the checksum, as defined in ETSI GS NFV-SOL 004. For example, SHA-256, SHA-512.
    - `hash` string, required: 'String 1 The hexadecimal value of the checksum'
  - `userDefinedData` KeyValuePairs: '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'

## Response `201`

Successful response for resource creation

- AppPkgInfo[]
  - `id` string, required: Identifier of the onboarded application package.
  - `appDId` string, required: Identifier of this MEC application descriptor. This attribute shall be globally unique.
  - `appProvider` string: Provider of the application and of the AppD.
  - `appName` string, required: Name to identify the MEC application.
  - `appSoftwareVersion` string, required: Software version of the application. This is updated when there is any change to the software in the onboarded application package.
  - `appDVersion` string, required: Identifies the version of the application descriptor.
  - `checksum` Checksum, required
    - `algorithm` string, required: Name of the algorithm used to generate the checksum, as defined in ETSI GS NFV-SOL 004. For example, SHA-256, SHA-512.
    - `hash` string, required: 'String 1 The hexadecimal value of the checksum'
  - `softwareImages` unknown, required
  - `additionalArtifacts` unknown
  - `onboardingState` 'CREATED' | 'UPLOADING' | 'PROCESSING' | 'ONBOARDED', enum, required: Onboarding state of application package
  - `operationalState` 'ENABLED' | 'DISABLED', required: Operational state of the onboarded application package: Ã¢â‚¬Â¢ENABLED: the application package can be used for instantiation of new application instances. Ã¢â‚¬Â¢DISABLED: the application package cannot be used for further application instantiation requests.
  - `usageState` 'IN_USE' | 'NOT_IN_USE', enum, required: Usage state of the onboarded instance of the application package
  - `userDefinedData` KeyValuePairs: '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'
  - `_links` AppPkgInfoLinks, required: Links to resources related to this resource.
    - `self` LinkType, required
      - `href` string, uri, required: URI referring to a resource
    - `appD` LinkType, required
      - `href` string, uri, required: URI referring to a resource
    - `appPkgContent` LinkType, required
      - `href` string, uri, required: URI referring to a resource

## Other responses

- `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.

---

[API](https://skmtc.dev/etsi/apis/etsi-gs-mec-010-2-part-2-application-lifecycle-rules-and-req.md) - [All operations](https://skmtc.dev/etsi/apis/etsi-gs-mec-010-2-part-2-application-lifecycle-rules-and-req/llms.txt) - [OpenAPI document](https://skmtc.dev/etsi/apis/etsi-gs-mec-010-2-part-2-application-lifecycle-rules-and-req/revisions/5e79fac60c9d?raw)
