Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

AnchorTopTop

Instances can be accessed and modified through this API using four services: Instance API, Instance API, Instance API, and Instance API. These four services allow for the retrieval, creation, complete update, and partial update of Instances.

Info
titleBase URL for Instance REST API

http://host:port/flexdeploy/rest/topology/instance

Table of Contents
maxLevel2

Each function returns a JSON Instance object. An Instance object has these attributes:

...

Attributes

...

Type

...

Description

...

Since plugins can have multiple operations, a plugin id is not enough to determine which plugin is desired. To designate a plugin, both an owner id and property set name must be included.

...

Back to Top

...

Target Groups 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 Target Groups.

Include Page
REST V1 Authentication
REST V1 Authentication

Table of Contents
maxLevel2

GET

There are two implementations of GET. One will find an Instance a Target Group with the given Id and return the JSON representation of the InstanceTarget Group. The other will find a list of Instances Target Groups matching the parameters supplied to it.

GET by ID

This GET service will find an Instance a Target Group with the given Id and return the JSON representation of the object.

Info
titleAPI URL

http://host:port/flexdeploy/rest/v1/topology/instance/{Id}

Parameters

Request

Parameter
Required
Type
Description
IdYesURLURL parameter for the Id which is used to find and return an instancea target group

Include Page
REST V1 Target Group Response
REST V1 Target Group Response

Response Codes

HTTP Code
Description
200Instance Target Group was found and returned
400Bad request401Unauthorized
401Authentication failure
403Authorization failure (no access to resource)
404Target Group not found
500Unexpected internal server error

Example

If we had an Instance a Target Group in our database with an Id of 11004 with the following attributes

Code Block
themeEclipse
titleInstance Target Group - 11004
{
	"description": "GET example description",
	"environments": [11001],
	"workflows": [],
	"instanceId": 11004,
	"instanceName": "GET Example Name",
	"isActive": true, "pluginspluginOperations": [],
	"instanceCode": "GETEXAMPLECODE",
	"groupCode": "GET example group",
	"subGroupCode": "GET example sub group",
	"isDeploymentTarget": false
}

When we run a GET request at the following URL

http://host:port/flexdeploy/rest/v1/topology/instance/11004

The GET request would return the following JSON Instance object

Code Block
themeEclipse
titleInstance Target Group GET Return JSON
{
	"description": "GET example description",
	"environments": [11001],
	"workflows": [],
	"instanceId": 11004,
	"instanceName": "GET Example Name",
	"isActive": true, "pluginspluginOperations": [],
	"instanceCode": "GETEXAMPLECODE",
	"groupCode": "GET example group",
	"subGroupCode": "GET example sub group",
	"isDeploymentTarget": false
}
Back to Top

GET by Query Parameters

This GET service will return a list of Instances Target Groups in the form of JSON objects based on the query parameters instanceCode, instanceName, groupCode, and subGroupCode. Instances Target Groups are only returned if they match ALL of the specified query parameters. If no query parameters are given this request will return the entire list of Instances. The instanceName parameter returns instances Target Groups that contain the specified parameter. The other parameters must be equal to the instanceTarget Group.

Info
titleAPI URL

http://host:port/flexdeploy/rest/v1/topology/instance?

Append the following character sequences to the above URL to specify Query parameters.
Use '&' between successive query parameters: 

instanceCode={instanceCode}

instanceName={instanceName}

groupCode={groupCode}

subGroupCode={subGroupCode}

Examples:
To Specify the code parameter only:

http://host:port/flexdeploy/rest/v1/topology/instance?instanceCode={instanceCode}

To Specify the code and group code parameters:

http://host:port/flexdeploy/rest/v1/topology/instance?instanceCode={instanceCode}&groupCode={groupCode}

To Specify the name, group code, and sub group code parameters:

http://host:port/flexdeploy/rest/v1/topology/instance?instanceName={instanceName}&groupCode={groupCode}&subGroupCode={subGroupCode}

...

Tip

The query parameters are not case sensitive. Searching by instanceName=NAME is the same as searching by instanceName=name.

...

Request

