Create a component

Request

PUT https://{hostname}:{port}
    /cli/component/create
Accept: application/json
Table 1. Header parameters
Parameter Type Required Description
Accept application/json true
This command takes a JSON request string or file. Use the following template for the request:
{
  "cleanupCountToKeep": "Number of most recent versions to 
  keep; omit this parameter to inherit the system settings 
  (Optional)",
  "cleanupDaysToKeep": "Number of days to keep versions; 
  omit this parameter to inherit the system settings 
  (Optional)",
  "defaultVersionType": "The default type to create 
  versions with; valid values are FULL and INCREMENTAL",
  "description": "Description",
  "importAutomatically": "Specify true to import new 
  versions automatically",
  "integrationAgent": "ID of the Agent to use for 
  importing new component versions (Optional)",
  "integrationTag": "Tag name of the Agent to use for 
  importing new component versions (Optional)",
  "name": "Component name or ID",
  "properties": {"Source configuration plugin property 
  name": "Property value"},
  "sourceConfigPlugin": "The name of the source 
  configuration plug-in to use (Optional)",
  "teamMappings": [{
    "resourceRoleId": "Id of Resource Type to apply to 
  this team mapping (optional, can specify either this or 
  resourceRoleLabel",
    "resourceRoleLabel": "Name of Resource Type to apply 
  to this team mapping (optional, can specify either this or 
  resourceRoleId",
    "teamId": "ID of a team, either this field or 
  teamLabel are needed to specify a team",
    "teamLabel": "Name of the team to map the environment 
  to, either this field or teamId are needed to specify a 
  team"
  }],
  "templateId": "ID of the template to use (Optional)",
  "templateName": "Name of a template to use; this 
  parameter is ignored if  templateId is specified 
  (Optional)",
  "templateVersion": "Version number of the specified 
  template (Optional)",
  "useVfs": "Boolean"
}

Example JSON requests

{
  "name": "My new component",
  "description": "New component for command example",
  "importAutomatically": false,
  "useVfs": true,
  "sourceConfigPlugin": "File System (Versioned)",
  "defaultVersionType": "FULL",
  "properties": {
    "FileSystemVersionedComponentProperties\/basePath": 
    "/opt/newcomponent"
  }
}

The properties attribute in the JSON template refers to properties for the source configuration plug-in, not custom properties. For example, the following code creates a component from a Maven repository. It includes properties that are prefixed with MavenComponentProperties to refer to the properties for that plug-in.

{
  "name": "Component from Maven",
  "description": "New component for command example for Maven",
  "importAutomatically": false,
  "useVfs": false,
  "sourceConfigPlugin": "Maven",
  "defaultVersionType": "FULL",
  "properties": {
    "MavenComponentProperties\/artifactId":"MyArtifact",
    "MavenComponentProperties\/groupId":"MyGroup",
    "MavenComponentProperties\/extension":"ext",
    "MavenComponentProperties\/repoUrl":"http:\/\/myserver.com"
  }
}

To see the properties for a source configuration plug-in, create a component in the web interface and use the source configuration plug-in. Then, then export its information with the getComponent command. The JSON that this command returns includes the properties for the source configuration plug-in. You can also look in the plugin.xml file in the plug-in.

To create a component from a template, specify either the templateId attribute or the templateName attribute. Then, specify the templateVersion attribute; to use the most recent version of the template, specify an empty string. If the template contains component property definitions, you can specify values for those properties with the attribute template/propertyName, where propertyName is the name of the property.

For example, the following JSON code creates a component from the most recent version of the Template1 template. This code specifies the value MyValue for the parameter template/MyProperty.
{
  "name":"NewComponent1", 
  "description":"",
  "templateName":"Template1", 
  "templateVersion":"",
  "template/MyProperty":"MyValue", 
  "componentType":"STANDARD", 
  "sourceConfigPlugin":"",
  "importAutomatically":"false", 
  "useVfs":"true",
  "defaultVersionType":"FULL", 
  "importAgentType":"inherit",
  "inheritSystemCleanup":"true",
  "runVersionCreationProcess":"false",
  "properties":{},
  "teamMappings":[]
}

Example response

{
  "id": "e84c7947-fad1-4399-8eb8-0d0d354b9e2b",
  "name": "My new component",
  "description": "New component for command example",
  "created": 1391456765556,
  "importAutomatically": false,
  "useVfs": true,
  "active": true,
  "deleted": false,
  "defaultVersionType": "FULL",
  "cleanupDaysToKeep": 0,
  "cleanupCountToKeep": 0,
  "tags": [
  ],
  "user": "admin"
}

Related CLI command: createComponent.