> ## Documentation Index
> Fetch the complete documentation index at: https://cdktn.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# CSharp: HttpBackendConfig

> CDKTN Core API Reference for HttpBackendConfig in CSharp.

Stores the state using a simple REST client.

State will be fetched via GET, updated via POST, and purged with DELETE.
The method used for updating is configurable.

This backend optionally supports state locking.
When locking support is enabled it will use LOCK and UNLOCK requests providing the lock info in the body.
The endpoint should return a 423: Locked or 409: Conflict with the holding lock info when
it's already taken, 200: OK for success. Any other status will be considered an error.
The ID of the holding lock info will be added as a query parameter to state updates requests.

Read more about this backend in the Terraform docs:
[https://developer.hashicorp.com/terraform/language/settings/backends/http](https://developer.hashicorp.com/terraform/language/settings/backends/http)

## Initializer <a name="Initializer" id="cdktn.HttpBackendConfig.Initializer" />

```csharp theme={null}
using Io.Cdktn;

new HttpBackendConfig {
    string Address,
    string ClientCaCertificatePem = null,
    string ClientCertificatePem = null,
    string ClientPrivateKeyPem = null,
    string LockAddress = null,
    string LockMethod = null,
    string Password = null,
    double RetryMax = null,
    double RetryWaitMax = null,
    double RetryWaitMin = null,
    bool SkipCertVerification = null,
    string UnlockAddress = null,
    string UnlockMethod = null,
    string UpdateMethod = null,
    string Username = null
};
```

## Properties <a name="Properties" id="Properties" />

| **Name**                                                                                                   | **Type**            | **Description**                                                                                                           |
| ---------------------------------------------------------------------------------------------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| <code><a href="#cdktn.HttpBackendConfig.property.address">Address</a></code>                               | <code>string</code> | (Required) The address of the REST endpoint.                                                                              |
| <code><a href="#cdktn.HttpBackendConfig.property.clientCaCertificatePem">ClientCaCertificatePem</a></code> | <code>string</code> | (Optional) A PEM-encoded CA certificate chain used by the client to verify server certificates during TLS authentication. |
| <code><a href="#cdktn.HttpBackendConfig.property.clientCertificatePem">ClientCertificatePem</a></code>     | <code>string</code> | (Optional) A PEM-encoded certificate used by the server to verify the client during mutual TLS (mTLS) authentication.     |
| <code><a href="#cdktn.HttpBackendConfig.property.clientPrivateKeyPem">ClientPrivateKeyPem</a></code>       | <code>string</code> | (Optional) A PEM-encoded private key, required if client\_certificate\_pem is specified.                                  |
| <code><a href="#cdktn.HttpBackendConfig.property.lockAddress">LockAddress</a></code>                       | <code>string</code> | (Optional) The address of the lock REST endpoint.                                                                         |
| <code><a href="#cdktn.HttpBackendConfig.property.lockMethod">LockMethod</a></code>                         | <code>string</code> | (Optional) The HTTP method to use when locking.                                                                           |
| <code><a href="#cdktn.HttpBackendConfig.property.password">Password</a></code>                             | <code>string</code> | (Optional) The password for HTTP basic authentication.                                                                    |
| <code><a href="#cdktn.HttpBackendConfig.property.retryMax">RetryMax</a></code>                             | <code>double</code> | (Optional) The number of HTTP request retries.                                                                            |
| <code><a href="#cdktn.HttpBackendConfig.property.retryWaitMax">RetryWaitMax</a></code>                     | <code>double</code> | (Optional) The maximum time in seconds to wait between HTTP request attempts.                                             |
| <code><a href="#cdktn.HttpBackendConfig.property.retryWaitMin">RetryWaitMin</a></code>                     | <code>double</code> | (Optional) The minimum time in seconds to wait between HTTP request attempts.                                             |
| <code><a href="#cdktn.HttpBackendConfig.property.skipCertVerification">SkipCertVerification</a></code>     | <code>bool</code>   | (Optional) Whether to skip TLS verification.                                                                              |
| <code><a href="#cdktn.HttpBackendConfig.property.unlockAddress">UnlockAddress</a></code>                   | <code>string</code> | (Optional) The address of the unlock REST endpoint.                                                                       |
| <code><a href="#cdktn.HttpBackendConfig.property.unlockMethod">UnlockMethod</a></code>                     | <code>string</code> | (Optional) The HTTP method to use when unlocking.                                                                         |
| <code><a href="#cdktn.HttpBackendConfig.property.updateMethod">UpdateMethod</a></code>                     | <code>string</code> | (Optional) HTTP method to use when updating state.                                                                        |
| <code><a href="#cdktn.HttpBackendConfig.property.username">Username</a></code>                             | <code>string</code> | (Optional) The username for HTTP basic authentication.                                                                    |

***

### `Address`<sup>Required</sup> <a name="Address" id="cdktn.HttpBackendConfig.property.address" />

```csharp theme={null}
public string Address { get; set; }
```

* *Type:* string

(Required) The address of the REST endpoint.

***

### `ClientCaCertificatePem`<sup>Optional</sup> <a name="ClientCaCertificatePem" id="cdktn.HttpBackendConfig.property.clientCaCertificatePem" />

```csharp theme={null}
public string ClientCaCertificatePem { get; set; }
```

* *Type:* string

(Optional) A PEM-encoded CA certificate chain used by the client to verify server certificates during TLS authentication.

***

### `ClientCertificatePem`<sup>Optional</sup> <a name="ClientCertificatePem" id="cdktn.HttpBackendConfig.property.clientCertificatePem" />

```csharp theme={null}
public string ClientCertificatePem { get; set; }
```

* *Type:* string

(Optional) A PEM-encoded certificate used by the server to verify the client during mutual TLS (mTLS) authentication.

***

### `ClientPrivateKeyPem`<sup>Optional</sup> <a name="ClientPrivateKeyPem" id="cdktn.HttpBackendConfig.property.clientPrivateKeyPem" />

```csharp theme={null}
public string ClientPrivateKeyPem { get; set; }
```

* *Type:* string

(Optional) A PEM-encoded private key, required if client\_certificate\_pem is specified.

***

### `LockAddress`<sup>Optional</sup> <a name="LockAddress" id="cdktn.HttpBackendConfig.property.lockAddress" />

```csharp theme={null}
public string LockAddress { get; set; }
```

* *Type:* string

(Optional) The address of the lock REST endpoint.

Defaults to disabled.

***

### `LockMethod`<sup>Optional</sup> <a name="LockMethod" id="cdktn.HttpBackendConfig.property.lockMethod" />

```csharp theme={null}
public string LockMethod { get; set; }
```

* *Type:* string

(Optional) The HTTP method to use when locking.

Defaults to LOCK.

***

### `Password`<sup>Optional</sup> <a name="Password" id="cdktn.HttpBackendConfig.property.password" />

```csharp theme={null}
public string Password { get; set; }
```

* *Type:* string

(Optional) The password for HTTP basic authentication.

***

### `RetryMax`<sup>Optional</sup> <a name="RetryMax" id="cdktn.HttpBackendConfig.property.retryMax" />

```csharp theme={null}
public double RetryMax { get; set; }
```

* *Type:* double

(Optional) The number of HTTP request retries.

Defaults to 2.

***

### `RetryWaitMax`<sup>Optional</sup> <a name="RetryWaitMax" id="cdktn.HttpBackendConfig.property.retryWaitMax" />

```csharp theme={null}
public double RetryWaitMax { get; set; }
```

* *Type:* double

(Optional) The maximum time in seconds to wait between HTTP request attempts.

Defaults to 30.

***

### `RetryWaitMin`<sup>Optional</sup> <a name="RetryWaitMin" id="cdktn.HttpBackendConfig.property.retryWaitMin" />

```csharp theme={null}
public double RetryWaitMin { get; set; }
```

* *Type:* double

(Optional) The minimum time in seconds to wait between HTTP request attempts.

Defaults to 1.

***

### `SkipCertVerification`<sup>Optional</sup> <a name="SkipCertVerification" id="cdktn.HttpBackendConfig.property.skipCertVerification" />

```csharp theme={null}
public bool SkipCertVerification { get; set; }
```

* *Type:* bool

(Optional) Whether to skip TLS verification.

Defaults to false.

***

### `UnlockAddress`<sup>Optional</sup> <a name="UnlockAddress" id="cdktn.HttpBackendConfig.property.unlockAddress" />

```csharp theme={null}
public string UnlockAddress { get; set; }
```

* *Type:* string

(Optional) The address of the unlock REST endpoint.

Defaults to disabled.

***

### `UnlockMethod`<sup>Optional</sup> <a name="UnlockMethod" id="cdktn.HttpBackendConfig.property.unlockMethod" />

```csharp theme={null}
public string UnlockMethod { get; set; }
```

* *Type:* string

(Optional) The HTTP method to use when unlocking.

Defaults to UNLOCK.

***

### `UpdateMethod`<sup>Optional</sup> <a name="UpdateMethod" id="cdktn.HttpBackendConfig.property.updateMethod" />

```csharp theme={null}
public string UpdateMethod { get; set; }
```

* *Type:* string

(Optional) HTTP method to use when updating state.

Defaults to POST.

***

### `Username`<sup>Optional</sup> <a name="Username" id="cdktn.HttpBackendConfig.property.username" />

```csharp theme={null}
public string Username { get; set; }
```

* *Type:* string

(Optional) The username for HTTP basic authentication.

***