Parameter
Required
Type
Description
instanceCodeNo
URL
Query - String

This is a URL query parameter for the instance code which is used to search the

instances.

Target Groups.

Equals ignore case search

instanceNameNo
URL
Query - String

This is a URL query parameter for the instance name which is used to search the

instances

Target Groups.

Contains ignore case search

groupCodeNo
URL
Query - String

This is a URL query parameter for the group code which is used to search the

instances

Target Groups.

Equals ignore case search

subGroupCodeNo
URL
Query - String

This is a URL query parameter for the sub group code which is used to search the

instances.

Target Groups.

Equals ignore case search

Include Page
REST V1 Target Group Response
REST V1 Target Group Response

Response Codes

HTTP Code
Description
200Instances were found Search successful and results returned
400Bad request
401Unauthorized
401Authentication failure
403Authorization failure (no access to resource)
500Unexpected internal server error

Example

Output when the Group Code was made "Group" through http://host:port/flexdeploy/rest/v1/topology/instance?groupCode=Group

Code Block
titleSample JSON Output
collapsetrue
[
	{
		"description": "GET example description",
		"environments": [10001],
		"workflows": [10001],
		"instanceId": 10000,
		"instanceName": "GET Example Name",
		"isActive": true,
		"pluginspluginOperations": [{"propertySetName":"pluginName","ownerId":12345}],
		"instanceCode": "GETEXAMPLECODE",
		"groupCode": "Group",
		"subGroupCode": "GET example sub group",
		"isDeploymentTarget": false
	},
	{ 
		"description": "GET example 2 description", 
		"environments": [10001, 10002, 10003], 
		"workflows": [10001, 10002, 10003], 
		"instanceId": 10012, 
		"instanceName": "GET Example 2 Name", 
		"isActive": true, 
		"pluginspluginOperations": [], 
		"instanceCode": "GETEXAMPLECODE2", 
		"groupCode": "group", 
		"subGroupCode": "GET example 2 sub group", 
		"isDeploymentTarget": true
	}
]

...

...

POST

The POST service will create a new instance Target Group with the same attributes as the given JSON object. It returns the JSON representation of the Instance Target Group that was just created with an updated ID attribute.

Info
titleAPI URL

http://host:port/flexdeploy/rest/v1/topology/instance

...

Request

Attributes
Type
Required
Description
descriptionStringNoDescription of
the Instance
the Target Group
environmentsList<Long>No

List of the Environment Ids that are associated with this

instance

Target Group.

All provided environments will be associated with Target Group.

workflowsList<Long>No

List of the workflow ids that are associated with this Target Group.

All provided workflows will be associated with

this instance

Target Group.

instanceIdStringNoThe unique id of the
instance
Target Group. The id is made when
making
creating the
instance
Target Group, and it is returned in the JSON.
instanceNameStringYesName of
the instance
the Target Group
isActiveBooleanNo
*

Whether or not this

instance

Target Group is active.

Defaults to true if nothing is passed.

plugins
pluginOperations

List<Plugin>

No

List of the plugin

ids

operations that are associated with

this instance

this Target Group

All provided plugin operations will be associated with Target Group.

Plugin contains pluginId and operation attributes.

instanceCodeStringYesThe code of
the Instance
the Target Group.
groupCodeStringNoThe group code of
the instance
the Target Group.
subGroupCodeStringNoThe sub group code of the
instance
Target Group.
isDeploymentTargetBooleanNo
*

Whether or not this

instance

Target Group is a deployment target.

...

Defaults to true if nothing is passed.

Include Page
REST V1 Target Group Response
REST V1 Target Group Response

Response Codes

HTTP Code
Description
201Instance Target Group was created successfully
400Bad request
401UnauthorizedAuthentication failure
404Instance not found403Authorization failure (no access to resource)
500Unexpected internal server error

Example

If the POST receives the following JSON instance object,

Code Block
titleSample JSON Input
collapsetrue
{
	"description": "POST example description",
	"environments": [11001],
	"workflows": [],
	"instanceId": 1,
	"instanceName": "POST Example Name",
	"isActive": true,
	"pluginspluginOperations": [],
	"instanceCode": "POSTEXAMPLECODE",
	"groupCode": "POST example group",
	"subGroupCode": "POST example sub group",
	"isDeploymentTarget": false
}

