Project Packages API

This API is available starting with version @5.2.0.1

Project packages can be accessed and modified through this API using four services: GET, POST, PUT, and PATCH. These four services allow for the retrieval, creation, complete update, and partial update of packages.

Base URL for Environment REST API

http://host:port/flexdeploy/rest/v1/project/{projectId}/package

GET

This method will find a package with the given name in the given project and return the JSON representation of the package.

API URL

http://host:port/flexdeploy/rest/v1/project/{projectId}/package/{packageName}

Request

Parameter

Type

Required

Description

projectId

URLYesThis is a URL parameter for the Id of the project which the package is in
packageNameURLYesName of the package to retrieve. This is case sensitive

Response

AttributeTypeDescription
nameStringName of the package
descriptionStringDescription of the package
filesList<PackageFile>All files in the package. More info on the PackageFile object is included below.
packageTypeStringType of the package (USER_MANAGED or DYNAMIC).
packageStatusStringPackage Status. Possible values (ACTIVE, COMPLETED, INACTIVE). Completed packages can not be modified and only active packages can be added to a release.
includePathStringComma separated list of regular expressions that define which project files will be included.  Applicable for DYNAMIC packages only.
excludePathStringComma separated list of regular expressions that define which project files will be excluded.  Applicable for DYNAMIC packages only.
testsStringSalesforce Tests. Only applies to Salesforce type partial deployment projects.
testLevelStringSalesforce Test Level. Only applies to Salesforce type partial deployment projects.
versionSyntaxStringVersion syntax of the package. Only applies to Salesforce type partial deployment projects.

PackageFile

AttributeTypeDescription
filePathStringFully qualified path of the file
objectTypeStringType of the object
sequenceNumberIntegerOrder placement of this file in the package

Response Codes

HTTP Code
Description
200Project Package was found and returned
400Bad request
401Authentication failure
403Authorization failure (no access to resource)
404Project or Package not found
500Unexpected internal server error

Example

If we had a package with the name ALM-150 in a project with id 14935, when we run a GET request at the URL

http://host:port/flexdeploy/rest/v1/project/14935/package/ALM-150,

the GET request would return the following JSON package object:

Package GET Return JSON
{
   "name": "ALM-150",
   "description": null,
   "files": [
		{
			"filePath": "/sql/XXHR_BIPUB_REP_PKG.pls",
			"objectType": "DB Objects (SQLs)",
			"sequenceNumber": 1
		},
		{
			"filePath": "/sql/XXHR_BIPUB_REP_PKG.pkb",
			"objectType": "DB Objects (SQLs)",
			"sequenceNumber": 2
		}
	],
   "packageType": "USER_MANAGED",
   "packageStatus": "ACTIVE",
   "includePath" : null,
   "excludePath" : null,
   "tests": null,
   "testLevel": "NoTestRun",
   "versionSyntax": null
}

Back to Top


POST

This POST service will create a new package with the same attributes as the given JSON object.

API URL

http://host:port/flexdeploy/rest/v1/project/{projectId}/package

Request

AttributeTypeRequiredDescription
nameStringYesName of the package
descriptionStringNoDescription of the package
sortAllBooleanNoWhether or not the files in the package should be sorted by type. If this is true, sequence numbers for files will be ignored. This will default to false
addFileFilterStringNoA filter to add all files containing this string
filesList<PackageFile>NoAll files in the package. More info on the PackageFile object is included below.
packageStatusString NoPackage Status. Possible values (ACTIVE, COMPLETED, INACTIVE). Completed packages can not be modified and only active packages can be added to a release. Defaults to Active.
packageTypeStringNoType of the package to create (DYNAMIC or USER_MANAGED).  Default is USER_MANAGED if not specified.
includePathStringNoComma separated list of regular expressions that define which project files will be included.  Applicable for DYNAMIC packages only.
excludePathStringNoComma separated list of regular expressions that define which project files will be excluded.  Applicable for DYNAMIC packages only.
testsStringNoSalesforce Tests. Only applies to Salesforce type partial deployment projects.
testLevelStringNoSalesforce Test Level. Only applies to Salesforce type partial deployment projects.
versionSyntaxStringNoVersion syntax of the package. Only applies to Salesforce type partial deployment projects.

