@Override
  public RequestStatus createResources(final Request request)
          throws SystemException, UnsupportedPropertyException,
          ResourceAlreadyExistsException, NoSuchParentResourceException, IllegalArgumentException {
    Set<Resource> associatedResources = new HashSet<>();
    try {
      MpackRequest mpackRequest = getRequest(request);
      if (mpackRequest == null) {
        throw new BodyParseException("Please provide " + MPACK_NAME + " ," + MPACK_VERSION + " ," + MPACK_URI);
      }
      validateCreateRequest(mpackRequest);
      MpackResponse response = getManagementController().registerMpack(mpackRequest);
      if (response != null) {
        notifyCreate(Resource.Type.Mpack, request);
        Resource resource = new ResourceImpl(Resource.Type.Mpack);
        resource.setProperty(MPACK_RESOURCE_ID, response.getId());
        resource.setProperty(MPACK_ID, response.getMpackId());
        resource.setProperty(MPACK_NAME, response.getMpackName());
        resource.setProperty(MPACK_VERSION, response.getMpackVersion());
        resource.setProperty(MPACK_URI, response.getMpackUri());
        resource.setProperty(MPACK_DESCRIPTION, response.getDescription());
        resource.setProperty(REGISTRY_ID, response.getRegistryId());
        resource.setProperty(MPACK_DISPLAY_NAME, response.getDisplayName());
        associatedResources.add(resource);
        return getRequestStatus(null, associatedResources);
      }
    } catch (IOException e) {
      e.printStackTrace();
    } catch (BodyParseException e1) {
      e1.printStackTrace();
    }
    return null;
  }
The key property ids for a mpack resource.
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/MpackResourceProvider.java