the following Instance Target Group will be created in the database. Notice the updated Instance Id field.

Code Block
titleSample JSON Output
collapsetrue
{
	"description": "POST example description",
	"environments": [11001],
	"workflows": [],
	"instanceId": 11004,
	"instanceName": "POST Example Name",
	"isActive": true,
	"pluginspluginOperations": [],
	"instanceCode": "POSTEXAMPLECODE",
	"groupCode": "POST example group",
	"subGroupCode": "POST example sub group",
	"isDeploymentTarget": false
}

Back to Top

...

PUT

This PUT service will update all attributes of an Instance a Target Group with the given Id based on the attributes of the supplied JSON object.

Info
titleAPI URL

http://host:port/flexdeploy/rest/v1/topology/instance/{Id}

Parameters

Request

Attributes
Type
Required
Description
IdURLYesURL parameter for the Id which is used to find and update
an instance
a Target Group.
descriptionStringNoDescription of
the Instance
the Target Group.
environmentsList<Long>No

List of the Environment Ids that are associated with this

instance

Target Group. If currently associated environment(s) are not in input list those environments will be unassigned from this Target Group.

i.e. at the end of successful request, Target Group will have mapped environments matching to input request.

workflowsList<Long>No

List of the workflow ids that are associated with this

instance

Target Group. If currently associated workflows(s) are not in input list those workflows will be unassigned from this Target Group.

i.e. at the end of successful request, Target Group will have mapped workflows matching to input request.

instanceIdStringNoThe instance Id in the request is ignored
instanceNameStringYesName of
the instance
the Target Group
isActiveBooleanNo
*

Whether or not this

instance is active

Target Group is active.

Defaults to true if nothing is passed.

plugins
pluginOperationsList<Plugin>No

List of the

plugins that are associated with this instance

plugins that are associated with this Target Group. If currently associated plugin operation(s) are not in input list those plugin operations will be unassigned from this Target Group.

i.e. at the end of successful request, Target Group will have mapped plugin operations matching to input request.

Plugin contains pluginId and operation attributes.

instanceCodeStringYesThe code of
the Instance
the Target Group.
groupCodeStringNoThe group code of
the instance
the Target Group.
subGroupCodeStringNoThe sub group code of
the instance
the Target Group.
isDeploymentTargetBooleanNo
*

Whether or not this

instance

Target Group is a deployment target.

*defaults

Defaults to true if nothing is passed.

Include Page
REST V1 Target Group Response
REST V1 Target Group Response

Response Codes

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

Example

If we had an instance a Target Group in our database with an Id of 11104 and had the following attributes

Code Block
titleCurrent InstanceTarget Group
collapsetrue
{
	"description": "Example description",
	"environments": [],
	"workflows": [],
	"instanceId": 11104,
	"instanceName": "Example Name",
	"isActive": false,
	"pluginspluginOperations": [],
	"instanceCode": "EXAMPLECODE",
	"groupCode": "Group",
	"subGroupCode": "Sub Group",
	"isDeploymentTarget": false
}

When we run a PUT request at the following URL

http://host:port/flexdeploy/rest/v1/topology/instance/11104

And the PUT request receives the following JSON instance object,

Code Block
titleSample JSON Input
collapsetrue
{
	"description": "PUT description",
	"environments": [11001],
	"workflows": [11104],
	"instanceId": 1,
	"instanceName": "PUT Name",
	"isActive": true,
	"pluginspluginOperations": [],
	"instanceCode": "PUTCODE",
	"groupCode": "PUT group",
	"subGroupCode": "PUT sub group",
	"isDeploymentTarget": true
}

The PUT request would then update the Instance Target Group with Id 11104 and return the  following JSON Instance object.