PackageFile

AttributeTypeRequiredDescription
filePathStringYesFully qualified path of the file as it appears on the Project Files and Packages screens
sequenceNumberIntegerNoOrder placement of this file in the package. Sequence numbers must be provided for all or none of the files in the package JSON. If sequence numbers aren't provided, the order of the files will be based on either object type, if the sortAll flag is true, or based on the order of the files in the request.

Response

AttributeTypeDescription
nameStringName of the package
descriptionStringDescription of the package
filesList<PackageFile>All files in the package. More info on the PackageFile object is included below.
packageStatusStringPackage Status. Possible values (ACTIVE, COMPLETED, INACTIVE). Completed packages can not be modified and only active packages can be added to a release. Defaults to ACTIVE.
packageTypeStringType of the package (DYNAMIC or USER_MANAGED).
includePathStringComma separated list of regular expressions that define which project files will be included.  Applicable for DYNAMIC packages only.
excludePathStringComma separated list of regular expressions that define which project files will be excluded.  Applicable for DYNAMIC packages only.
testsStringSalesforce Tests. Only applies to Salesforce type partial deployment projects.
testLevelStringSalesforce Test Level. Only applies to Salesforce type partial deployment projects.
versionSyntaxStringVersion syntax of the package. Only applies to Salesforce type partial deployment projects.

PackageFile

AttributeTypeDescription
filePathStringFully qualified path of the file
objectTypeStringType of the object
sequenceNumberIntegerOrder placement of this file in the package

Response Codes

HTTP Code
Description
200Project Package was created successfully
400Bad request
401Authentication failure
403Authorization failure (no access to resource)
404Project or Package not found
500Unexpected internal server error

Example

If the POST request receives the following JSON package object,

POST JSON
{
   "description": "Creating a package using the Package REST API",
   "name": "REST_Package",
   "sortAll": true,
   "addFileFilter": "XXHR_BIPUB_REP_PKG",
   "files": [
		{
			"filePath": "/java/xxt/oracle/apps/ak/xxperson/webui/managePersonCO.java"
		},
		{
			"filePath": "/java/xxt/oracle/apps/ak/xxperson/server/xxPersonAM.xml"
		}
	]
}

The following package object will then be created:

POST JSON
{
   "description": "Creating a package using the Package REST API",
   "name": "REST_Package",
   "files": [
		{
			"filePath": "/java/xxt/oracle/apps/ak/xxperson/webui/managePersonCO.java",
			"objectType": "Oracle Application Framework (OAF) JAVA",
			"sequenceNumber": 1
		},
		{
			"filePath": "/java/xxt/oracle/apps/ak/xxperson/server/xxPersonAM.xml",
			"objectType": "Oracle Application Framework (OAF) JAVA",
			"sequenceNumber": 2
		}
	],
  "packageStatus": "ACTIVE",
  "pacageType": "USER_MANAGED",
  "includePath": null,
  "excludePath": null,
  "tests": null,
  "testLevel": "NoTestsRun",
  "versionSyntax": null
}

Back to Top


PUT

This PUT service will replace all attributes of a given package with the attributes of the provided JSON request.

API URL

http://host:port/flexdeploy/rest/v1/project/{projectId}/package/{packageName}

Request

