# Attaches a MSSql source to a previously detached dsource.

Endpoint: POST /dsources/mssql/{dsourceId}/attachSource
Version: 3.30.0
Security: ApiKeyAuth

## Security:

  - `ApiKeyAuth` (unknown)
    apiKey in header Authorization

## Path parameters:

  - `dsourceId` (string, required)
    The ID of the dSource.

## Request body:

  - `application/json` (unknown)
    The parameters to attach a MSSql dSource.

## Request fields (application/json):

  - `source_id` (string, required)
    Id of the source to link.

  - `ppt_repository` (string, required)
    Id of the SQL instance on the PPT environment that we want to use for pre-provisioning.

  - `sync_strategy_managed_type` (string)
    MSSQL specific parameters for source based sync strategy.:
* `external` - MSSQL specific parameters for externally managed source based sync strategy.
* `delphix` - MSSQL specific parameters for delphix managed source based sync strategy.
    Enum: "external", "delphix"

  - `mssql_user_environment_reference` (string)
    Reference to the source environment user to use for linking.

  - `mssql_user_domain_username` (string)
    The username for the source DB user.

  - `mssql_user_domain_password` (string)
    Password for the database user.

  - `mssql_user_domain_vault_username` (string)
    Delphix display name for the vault user.
    Example: my-vault

  - `mssql_user_domain_vault` (string)
    The name or reference of the vault from which to read the database credentials.

  - `mssql_user_domain_hashicorp_vault_engine` (string)
    Vault engine name where the credential is stored.

  - `mssql_user_domain_hashicorp_vault_secret_path` (string)
    Path in the vault engine where the credential is stored.

  - `mssql_user_domain_hashicorp_vault_username_key` (string)
    Hashicorp vault key for the username in the key-value store.

  - `mssql_user_domain_hashicorp_vault_secret_key` (string)
    Hashicorp vault key for the password in the key-value store.

  - `mssql_user_domain_azure_vault_name` (string)
    Azure key vault name.

  - `mssql_user_domain_azure_vault_username_key` (string)
    Azure vault key for the username in the key-value store.

  - `mssql_user_domain_azure_vault_secret_key` (string)
    Azure vault key for the password in the key-value store.

  - `mssql_user_domain_cyberark_vault_query_string` (string)
    Query to find a credential in the CyberArk vault.

  - `mssql_database_username` (string)
    The username for the source DB user.

  - `mssql_database_password` (string)
    Password for the database user.

  - `delphix_managed_backup_compression_enabled` (boolean)
    Specify whether the backups taken should be compressed or uncompressed when Delphix managed option is selected.

  - `delphix_managed_backup_policy` (string)
    Specify which node of an availability group to run the copy-only full backup on:
