Skip to main content

Create an application component

POST 

/applications/:applicationId/components

Creates a new component in the specified application.

Request

Path Parameters

    applicationId stringrequired

    Possible values: non-empty

Header Parameters

    X-Codenow-Api-Key anyrequired

    CodeNOW API Key

Body

required

    name stringrequired


    Human readable name of the component.
    CodeNOW will generate an ID for the library based on this name.

    description string


    Optional description of the component.

    scm

    object

    required


    Defines the repository in SCM.
    Supported providers/actions can be obtained through the /scm/providers endpoint.

    action ActionType (string)required

    Possible values: [CREATE, LINK]

    Default value: CREATE


    Action that will be performed on the SCM repository.
    CREATE: New SCM repository will be created for the component.
    LINK: The component will be linked to an existing SCM repository (unique ID of the repository will be required).

    providerId stringrequired

    Possible values: non-empty

    Instance ID of an existing SCM provider
    Available providers and supported actions can be obtained through the /scm/providers endpoint.

    providerType stringrequired

    Possible values: non-empty

    Type of an existing SCM provider
    Available providers and supported actions can be obtained through the /scm/providers endpoint.

    existingRepository booleanrequired

    Defines if the new component will be created in existing repository:

    • true: you must define spaceId and repositoryId of the existing repository in the request
    • false: new repository will be created for the component
    monoRepository booleanrequired

    Defines if the new component will be share repository with other components:

    • true: you must define componentPath where the component will be hosted in the repository
    • false: the component will be hosted in the root of the repository
    componentPath stringnullable

    Possible values: Value must match regular expression ^[a-zA-Z0-9\-_~/]*$

    Define path in the repository where the component will be placed.

    spaceId stringrequired

    ID of an existing SCM spaces where repository will be hosted.
    Available repositories can be obtained through the /scm/provider/{providerType}/{providerId}/spaces endpoint.

    repositoryId stringnullable

    ID of an existing SCM repository to which the component should be placed.
    Available repositories can be obtained through the /scm/provider/{providerType}/{providerId}/spaces/{spaceId}/repos endpoint.

    template

    object

    required


    Defines the template used for scaffolding the application component.


    Example:


    1. List available templates at /templates/application_components endpoint and choose the one desired.

    1. Depending on the template, it may be necessary to attach required/optional properties in the request body. For example, a template property defined as:

       "properties": [
    {
    "name": "groupId",
    "description": "Base Java package",
    "type": "string",
    "required": true
    }
    ]

    is mandatory and will be used like this:


       "properties": {
    "groupId": "com.example"
    }

    1. Assemble and send final request, for example:

       {
    "name": "example-comp1",
    "description": "example-comp1",
    "scm": {
    "action": "CREATE",
    "providerId": "codenow",
    "providerType": "codenow",
    "existingRepository": false,
    "monoRepository": false,
    "spaceId": "codenow"
    },
    "template": {
    "id": "java-maven-generic",
    "version": "4.1.0",
    "custom": false,
    "properties": {
    "groupId": "com.example"
    }
    }
    }
    1. Any omitted optional parameters will be replaced with default values.

    id stringrequired

    Possible values: non-empty


    An internal identifier of the scaffold selected for library creation.
    It includes information about the selected language, build tool and framework, if specified.
    Available templates can be obtained through the:
    /templates/application_components endpoint for application component or
    /templates/libraries endpoint for library

    version stringrequired

    Possible values: non-empty


    The desired version of the selected template.

    Available templates can be obtained through the:
    /templates/application_components endpoint for application component or
    /templates/libraries endpoint for library

    custom booleanrequired


    A boolean flag indicating whether the template is user-customized. If set to false, the template is provided by CodeNOW.

    Available templates can be obtained through the:
    /templates/application_components endpoint for application component or
    /templates/libraries endpoint for library

    properties

    object


    A map of properties ("key": "value") required for proper template configuration.

    Available templates can be obtained through the:
    /templates/application_components endpoint for application component or
    /templates/libraries endpoint for library

    property name* string

Responses

application-components-create 200 response

Schema

    id stringrequired


    Unique application component ID.

    name stringrequired


    Human readable name of the component.

    description string


    Description of the component.

    templateId string


    ID of the template used for scaffolding the application component.

    state AppComponentState (string)

    Possible values: [CREATING, READY, FAILED, DELETING]


    State of the application component.
    CREATING - Application component is in the process of being created.
    READY - Application component is ready to be used.
    FAILED - Application component creation has failed.
    DELETING - Application component is in the process of being deleted.

Loading...