# Create a new VDB Group.

Endpoint: POST /vdb-groups
Version: 3.30.0
Security: ApiKeyAuth

## Security:

  - `ApiKeyAuth` (unknown)
    apiKey in header Authorization

## Request body:

  - `application/json` (unknown)
    The parameters to create a VDB Group.

## Request fields (application/json):

  - `name` (string, required)
    The name of the VDB group.

  - `vdb_ids` (array)
    The list of VDB IDs to include in the group.

  - `vdbs` (array)
    Dictates order of operations on VDBs. Operations can be performed in parallel  for all VDBs or sequentially. Below are possible valid and invalid orderings given an example  VDB group with 3 vdbs (A, B, and C). Valid: {"vdb_id":"vdb-1", "order":"1"} {"vdb_id":"vdb-2", order:"1"} {vdb_id:"vdb-3", order:"1"} (parallel) {vdb_id:"vdb-1", order:"1"} {vdb_id:"vdb-2", order:"2"} {vdb_id:"vdb-3", order:"3"} (sequential) Invalid: {vdb_id:"vdb-1", order:"A"} {vdb_id:"vdb-2", order:"B"} {vdb_id:"vdb-3", order:"C"} (sequential) In the sequential case the vdbs with priority 1 is the first to be started and the last to be stopped. This value is set on creation of VDB groups.

  - `vdbs.vdb_id` (string)
    Vdb id

  - `vdbs.order` (integer)
    Dictates order of operations on VDBs. Operations can be performed in parallel  for all VDBs or sequentially. Below are possible valid and invalid orderings given an example  VDB group with 3 vdbs (A, B, and C). Valid: {"vdb_id":"vdb-1", "order":"1"} {"vdb_id":"vdb-2", order:"1"} {vdb_id:"vdb-3", order:"1"} (parallel) {vdb_id:"vdb-1", order:"1"} {vdb_id:"vdb-2", order:"2"} {vdb_id:"vdb-3", order:"3"} (sequential) Invalid: {vdb_id:"vdb-1", order:"A"} {vdb_id:"vdb-2", order:"B"} {vdb_id:"vdb-3", order:"C"} (sequential) In the sequential case the vdbs with priority 1 is the first to be started and the last to be stopped. This value is set on creation of VDB groups.

  - `tags` (array)
    The tags to be created for VDB Group.

  - `tags.key` (string, required)
    Key of the tag
    Example: key-1

  - `tags.value` (string, required)
    Value of the tag
    Example: value-1

  - `make_current_account_owner` (boolean)
    Whether the account creating this VDB group must be configured as owner of the VDB group.

  - `refresh_immediately` (boolean)
    If true, VDB Group will be refreshed immediately after creation.

## Response 201:

  - `201` (unknown)
    VDB Group Created.

