Added in [API level 37.2](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Also in [C Extensions 24](https://developer.android.com/sdkExtensions)

# Builder

*** ** * ** ***

```
class Builder
```

|---|---|
| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html) ||
| ↳ | [android.security.NetworkSecurityPolicy.Builder](https://developer.android.com/reference/kotlin/android/security/NetworkSecurityPolicy.Builder#) |

A builder for a `https://developer.android.com/reference/kotlin/android/security/NetworkSecurityPolicy`.

## Summary

| Public constructors ||
|---|---|
| `https://developer.android.com/reference/kotlin/android/security/NetworkSecurityPolicy.Builder#Builder(android.content.Context)(appContext: https://developer.android.com/reference/kotlin/android/content/Context.html#)` Creates a builder for the network security policy. |
| `https://developer.android.com/reference/kotlin/android/security/NetworkSecurityPolicy.Builder#Builder(android.content.Context,%20kotlin.Boolean)(appContext: https://developer.android.com/reference/kotlin/android/content/Context.html#, inheritNetworkSecurityConfig: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)` Creates a builder for the network security policy. |

| Public methods ||
|---|---|
| [NetworkSecurityPolicy.Builder](https://developer.android.com/reference/kotlin/android/security/NetworkSecurityPolicy.Builder#) | `https://developer.android.com/reference/kotlin/android/security/NetworkSecurityPolicy.Builder#addDomainConfig(android.security.net.config.Domain,%20android.security.net.config.NetworkSecurityConfig)(domain: https://developer.android.com/reference/kotlin/android/security/net/config/Domain, config: https://developer.android.com/reference/kotlin/android/security/net/config/NetworkSecurityConfig)` Adds a config for the provided domain (see [domain-config](https://developer.android.com/privacy-and-security/security-config#domain-config) docs). |
| [NetworkSecurityPolicy](https://developer.android.com/reference/kotlin/android/security/NetworkSecurityPolicy) | `https://developer.android.com/reference/kotlin/android/security/NetworkSecurityPolicy.Builder#build()()` Creates a `https://developer.android.com/reference/kotlin/android/security/NetworkSecurityPolicy` with the arguments provided to this builder. |
| [NetworkSecurityPolicy.Builder](https://developer.android.com/reference/kotlin/android/security/NetworkSecurityPolicy.Builder#) | `https://developer.android.com/reference/kotlin/android/security/NetworkSecurityPolicy.Builder#setBaseConfig(android.security.net.config.NetworkSecurityConfig)(config: https://developer.android.com/reference/kotlin/android/security/net/config/NetworkSecurityConfig)` Sets the base config for this network security policy (see [base-config](https://developer.android.com/privacy-and-security/security-config#base-config) docs). |
| [NetworkSecurityPolicy.Builder](https://developer.android.com/reference/kotlin/android/security/NetworkSecurityPolicy.Builder#) | `https://developer.android.com/reference/kotlin/android/security/NetworkSecurityPolicy.Builder#setLocalhostConfig(android.security.net.config.NetworkSecurityConfig)(config: https://developer.android.com/reference/kotlin/android/security/net/config/NetworkSecurityConfig)` Sets the localhost config for this network security policy (see [Localhost config](https://developer.android.com/privacy-and-security/security-config#Localhost) docs). |

## Public constructors

### Builder

Added in [API level 37.2](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Also in [C Extensions 24](https://developer.android.com/sdkExtensions)

```
Builder(appContext: Context)
```

Creates a builder for the network security policy. The builder is initialized with default values of the app's SDK target level.

| Parameters ||
|---|---|
| `appContext` | [Context](https://developer.android.com/reference/kotlin/android/content/Context.html#): the application `https://developer.android.com/reference/kotlin/android/content/Context.html#`. Must not be `null`. |

### Builder

Added in [API level 37.2](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Also in [C Extensions 24](https://developer.android.com/sdkExtensions)

```
Builder(
    appContext: Context, 
    inheritNetworkSecurityConfig: Boolean)
```

Creates a builder for the network security policy. The builder is initialized with either the content of the app's Network Security Config XML, or with the default values of the app's SDK target level.

| Parameters ||
|---|---|
| `appContext` | [Context](https://developer.android.com/reference/kotlin/android/content/Context.html#): the application `https://developer.android.com/reference/kotlin/android/content/Context.html#`. Must not be `null`. |
| `inheritNetworkSecurityConfig` | [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html): if true, initialize the builder with the content of the app's network security config. If false, initialize the builder with the default values of the app's SDK level. |

## Public methods

### addDomainConfig

Added in [API level 37.2](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Also in [C Extensions 24](https://developer.android.com/sdkExtensions)

```
fun addDomainConfig(
    domain: Domain, 
    config: NetworkSecurityConfig
): NetworkSecurityPolicy.Builder
```

Adds a config for the provided domain (see [domain-config](https://developer.android.com/privacy-and-security/security-config#domain-config) docs). Any existing config for the domain will be replaced.

| Parameters ||
|---|---|
| `domain` | [Domain](https://developer.android.com/reference/kotlin/android/security/net/config/Domain): the domain. Must not be `null`. |
| `config` | [NetworkSecurityConfig](https://developer.android.com/reference/kotlin/android/security/net/config/NetworkSecurityConfig): the config to use as the domain config. This value cannot be `null`. |

| Return ||
|---|---|
| `https://developer.android.com/reference/kotlin/android/security/NetworkSecurityPolicy.Builder#` | the builder. This value cannot be `null`. |

**See Also**

- `https://developer.android.com/reference/kotlin/android/security/NetworkSecurityPolicy.Builder#setLocalhostConfig(android.security.net.config.NetworkSecurityConfig)`

### build

Added in [API level 37.2](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Also in [C Extensions 24](https://developer.android.com/sdkExtensions)

```
fun build(): NetworkSecurityPolicy
```

Creates a `https://developer.android.com/reference/kotlin/android/security/NetworkSecurityPolicy` with the arguments provided to this builder.

| Return ||
|---|---|
| `https://developer.android.com/reference/kotlin/android/security/NetworkSecurityPolicy` | a `https://developer.android.com/reference/kotlin/android/security/NetworkSecurityPolicy` This value cannot be `null`. |

### setBaseConfig

Added in [API level 37.2](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Also in [C Extensions 24](https://developer.android.com/sdkExtensions)

```
fun setBaseConfig(config: NetworkSecurityConfig): NetworkSecurityPolicy.Builder
```

Sets the base config for this network security policy (see [base-config](https://developer.android.com/privacy-and-security/security-config#base-config) docs). If unset, the base-config in the Network Security Configuration XML file of the app provided at Builder construction is used.

| Parameters ||
|---|---|
| `config` | [NetworkSecurityConfig](https://developer.android.com/reference/kotlin/android/security/net/config/NetworkSecurityConfig): the config to use as the base config. This value cannot be `null`. |

| Return ||
|---|---|
| `https://developer.android.com/reference/kotlin/android/security/NetworkSecurityPolicy.Builder#` | the builder. This value cannot be `null`. |

### setLocalhostConfig

Added in [API level 37.2](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Also in [C Extensions 24](https://developer.android.com/sdkExtensions)

```
fun setLocalhostConfig(config: NetworkSecurityConfig): NetworkSecurityPolicy.Builder
```

Sets the localhost config for this network security policy (see [Localhost config](https://developer.android.com/privacy-and-security/security-config#Localhost) docs).

| Parameters ||
|---|---|
| `config` | [NetworkSecurityConfig](https://developer.android.com/reference/kotlin/android/security/net/config/NetworkSecurityConfig): the config to use as the localhost config. This value cannot be `null`. |

| Return ||
|---|---|
| `https://developer.android.com/reference/kotlin/android/security/NetworkSecurityPolicy.Builder#` | the builder. This value cannot be `null`. |