AttributeTypeRequiredDescription
packageNameString (URL)YesName of the package, used to identify the package being updated. The name cannot be modified after the package is created
packageStatusString YesPackage Status. Possible values (ACTIVE, COMPLETED, INACTIVE). Completed packages can not be modified and only active packages can be added to a release.
descriptionStringNoDescription of the package
sortAllBooleanNoWhether or not the files in the package should be sorted by type. If this is true, sequence numbers for files will be ignored. This will default to false
addFileFilterStringNoA filter to add all files containing this string
filesList<PackageFile>NoAll files in the package. Any files in the package before this request will be deleted and replaced by the files in the request. More info on the PackageFile object is included below.
packageTypeStringNoType of the package (DYNAMIC or USER_MANAGED).  The default is USER_MANAGED if not specified.
includePathStringNoComma separated list of regular expressions that define which project files will be included.  Applicable for DYNAMIC packages only.
excludePathStringNoComma separated list of regular expressions that define which project files will be excluded.  Applicable for DYNAMIC packages only.
testsStringNoSalesforce Tests. Only applies to Salesforce type partial deployment projects.
testLevelStringNoSalesforce Test Level. Only applies to Salesforce type partial deployment projects.
versionSyntaxStringNoVersion syntax of the package. Only applies to Salesforce type partial deployment projects.

PackageFile

AttributeTypeRequiredDescription
filePathStringYesFully qualified path of the file as it appears on the Project Files and Packages screens
sequenceNumberIntegerNoOrder placement of this file in the package. Sequence numbers must be provided for all or none of the files in the package JSON. If sequence numbers aren't provided, the order of the files will be based on either object type, if the sortAll flag is true, or based on the order of the files in the request.

Response

AttributeTypeDescription
nameStringName of the package
descriptionStringDescription of the package
filesList<PackageFile>All files in the package. More info on the PackageFile object is included below.
packageStatusStringPackage Status. Possible values (ACTIVE, COMPLETED, INACTIVE). Completed packages can not be modified and only active packages can be added to a release.
packageTypeStringType of the package (DYNAMIC or USER_MANAGED). 
includePathStringComma separated list of regular expressions that define which project files will be included.  Applicable for DYNAMIC packages only.
versionSyntaxStringVersion syntax of the package. Only applies to Salesforce type partial deployment projects.
testsStringSalesforce Tests. Only applies to Salesforce type partial deployment projects.
testLevelStringSalesforce Test Level. Only applies to Salesforce type partial deployment projects.
versionSyntaxStringVersion syntax of the package. Only applies to Salesforce type partial deployment projects.

PackageFile

AttributeTypeDescription
filePathStringFully qualified path of the file
objectTypeStringType of the object
sequenceNumberIntegerOrder placement of this file in the package

Response Codes

HTTP Code
Description
200Project Package was found and updated
400Bad request
401Authentication failure
403Authorization failure (no access to resource)
404Project or Package not found
500Unexpected internal server error

Example

If we had an package in a project with id 14935 with the following attributes:

Package PUT JSON
{
   "description": "Creating a package using the Package REST API",
   "name": "REST_Package",
   "files": [
		{
			"filePath": "/sql/XXHR_BIPUB_REP_PKG.pls",
			"objectType": "DB Objects (SQLs)",
			"sequenceNumber": 1
		},
		{
			"filePath": "/sql/XXHR_BIPUB_REP_PKG.pkb",
			"objectType": "DB Objects (SQLs)",
			"sequenceNumber": 2
		},
		{
			"filePath": "/java/xxt/oracle/apps/ak/xxperson/webui/managePersonCO.java",
			"objectType": "Oracle Application Framework (OAF) JAVA",
			"sequenceNumber": 3
		},
		{
			"filePath": "/java/xxt/oracle/apps/ak/xxperson/server/xxPersonAM.xml",
			"objectType": "Oracle Application Framework (OAF) JAVA",
			"sequenceNumber": 4
		}
	],
  "packageStatus": "ACTIVE",
   "packageType": "USER_MANAGED",
   "includePath": null,
   "excludePath": null,
   "tests": null,
   "testLevel": "NoTestsRun",
   "versionSyntax": null
}

When we run a PUT request at the URL http://host:port/flexdeploy/rest/v1/project/14935/package/REST_Package, and the PUT request receives the following JSON package object,