Code Block
titleSample JSON Output
collapsetrue
{
	"description": "PUT description",
	"environments": [11001],
	"workflows": [11104],
	"instanceId": 11104,
	"instanceName": "PUT Name",
	"isActive": true,
	"pluginspluginOperations": [],
	"instanceCode": "PUTCODE",
	"groupCode": "PUT group",
	"subGroupCode": "PUT sub group",
	"isDeploymentTarget": true
}

Back to Top

...

PATCH

...

PATCH

This PATCH service will update the information of the Instance Target Group of the specified Id with the non-null parameters of the JSON. The parameters that are null will not be changed in the Instance.

Info
titleAPI URL

http://host:port/flexdeploy/rest/v1/topology/instance/{Id}


Tip

The only required attribute is the Instance Target Group Id in the URL.

...

Request

Attributes
Type
Required
Description
IdURLYesURL parameter for the Id which is used to find and update
an instancedescriptionStringenvironments
a Target Group.
descriptionStringNoDescription of the Target Group.
environmentsList<Long>No
Description of the Instance

List of the environment ids that will be added to the Target Group.

If input environment(s) is not already associated it will be associated to Target Group but existing environment assignment that are not in PATCH request will not be unassigned.

i.e. input list is considered as append to existing assignments.

workflowsList<Long>No

List of the

environment

workflow ids that will be added to the

instanceworkflowsList<Long>NoList of the workflow ids that will be added to the instance

Target Group.

If input workflow(s) is not already associated it will be associated to Target Group but existing workflow assignment that are not in PATCH request will not be unassigned.

i.e. input list is considered as append to existing assignments.

instanceIdStringNoThe instance Id in the request is ignored
instanceNameStringNoName of
the instance
the Target Group
isActiveBooleanNoWhether or not this
instance
Target Group is active.
pluginsList<Plugin>No

List of the plugins that will be added to the

instance

Target Group.

If input plugin(s) is not already associated it will be associated to the Target Group but existing plugin assignment that are not in PATCH request will not be unassigned.

i.e. input list is considered as append to existing assignments.

instanceCodeStringNoThe code of
the Instance
the Target Group.
groupCodeStringNoThe group code of
the instance
the Target Group.
subGroupCodeStringNoThe sub group code of
the instance
the Target Group.
isDeploymentTargetBooleanNoWhether or not this
instance
Target Group is a deployment target.

Include Page
REST V1 Target Group Response
REST V1 Target Group Response

Response Codes

HTTP Code
Description
200
Instance
Target Group was found and patched
400Bad request
401
Unauthorized
Authentication failure
403Authorization failure (no access to resource)
404Instance not found
500Unexpected internal server error

Example

If we had

...

a Target Group in our database with an Id of 11104 and had the following attributes

Code Block
titleCurrent

...

Target Group
collapsetrue
{
	"description": "Example description",
	"environments": [11001],
	"workflows": [],
	"instanceId": 11104,
	"instanceName": "Example Name",
	"isActive": false,
	"

...

pluginOperations": [],
	"instanceCode": "EXAMPLECODE",
	"groupCode": "Group",
	"subGroupCode": "Sub Group",
	"isDeploymentTarget": false
}

When we run a PATCH request at the following URL

http://host:port/flexdeploy/rest/v1/topology/instance/11104

And the PATCH request receives the following JSON instance object,

Code Block
titleSample JSON Input
collapsetrue
{
	"description": "PATCH example description",
	"environments": null,
	"workflows": null,
	"instanceId": null,
	"instanceName": null,
	"isActive": null,
	"

...

pluginOperations": null,
	"instanceCode": "PATCHEXAMPLECODE",
	"groupCode": null,
	"subGroupCode": null,
	"isDeploymentTarget": null
}

The PATCH request would then update the

...

Target Group with Id 11104 and return the following JSON instance object.

Code Block
titleSample JSON Output
collapsetrue
{
	"description": "PATCH example description",
	"environments": [11001],
	"workflows": [],
	"instanceId": 11104,
	"instanceName": "Example Name",
	"isActive": false,
	"

...

pluginOperations": [],
	"instanceCode": "PATCHEXAMPLECODE",
	"groupCode": "Group",
	"subGroupCode": "Sub Group",
	"isDeploymentTarget": false
}

...