* `primary` - Backups only go to the primary node.
* `secondary_only` - Backups only go to secondary nodes. If secondary nodes are down, backups will fail.
* `prefer_secondary` - Backups go to secondary nodes, but if secondary nodes are down, backups will go to the primary node.
    Enum: "primary", "secondary_only", "prefer_secondary"

  - `external_managed_validate_sync_mode` (string)
    Specifies the backup types ValidatedSync will use to synchronize the dSource with the source database
    Enum: "TRANSACTION_LOG", "FULL_OR_DIFFERENTIAL", "FULL", "NONE"

  - `external_managed_shared_backup_locations` (array)
    Shared source database backup locations.

  - `external_netbackup_config_master_name` (string)
    The master server name of this NetBackup configuration.

  - `external_netbackup_config_source_client_name` (string)
    The source's client server name of this NetBackup configuration.

  - `external_netbackup_config_params` (object)
    NetBackup configuration parameter overrides.

  - `external_netbackup_config_templates` (string)
    Optional config template selection for NetBackup configurations. If set, external_netbackup_config_params will be ignored.

  - `external_commserve_host_name` (string)
    The commserve host name of this Commvault configuration.

  - `external_commvault_config_source_client_name` (string)
    The source client name of this Commvault configuration.

  - `external_commvault_config_staging_client_name` (string)
    The staging client name of this Commvault configuration.

  - `external_commvault_config_params` (object)
    Commvault configuration parameter overrides.

  - `external_commvault_config_templates` (string)
    Optional config template selection for Commvault configurations. If set, configParams will be ignored.

  - `encryption_key` (string)
    The encryption key to use when restoring encrypted backups.

  - `source_host_user` (string)
    ID or user reference of the host OS user to use for linking.

  - `ppt_host_user` (string)
    Reference of the host OS user on the PPT host to use for linking.

  - `staging_pre_script` (string)
    A user-provided PowerShell script or executable to run prior to restoring from a backup during pre-provisioning.

  - `staging_post_script` (string)
    A user-provided PowerShell script or executable to run after restoring from a backup during pre-provisioning.

  - `ops_pre_sync` (array)
    Operations to perform before syncing the created dSource. These operations can quiesce any data prior to syncing.

  - `ops_pre_sync.name` (string)

  - `ops_pre_sync.command` (string)

  - `ops_pre_sync.shell` (string)
    Enum: "bash", "shell", "expect", "ps", "psd"

  - `ops_pre_sync.credentials_env_vars` (array)
    List of environment variables that will contain credentials for this operation.

  - `ops_pre_sync.credentials_env_vars.base_var_name` (string, required)
    Base name of the environment variables. Variables are named by appending '_USER', '_PASSWORD', '_PUBKEY' and '_PRIVKEY' to this base name, respectively. Variables whose values are not entered or are not present in the type of credential or vault selected, will not be set.

  - `ops_pre_sync.credentials_env_vars.password` (string)
    Password to assign to the environment variables.
    Example: password

  - `ops_pre_sync.credentials_env_vars.vault_username` (string)
    Delphix display name for the vault user.
    Example: my-vault

  - `ops_pre_sync.credentials_env_vars.vault` (string)
    The name or reference of the vault to assign to the environment variables.
    Example: 1-VAULT-1

  - `ops_pre_sync.credentials_env_vars.hashicorp_vault_engine` (string)
    Vault engine name where the credential is stored.
    Example: kv

  - `ops_pre_sync.credentials_env_vars.hashicorp_vault_secret_path` (string)
    Path in the vault engine where the credential is stored.
    Example: oracle-env

  - `ops_pre_sync.credentials_env_vars.hashicorp_vault_username_key` (string)
    Hashicorp vault key for the username in the key-value store.
    Example: username

  - `ops_pre_sync.credentials_env_vars.hashicorp_vault_secret_key` (string)
    Hashicorp vault key for the password in the key-value store.
    Example: secret

  - `ops_pre_sync.credentials_env_vars.azure_vault_name` (string)
    Azure key vault name.
    Example: azure_vault

  - `ops_pre_sync.credentials_env_vars.azure_vault_username_key` (string)
    Azure vault key in the key-value store.
    Example: username

  - `ops_pre_sync.credentials_env_vars.azure_vault_secret_key` (string)
    Azure vault key in the key-value store.
    Example: secret

  - `ops_pre_sync.credentials_env_vars.cyberark_vault_query_string` (string)
    Query to find a credential in the CyberArk vault.
    Example: Safe=Test;Folder=Test;Object=Test

  - `ops_pre_sync.credentials_env_vars.credential_type` (string)
    Credential type of the credential environment variable
    Example: PasswordCredential

  - `ops_pre_sync.credentials_env_vars.element_id` (string)
    Element ID of the credential environment variable. Omit to create a new credential. Include an existing element_id to update that credential. Any existing credential whose element_id is omitted from the request will be deleted. An element_id that does not match any existing credential is silently ignored.
    Example: 35

  - `ops_pre_sync.credentials_env_vars.type` (string)
    Type of the credential environment variable
    Example: CredentialsEnvVars

  - `ops_pre_sync.hook_template_id` (string)
    ID of the hook template

  - `ops_post_sync` (array)
    Operations to perform after syncing a created dSource.

## Request examples:

  - `Minimal Request (Without Optionals)` (unknown)
    The above request example is intended for an MSSql Database attach operation without including optional properties

  - `Full Request` (unknown)
    The above request example is intended for an MSSql Database attach operation with all possible parameters.

## Response 200:

  - `200` (unknown)
    OK

## Response 200 fields (application/json):

  - `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.tags.key` (string, required)
    Key of the tag
    Example: key-1

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

  - `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.