Package PUT Receive JSON
{
	"description": "This is the updated package",
	"sortAll": false,
    "addFileFilter": null,
	"files": [
		{
			"filePath": "/java/xxt/oracle/apps/ak/xxperson/webui/managePersonCO.java"
		},
		{
			"filePath": "/sql/XXHR_BIPUB_REP_PKG.pkb"
		},
		{
			"filePath": "/java/xxt/oracle/apps/ak/xxperson/server/xxPersonAM.xml"
		}
	],
   "packageStatus": "ACTIVE"
}

The PUT request would then update the package and return the following JSON package object:

Package PUT Return JSON
{
	"name": "REST_Package",
	"description": "This is the updated package",
	"files": [
		{
			"filePath": "/java/xxt/oracle/apps/ak/xxperson/webui/managePersonCO.java",
			"objectType": "Oracle Application Framework (OAF) JAVA",
			"sequenceNumber": 1
		},
		{
			"filePath": "/sql/XXHR_BIPUB_REP_PKG.pkb",
			"objectType": "DB Objects (SQLs)",
			"sequenceNumber": 2
		},
		{
			"filePath": "/java/xxt/oracle/apps/ak/xxperson/server/xxPersonAM.xml",
			"objectType": "Oracle Application Framework (OAF) JAVA",
			"sequenceNumber": 3
		}
	],
   "packageStatus": "ACTIVE",
   "packageType": "USER_MANAGED",
   "includePath": null,
   "excludePath": null,
   "tests": null,
   "testLevel": "NoTestsRun",
   "versionSyntax": null
}

Back to Top


PATCH

This PATCH service will update an existing package with the information passed through a JSON object. If an attribute of the JSON is null, it will not be updated in the package. Any new files included in the request will be appended to the list of files already in the package.

API URL

http://host:port/flexdeploy/rest/v1/project/{projectId}/package/{packageName}

Request

AttributeTypeRequiredDescription
packageNameString (URL)YesName of the package, used to identify the package being updated. The name cannot be modified after the package is created
descriptionStringNoDescription of the package
sortAllBooleanNoWhether or not the files in the package should be sorted by type. If this is true, sequence numbers for files will be ignored. This will default to false
addFileFilterStringNoA filter to add all files containing this string
filesList<PackageFile>NoAll files in the package. Any new files will be appended to files already in the package. More info on the PackageFile object is included below
packageStatusString NoPackage Status. Possible values (ACTIVE, COMPLETED, INACTIVE). Completed packages can not be modified and only active packages can be added to a release.
packageTypeStringNoType of the package (DYNAMIC or USER_MANAGED). 
includePathStringNoComma separated list of regular expressions that define which project files will be included.  Applicable for DYNAMIC packages only.
excludePathStringNoComma separated list of regular expressions that define which project files will be excluded.  Applicable for DYNAMIC packages only.
testsStringNoSalesforce Tests. Only applies to Salesforce type partial deployment projects.
testLevelStringNoSalesforce Test Level. Only applies to Salesforce type partial deployment projects.
versionSyntaxStringNoVersion syntax of the package. Only applies to Salesforce type partial deployment projects.

PackageFile

AttributeTypeRequiredDescription
filePathStringYesFully qualified path of the file as it appears on the Project Files and Packages screens
sequenceNumberIntegerNoOrder placement of this file in the package. Sequence numbers must be provided for all or none of the files in the package JSON. If sequence numbers aren't provided, the order of the files will be based on either object type, if the sortAll flag is true, or based on the order of the files in the request

Response

AttributeTypeDescription
nameStringName of the package
descriptionStringDescription of the package
filesList<PackageFile>All files in the package. More info on the PackageFile object is included below.
packageStatusStringPackage Status. Possible values (ACTIVE, COMPLETED, INACTIVE). Completed packages can not be modified and only active packages can be added to a release.
packageTypeStringType of the package (DYNAMIC or USER_MANAGED). 
includePathStringComma separated list of regular expressions that define which project files will be included.  Applicable for DYNAMIC packages only.
excludePathStringComma separated list of regular expressions that define which project files will be excluded.  Applicable for DYNAMIC packages only.
testsStringSalesforce Tests. Only applies to Salesforce type partial deployment projects.
testLevelStringSalesforce Test Level. Only applies to Salesforce type partial deployment projects.
versionSyntaxStringVersion syntax of the package. Only applies to Salesforce type partial deployment projects.