## Response 201 fields (application/json):

  - `vdb_group` (object)
    A collection of virtual databases and datesets.

  - `vdb_group.id` (string, required)
    A unique identifier for the entity.
    Example: 123

  - `vdb_group.name` (string, required)
    A unique name for the entity.
    Example: my-first-vdb-group

  - `vdb_group.vdb_ids` (array)
    The list of VDB IDs in this VDB Group.
    Example: ["vdb-123","vdb-456"]

  - `vdb_group.is_locked` (boolean)
    Indicates whether the VDB Group is locked.
    Example: false

  - `vdb_group.locked_by` (integer)
    The Id of the account that locked the VDB Group.
    Example: 1

  - `vdb_group.locked_by_name` (string)
    The name of the account that locked the VDB Group.
    Example: admin

  - `vdb_group.vdb_group_source` (string)
    Source of the vdb group, default is DCT. In case of self-service container, this value would be ENGINE.
    Enum: "DCT", "ENGINE"

  - `vdb_group.ss_data_layout_id` (string)
    Data-layout Id for engine-managed vdb groups.

  - `vdb_group.vdbs` (array)
    Dictates order of operations on VDBs. Operations can be performed in parallel  for all VDBs or sequentially. Below are possible valid and invalid orderings given an example  VDB group with 3 vdbs (A, B, and C). Valid: {"vdb_id":"vdb-1", "order":"1"} {"vdb_id":"vdb-2", order:"1"} {vdb_id:"vdb-3", order:"1"} (parallel) {vdb_id:"vdb-1", order:"1"} {vdb_id:"vdb-2", order:"2"} {vdb_id:"vdb-3", order:"3"} (sequential) Invalid: {vdb_id:"vdb-1", order:"A"} {vdb_id:"vdb-2", order:"B"} {vdb_id:"vdb-3", order:"C"} (sequential) In the sequential case the vdbs with priority 1 is the first to be started and the last to be stopped. This value is set on creation of VDB groups.

  - `vdb_group.vdbs.vdb_id` (string)
    Vdb id

  - `vdb_group.vdbs.order` (integer)
    Dictates order of operations on VDBs. Operations can be performed in parallel  for all VDBs or sequentially. Below are possible valid and invalid orderings given an example  VDB group with 3 vdbs (A, B, and C). Valid: {"vdb_id":"vdb-1", "order":"1"} {"vdb_id":"vdb-2", order:"1"} {vdb_id:"vdb-3", order:"1"} (parallel) {vdb_id:"vdb-1", order:"1"} {vdb_id:"vdb-2", order:"2"} {vdb_id:"vdb-3", order:"3"} (sequential) Invalid: {vdb_id:"vdb-1", order:"A"} {vdb_id:"vdb-2", order:"B"} {vdb_id:"vdb-3", order:"C"} (sequential) In the sequential case the vdbs with priority 1 is the first to be started and the last to be stopped. This value is set on creation of VDB groups.

  - `vdb_group.vdbs.vdb_name` (string)

  - `vdb_group.vdbs.last_refresh_time_with_group_refresh` (string)
    The last time the VDB was successfully refreshed as a part of VDB Group refresh operation in UTC timezone.
    Example: 2022-05-29T15:00:00.000Z

  - `vdb_group.vdbs.in_sync` (boolean)
    Indicates if the VDB is in sync with the VDB Group or not. If this VDB is was last refreshed as part of the VDB Group then this value will be true.

  - `vdb_group.database_type` (string)
    The database type of the VDB Group. If all VDBs in the group are of the same database_type, this field will be set to that type. If the VDBs are of different database_type, this field will be set to 'Mixed'.
    Example: Oracle

  - `vdb_group.status` (string)
    The status of the VDB Group. If all VDBs in the VDB Group have the same status, this field will be set to that status. If the VDBs have different statuses, this field will be set to 'Mixed'.
    Example: RUNNING

  - `vdb_group.last_successful_refresh_to_bookmark_id` (string)
    The bookmark ID to which the VDB Group was last successfully refreshed.
    Example: bookmark-123

  - `vdb_group.last_successful_refresh_time` (string)
    The time at which the VDB Group was last successfully refreshed.
    Example: 2021-05-01T08:51:34.148Z

  - `vdb_group.tags` (array)

  - `vdb_group.tags.key` (string, required)
    Key of the tag
    Example: key-1

  - `vdb_group.tags.value` (string, required)
    Value of the tag
    Example: value-1

  - `job` (object)
    An asynchronous task.

  - `job.id` (string)
    The Job entity ID.
    Example: job-123

  - `job.status` (string)
    The status of the job.
    Enum: "PENDING", "STARTED", "TIMEDOUT", "RUNNING", "CANCELED", "FAILED", "SUSPENDED", "WAITING", "COMPLETED", "ABANDONED"

  - `job.is_waiting_for_telemetry` (boolean)
    Indicates that the operations performed by this Job have completed successfully, but the object changes are not yet reflected. This is only set when when the JOB is in STARTED status, with the guarantee that the job will not transition to the FAILED status. Note that this flag will likely be replaced with a new status in future API versions and be deprecated.

  - `job.type` (string)
    The type of job being done.
    Example: DB_REFRESH

  - `job.localized_type` (string)
    The i18n translated type of job being done.
    Example: DB Refresh

  - `job.error_details` (string)
    Details about the failure for FAILED jobs.
    Example: Unable to connect to the engine.

  - `job.warning_message` (string)
    Warnings for the job.
    Example: Failed to remove local MaskingJob, engineId: 3 localMaskingJobId: 7.

  - `job.target_id` (string)
    A reference to the job's target.
    Example: vdb-123

  - `job.target_name` (string)
    A reference to the job's target name.
    Example: vdb

  - `job.work_source_id` (string)
    The ID of the entity that initiated this job (e.g. a policy ID), if applicable.

  - `job.work_source_name` (string)
    The name of the entity that initiated this job, if applicable.

  - `job.work_source_type` (string)
    The origin of the operation that created this job. Null for DCT-initiated operations (attributed via account_id). DIRECT means the action was performed directly on the engine, bypassing DCT; POLICY means an automated policy triggered it; SYSTEM means it was engine-internal.
    Enum: "DIRECT", "POLICY", "SYSTEM"

  - `job.start_time` (string)
    The time the job started executing.
    Example: 2022-01-02T05:11:24.148Z

  - `job.update_time` (string)
    The time the job was last updated.
    Example: 2022-01-02T06:11:24.148Z

  - `job.trace_id` (string)
    traceId of the request which created this Job

  - `job.engine_ids` (array)
    IDs of the engines this Job is executing on.

  - `job.tags` (array)

  - `job.engines` (array)

  - `job.engines.engine_id` (string)

  - `job.engines.engine_name` (string)

  - `job.account_id` (integer)
    The ID of the account who initiated this job.
    Example: 1

  - `job.account_name` (string)
    The account name which initiated this job. It can be either firstname and lastname combination or firstname or lastname or username or email address or Account-.
    Example: User 1

  - `job.compliance_node_id` (string)
    The ID of the associated compliance node, if applicable.

  - `job.compliance_node_name` (string)
    The name of the associated compliance node, if applicable.

  - `job.percent_complete` (integer)
    Completion percentage of the Job.
    Example: 50

  - `job.virtualization_tasks` (array)

  - `job.virtualization_tasks.id` (string)

  - `job.virtualization_tasks.parent_job_id` (string)

  - `job.virtualization_tasks.start_time` (string)

  - `job.virtualization_tasks.end_time` (string)

  - `job.virtualization_tasks.title` (string)

  - `job.virtualization_tasks.percent_complete` (integer)

  - `job.virtualization_tasks.events` (array)

  - `job.virtualization_tasks.events.message_details` (string)

  - `job.virtualization_tasks.events.message_action` (string)

  - `job.virtualization_tasks.events.message_command_output` (string)

  - `job.virtualization_tasks.status` (string)
    Enum: "PENDING", "STARTED", "TIMEDOUT", "RUNNING", "CANCELED", "FAILED", "SUSPENDED", "WAITING", "COMPLETED", "ABANDONED"

  - `job.tasks` (array)

  - `job.tasks.id` (string)

  - `job.tasks.parent_job_id` (string)

  - `job.tasks.start_time` (string)

  - `job.tasks.end_time` (string)

  - `job.tasks.title` (string)

  - `job.tasks.percent_complete` (integer)

  - `job.tasks.events` (array)

  - `job.tasks.events.message_details` (string)

  - `job.tasks.events.message_action` (string)

  - `job.tasks.events.message_command_output` (string)

  - `job.tasks.events.timestamp` (string)
    When this specific event occurred. Absent/null for events persisted before this field was added (no backfill) and for any producer not yet updated to set it.

  - `job.tasks.status` (string)
    Enum: "PENDING", "STARTED", "TIMEDOUT", "RUNNING", "CANCELED", "FAILED", "SUSPENDED", "WAITING", "COMPLETED", "ABANDONED"

  - `job.execution_id` (string)
    The ID of the associated masking execution, if any.

  - `job.result_type` (string)
    The type of the job result. This is the type of the object present in the result.

  - `job.result` (object)
    The result of the job execution. This is JSON serialized string of the result object whose type is specified by result_type property.

  - `job.parent_job_id` (string)
    The ID of the parent job, if this job was triggered by another job.

