# SecretSyncGitlab

> Resource SecretSyncGitlab in pulumi-infisical.

<!-- Generated from the pulumi-infisical SDK. -->

Resource SecretSyncGitlab in pulumi-infisical.

Pulumi type: `infisical:index/secretSyncGitlab:SecretSyncGitlab`.

`name` is the Pulumi resource name. Nested object fields are documented under that object. They are not arguments of this resource.

## Example

Only required arguments are set. A string in angle brackets stands in for that argument. Any other value is an option or example written in the SDK description.

```ts
import * as infisical from "pulumi-infisical"

const resource = new infisical.SecretSyncGitlab("secretSyncGitlab", {
  connectionId: "<connectionId>",
  destinationConfig: {
    scope: "<scope>",
    targetEnvironment: "<targetEnvironment>",
  },
  environment: "<environment>",
  projectId: "<projectId>",
  secretPath: "<secretPath>",
  syncOptions: {
    initialSyncBehavior: "overwrite-destination",
  },
})
```

## Arguments

| Property            | Type                                        | Required | Description                                                                                      |
| ------------------- | ------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------ |
| `autoSyncEnabled`   | `boolean`                                   | no       | Whether secrets should be automatically synced when changes occur at the source location or not. |
| `connectionId`      | `string`                                    | yes      | The ID of the gitlab Connection to use for syncing.                                              |
| `description`       | `string`                                    | no       | An optional description for the GitLab sync.                                                     |
| `destinationConfig` | `SecretSyncGitlabDestinationConfig (input)` | yes      | The destination configuration for the secret sync.                                               |
| `environment`       | `string`                                    | yes      | The slug of the project environment to sync secrets from.                                        |
| `name`              | `string`                                    | no       | The name of the GitLab sync to create. Must be slug-friendly.                                    |
| `projectId`         | `string`                                    | yes      | The ID of the Infisical project to create the sync in.                                           |
| `secretPath`        | `string`                                    | yes      | The folder path to sync secrets from.                                                            |
| `syncOptions`       | `SecretSyncGitlabSyncOptions (input)`       | yes      | Parameters to modify how secrets are synced.                                                     |

## Outputs

Computed outputs are produced by the provider. They are not constructor arguments.

| Property            | Type                                         | Computed | Description                                                                                      |
| ------------------- | -------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------ |
| `autoSyncEnabled`   | `boolean`                                    | no       | Whether secrets should be automatically synced when changes occur at the source location or not. |
| `connectionId`      | `string`                                     | no       | The ID of the gitlab Connection to use for syncing.                                              |
| `description`       | `string`                                     | no       | An optional description for the GitLab sync.                                                     |
| `destinationConfig` | `SecretSyncGitlabDestinationConfig (output)` | no       | The destination configuration for the secret sync.                                               |
| `environment`       | `string`                                     | no       | The slug of the project environment to sync secrets from.                                        |
| `name`              | `string`                                     | no       | The name of the GitLab sync to create. Must be slug-friendly.                                    |
| `projectId`         | `string`                                     | no       | The ID of the Infisical project to create the sync in.                                           |
| `secretPath`        | `string`                                     | no       | The folder path to sync secrets from.                                                            |
| `syncOptions`       | `SecretSyncGitlabSyncOptions (output)`       | no       | Parameters to modify how secrets are synced.                                                     |

## `SecretSyncGitlabDestinationConfig (input)`

Input object `SecretSyncGitlabDestinationConfig`. Fields below belong to this object, not to the parent.

| Property               | Type      | Required | Description                                                                              |
| ---------------------- | --------- | -------- | ---------------------------------------------------------------------------------------- |
| `groupId`              | `string`  | no       | The GitLab Group ID to sync secrets to. Required when scope is 'group'.                  |
| `groupName`            | `string`  | no       | The GitLab Group Name to sync secrets to. Optional when scope is 'group'.                |
| `projectId`            | `string`  | no       | The GitLab Project ID to sync secrets to. Required when scope is 'project'.              |
| `projectName`          | `string`  | no       | The GitLab Project Name to sync secrets to. Optional when scope is 'project'.            |
| `scope`                | `string`  | yes      | The GitLab scope that secrets should be synced to. Supported options: 'project', 'group' |
| `shouldHideSecrets`    | `boolean` | no       | Whether variables should be hidden                                                       |
| `shouldMaskSecrets`    | `boolean` | no       | Whether variables should be masked in logs                                               |
| `shouldProtectSecrets` | `boolean` | no       | Whether variables should be protected                                                    |
| `targetEnvironment`    | `string`  | yes      | The GitLab environment scope that secrets should be synced to. (default: \*)             |

## `SecretSyncGitlabSyncOptions (input)`

Input object `SecretSyncGitlabSyncOptions`. Fields below belong to this object, not to the parent.

| Property                | Type      | Required | Description                                                                                                                                             |
| ----------------------- | --------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `disableSecretDeletion` | `boolean` | no       | When set to true, Infisical will not remove secrets from GitLab. Enable this option if you intend to manage some secrets manually outside of Infisical. |
| `initialSyncBehavior`   | `string`  | yes      | Specify how Infisical should resolve the initial sync to the destination. Supported options: overwrite-destination                                      |
| `keySchema`             | `string`  | no       | The format to use for structuring secret keys in the GitLab destination.                                                                                |

## `SecretSyncGitlabDestinationConfig (output)`

Output object `SecretSyncGitlabDestinationConfig`. Fields below belong to this object.

| Property               | Type      | Always present | Description                                                                              |
| ---------------------- | --------- | -------------- | ---------------------------------------------------------------------------------------- |
| `groupId`              | `string`  | no             | The GitLab Group ID to sync secrets to. Required when scope is 'group'.                  |
| `groupName`            | `string`  | no             | The GitLab Group Name to sync secrets to. Optional when scope is 'group'.                |
| `projectId`            | `string`  | no             | The GitLab Project ID to sync secrets to. Required when scope is 'project'.              |
| `projectName`          | `string`  | no             | The GitLab Project Name to sync secrets to. Optional when scope is 'project'.            |
| `scope`                | `string`  | yes            | The GitLab scope that secrets should be synced to. Supported options: 'project', 'group' |
| `shouldHideSecrets`    | `boolean` | yes            | Whether variables should be hidden                                                       |
| `shouldMaskSecrets`    | `boolean` | yes            | Whether variables should be masked in logs                                               |
| `shouldProtectSecrets` | `boolean` | yes            | Whether variables should be protected                                                    |
| `targetEnvironment`    | `string`  | yes            | The GitLab environment scope that secrets should be synced to. (default: \*)             |

## `SecretSyncGitlabSyncOptions (output)`

Output object `SecretSyncGitlabSyncOptions`. Fields below belong to this object.

| Property                | Type      | Always present | Description                                                                                                                                             |
| ----------------------- | --------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `disableSecretDeletion` | `boolean` | yes            | When set to true, Infisical will not remove secrets from GitLab. Enable this option if you intend to manage some secrets manually outside of Infisical. |
| `initialSyncBehavior`   | `string`  | yes            | Specify how Infisical should resolve the initial sync to the destination. Supported options: overwrite-destination                                      |
| `keySchema`             | `string`  | no             | The format to use for structuring secret keys in the GitLab destination.                                                                                |