PackageFile

AttributeTypeDescription
filePathStringFully qualified path of the file
objectTypeStringType of the object
sequenceNumberIntegerOrder placement of this file in the package

Response Codes

HTTP Code
Description
200Project Package was found and updated
400Bad request
401Authentication failure
403Authorization failure (no access to resource)
404Project or Package not found
500Unexpected internal server error

Example

If we had an package in a project with id 14935 with the following attributes:

Package POST JSON
{
	"name": "REST_Package",
	"description": "This is the updated package",
	"files": [
		{
			"filePath": "/java/xxt/oracle/apps/ak/xxperson/webui/managePersonCO.java",
			"objectType": "Oracle Application Framework (OAF) JAVA",
			"sequenceNumber": 1
		},
		{
			"filePath": "/sql/XXHR_BIPUB_REP_PKG.pkb",
			"objectType": "DB Objects (SQLs)",
			"sequenceNumber": 2
		},
		{
			"filePath": "/java/xxt/oracle/apps/ak/xxperson/server/xxPersonAM.xml",
			"objectType": "Oracle Application Framework (OAF) JAVA",
			"sequenceNumber": 3
		}
	],
  "packageStatus": "ACTIVE",
   "packageType": "USER_MANAGED",
   "includePath": null,
   "excludePath": null,
   "tests": null,
   "testLevel": "NoTestsRun",
   "versionSyntax": null
}

When we run a PATCH request at the URL http://host:port/flexdeploy/rest/v1/project/14935/package/REST_Package, and the PATCH request receives the following JSON package object,

Package PUT Receive JSON
{
   "name": "REST_Package",
   "description": "This is the updated package",
   "files": [
		{
			"filePath": "/sql/XXHR_BIPUB_REP_PKG.pls",
			"sequenceNumber": 2
		}
	],
   "packageStatus": "ACTIVE",
   "packageType": "USER_MANAGED",
   "includePath": null,
   "excludePath": null
}

The PATCH request would then update the package and return the following JSON package object:

Package PUT Return JSON
{
	"name": "REST_Package",
	"description": "This is the updated package",
	"files": [
		{
			"filePath": "/java/xxt/oracle/apps/ak/xxperson/webui/managePersonCO.java",
			"objectType": "Oracle Application Framework (OAF) JAVA",
			"sequenceNumber": 1
		},
		{
			"filePath": "/sql/XXHR_BIPUB_REP_PKG.pls",
			"sequenceNumber": 2
		},
		{
			"filePath": "/sql/XXHR_BIPUB_REP_PKG.pkb",
			"objectType": "DB Objects (SQLs)",
			"sequenceNumber": 3
		},
		{
			"filePath": "/java/xxt/oracle/apps/ak/xxperson/server/xxPersonAM.xml",
			"objectType": "Oracle Application Framework (OAF) JAVA",
			"sequenceNumber": 4
		}
	],
  "packageStatus": "ACTIVE",
  "packageType": "USER_MANAGED",
  "includePath": null,
  "excludePath": null
  "tests": null,
  "testLevel": "NoTestsRun",
  "versionSyntax": null
}

Back to Top


DELETE

This method will delete a package with the given name in the given project. There is no response message. If package is not present (was already deleted), no error code will be returned.

API URL

http://host:port/flexdeploy/rest/v1/project/{projectId}/package/{packageName}

Request

Parameter
Type
Required
Description

projectId

URLYesThis is a URL parameter for the Project Id which is searched to find package.
packageNameURLYesThis is a URL parameter for the Package which will be deleted from project.

Response Codes

HTTP Code
Description
200Package was deleted or not present.
400Bad request
401Authentication failure
403Authorization failure (no access to resource)
404Project not found
500Unexpected internal server error

Back to Top