Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Ctors](https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#pubctors) \| [Methods](https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#inhmethods)

# GetSchemaResponse.Builder

*** ** * ** ***

` public static final class GetSchemaResponse.Builder `   
` extends https://developer.android.com/reference/java/lang/Object ` ` `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.app.appsearch.GetSchemaResponse.Builder |

<br />

*** ** * ** ***

Builder for `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse` objects.

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#Builder()() ` Creates a new `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` |
| ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#Builder(android.app.appsearch.GetSchemaResponse)(https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse getSchemaResponse) ` Creates a new `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` from the given `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse`. |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#addSchema(android.app.appsearch.AppSearchSchema)(https://developer.android.com/reference/android/app/appsearch/AppSearchSchema schema) ` Adds one `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema` to the schema list. |
| ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#addSchemaTypeNotDisplayedBySystem(java.lang.String)(https://developer.android.com/reference/java/lang/String schemaType) ` Sets whether or not documents from the provided `schemaType` will be displayed and visible on any system UI surface. |
| ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse` | ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#build()() ` Builds a `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse` object. |
| ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#clearPubliclyVisibleSchema(java.lang.String)(https://developer.android.com/reference/java/lang/String schemaType) ` Clears the visibility setting that specifies that the given schema type should be publicly available to packages which already have visibility to a specified package. |
| ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#clearRequiredPermissionsForSchemaTypeVisibility(java.lang.String)(https://developer.android.com/reference/java/lang/String schemaType) ` Clears the set of required `https://developer.android.com/reference/android/Manifest.permission` combinations to read the given schema type. |
| ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#clearSchemaTypeNotDisplayedBySystem(java.lang.String)(https://developer.android.com/reference/java/lang/String schemaType) ` Clears the visibility setting for the given schema type that prevents the schema from being displayed and visible on any system UI surface. |
| ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#clearSchemaTypeVisibleToConfigs(java.lang.String)(https://developer.android.com/reference/java/lang/String schemaType) ` Clears the `https://developer.android.com/reference/android/app/appsearch/SchemaVisibilityConfig`s for the given schema type which allow visibility to the schema if the caller matches ALL visibility requirements of ANY `https://developer.android.com/reference/android/app/appsearch/SchemaVisibilityConfig`. |
| ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#clearSchemaTypeVisibleToPackages(java.lang.String)(https://developer.android.com/reference/java/lang/String schemaType) ` Clears the set of packages that can read the given schema type. |
| ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#clearSchemaTypeWipeoutAccountPropertyPaths(java.lang.String)(https://developer.android.com/reference/java/lang/String schemaType) ` Clears all account `https://developer.android.com/reference/android/app/appsearch/PropertyPath` for the given `schemaType`. |
| ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#clearSchemas()() ` Clears all `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema`s from the list of schemas. |
| ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#setPubliclyVisibleSchema(java.lang.String,%20android.app.appsearch.PackageIdentifier)(https://developer.android.com/reference/java/lang/String schemaType, https://developer.android.com/reference/android/app/appsearch/PackageIdentifier packageIdentifier) ` Specify that the schema should be publicly available, to packages which already have visibility to `packageIdentifier`. |
| ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#setRequiredPermissionsForSchemaTypeVisibility(java.lang.String,%20java.util.Set<java.util.Set<java.lang.Integer>>)(https://developer.android.com/reference/java/lang/String schemaType, https://developer.android.com/reference/java/util/Set<https://developer.android.com/reference/java/util/Set<https://developer.android.com/reference/java/lang/Integer>> visibleToPermissionSets) ` Sets a set of required `https://developer.android.com/reference/android/Manifest.permission` combinations to the given schema type. |
| ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#setSchemaTypeVisibleToConfigs(java.lang.String,%20java.util.Set<android.app.appsearch.SchemaVisibilityConfig>)(https://developer.android.com/reference/java/lang/String schemaType, https://developer.android.com/reference/java/util/Set<https://developer.android.com/reference/android/app/appsearch/SchemaVisibilityConfig> visibleToConfigs) ` Sets the documents from the provided `schemaType` can be read by the caller if they match the ALL visibility requirements set in `https://developer.android.com/reference/android/app/appsearch/SchemaVisibilityConfig`. |
| ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#setSchemaTypeVisibleToPackages(java.lang.String,%20java.util.Set<android.app.appsearch.PackageIdentifier>)(https://developer.android.com/reference/java/lang/String schemaType, https://developer.android.com/reference/java/util/Set<https://developer.android.com/reference/android/app/appsearch/PackageIdentifier> packageIdentifiers) ` Sets whether or not documents from the provided `schemaType` can be read by the specified package. |
| ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#setSchemaTypeWipeoutAccountPropertyPaths(java.lang.String,%20java.util.Set<android.app.appsearch.PropertyPath>)(https://developer.android.com/reference/java/lang/String schemaType, https://developer.android.com/reference/java/util/Set<https://developer.android.com/reference/android/app/appsearch/PropertyPath> accountPropertyPaths) ` Sets the account `https://developer.android.com/reference/android/app/appsearch/PropertyPath` for the given `schemaType`. |
| ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | ` https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#setVersion(int)(int version) ` Sets the database overall schema version. |

### Inherited methods

From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.

## Public constructors

### Builder

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [T Extensions 17](https://developer.android.com/sdkExtensions)

```
public Builder ()
```

Creates a new `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder`

<br />

### Builder

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [T Extensions 17](https://developer.android.com/sdkExtensions)

```
public Builder (GetSchemaResponse getSchemaResponse)
```

Creates a new `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` from the given `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse`.

<br />

| Parameters ||
|---|---|
| `getSchemaResponse` | `GetSchemaResponse`: This value cannot be `null`. <br /> |

## Public methods

### addSchema

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public GetSchemaResponse.Builder addSchema (AppSearchSchema schema)
```

Adds one `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema` to the schema list.

<br />

| Parameters ||
|---|---|
| `schema` | `AppSearchSchema`: This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | This value cannot be `null`. <br /> |

### addSchemaTypeNotDisplayedBySystem

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [T Extensions 3](https://developer.android.com/sdkExtensions)

```
public GetSchemaResponse.Builder addSchemaTypeNotDisplayedBySystem (String schemaType)
```

Sets whether or not documents from the provided `schemaType` will be displayed and visible on any system UI surface.

<br />

| Parameters ||
|---|---|
| `schemaType` | `String`: The name of an `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema` within the same `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse`, which won't be displayed by system. This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | This value cannot be `null`. <br /> |

### build

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public GetSchemaResponse build ()
```

Builds a `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse` object.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse` | This value cannot be `null`. <br /> |

### clearPubliclyVisibleSchema

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [T Extensions 17](https://developer.android.com/sdkExtensions)

```
public GetSchemaResponse.Builder clearPubliclyVisibleSchema (String schemaType)
```

Clears the visibility setting that specifies that the given schema type should be publicly available to packages which already have visibility to a specified package.

<br />

| Parameters ||
|---|---|
| `schemaType` | `String`: This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#setPubliclyVisibleSchema(java.lang.String,%20android.app.appsearch.PackageIdentifier)`

### clearRequiredPermissionsForSchemaTypeVisibility

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [T Extensions 17](https://developer.android.com/sdkExtensions)

```
public GetSchemaResponse.Builder clearRequiredPermissionsForSchemaTypeVisibility (String schemaType)
```

Clears the set of required `https://developer.android.com/reference/android/Manifest.permission` combinations to read the given schema type.

<br />

| Parameters ||
|---|---|
| `schemaType` | `String`: This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#setRequiredPermissionsForSchemaTypeVisibility(java.lang.String,%20java.util.Set<java.util.Set<java.lang.Integer>>)`

### clearSchemaTypeNotDisplayedBySystem

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [T Extensions 17](https://developer.android.com/sdkExtensions)

```
public GetSchemaResponse.Builder clearSchemaTypeNotDisplayedBySystem (String schemaType)
```

Clears the visibility setting for the given schema type that prevents the schema from being displayed and visible on any system UI surface.

<br />

| Parameters ||
|---|---|
| `schemaType` | `String`: This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#addSchemaTypeNotDisplayedBySystem(java.lang.String)`

### clearSchemaTypeVisibleToConfigs

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [T Extensions 17](https://developer.android.com/sdkExtensions)

```
public GetSchemaResponse.Builder clearSchemaTypeVisibleToConfigs (String schemaType)
```

Clears the `https://developer.android.com/reference/android/app/appsearch/SchemaVisibilityConfig`s for the given schema type which allow visibility to the schema if the caller matches ALL visibility requirements of ANY `https://developer.android.com/reference/android/app/appsearch/SchemaVisibilityConfig`.

<br />

| Parameters ||
|---|---|
| `schemaType` | `String`: This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#setSchemaTypeVisibleToConfigs(java.lang.String,%20java.util.Set<android.app.appsearch.SchemaVisibilityConfig>)`

### clearSchemaTypeVisibleToPackages

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [T Extensions 17](https://developer.android.com/sdkExtensions)

```
public GetSchemaResponse.Builder clearSchemaTypeVisibleToPackages (String schemaType)
```

Clears the set of packages that can read the given schema type.

<br />

| Parameters ||
|---|---|
| `schemaType` | `String`: This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#setSchemaTypeVisibleToPackages(java.lang.String,%20java.util.Set<android.app.appsearch.PackageIdentifier>)`

### clearSchemaTypeWipeoutAccountPropertyPaths

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [T Extensions 22](https://developer.android.com/sdkExtensions)

```
public GetSchemaResponse.Builder clearSchemaTypeWipeoutAccountPropertyPaths (String schemaType)
```

Clears all account `https://developer.android.com/reference/android/app/appsearch/PropertyPath` for the given `schemaType`.

<br />

| Parameters ||
|---|---|
| `schemaType` | `String`: The name of the schema type for which to clear account property paths. This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | This value cannot be `null`. <br /> |

### clearSchemas

Added in [API level 36](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [T Extensions 17](https://developer.android.com/sdkExtensions)

```
public GetSchemaResponse.Builder clearSchemas ()
```

Clears all `https://developer.android.com/reference/android/app/appsearch/AppSearchSchema`s from the list of schemas.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | This value cannot be `null`. <br /> |

### setPubliclyVisibleSchema

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [T Extensions 13](https://developer.android.com/sdkExtensions)

```
public GetSchemaResponse.Builder setPubliclyVisibleSchema (String schemaType, 
                PackageIdentifier packageIdentifier)
```

Specify that the schema should be publicly available, to packages which already have visibility to `packageIdentifier`.

<br />

| Parameters ||
|---|---|
| `schemaType` | `String`: the schema to make publicly accessible. This value cannot be `null`. <br /> |
| `packageIdentifier` | `PackageIdentifier`: the package from which the document schema is from. This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/app/appsearch/SetSchemaRequest.Builder#setPubliclyVisibleSchema(java.lang.String,%20android.app.appsearch.PackageIdentifier)`

### setRequiredPermissionsForSchemaTypeVisibility

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [T Extensions 3](https://developer.android.com/sdkExtensions)

```
public GetSchemaResponse.Builder setRequiredPermissionsForSchemaTypeVisibility (String schemaType, 
                Set<Set<Integer>> visibleToPermissionSets)
```

Sets a set of required `https://developer.android.com/reference/android/Manifest.permission` combinations to the given schema type.

The querier could read the `https://developer.android.com/reference/android/app/appsearch/GenericDocument` objects under the `schemaType` if they holds ALL required permissions of ANY of the individual value sets.

For example, if the Map contains `{{permissionA, PermissionB}, {PermissionC, PermissionD}, {PermissionE}}`.

- A querier holds both PermissionA and PermissionB has access.
- A querier holds both PermissionC and PermissionD has access.
- A querier holds only PermissionE has access.
- A querier holds both PermissionA and PermissionE has access.
- A querier holds only PermissionA doesn't have access.
- A querier holds both PermissionA and PermissionC doesn't have access.

<br />

<br />

| Parameters ||
|---|---|
| `schemaType` | `String`: The schema type to set visibility on. This value cannot be `null`. <br /> |
| `visibleToPermissionSets` | `Set`: The Sets of Android permissions that will be required to access the given schema. Value is one of the following: - `https://developer.android.com/reference/android/app/appsearch/SetSchemaRequest#READ_SMS` - `https://developer.android.com/reference/android/app/appsearch/SetSchemaRequest#READ_CALENDAR` - `https://developer.android.com/reference/android/app/appsearch/SetSchemaRequest#READ_CONTACTS` - `https://developer.android.com/reference/android/app/appsearch/SetSchemaRequest#READ_EXTERNAL_STORAGE` - `https://developer.android.com/reference/android/app/appsearch/SetSchemaRequest#READ_HOME_APP_SEARCH_DATA` - `https://developer.android.com/reference/android/app/appsearch/SetSchemaRequest#READ_ASSISTANT_APP_SEARCH_DATA` - `https://developer.android.com/reference/android/app/appsearch/SetSchemaRequest#PRIVATE_COMPUTE_CORE_UID_ACCESS` . This value cannot be `null`. |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/Manifest.permission#READ_SMS`
- `https://developer.android.com/reference/android/Manifest.permission#READ_CALENDAR`
- `https://developer.android.com/reference/android/Manifest.permission#READ_CONTACTS`
- `https://developer.android.com/reference/android/Manifest.permission#READ_EXTERNAL_STORAGE`
- `https://developer.android.com/reference/android/Manifest.permission#READ_HOME_APP_SEARCH_DATA`
- `https://developer.android.com/reference/android/Manifest.permission#READ_ASSISTANT_APP_SEARCH_DATA`

### setSchemaTypeVisibleToConfigs

Added in [API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [T Extensions 13](https://developer.android.com/sdkExtensions)

```
public GetSchemaResponse.Builder setSchemaTypeVisibleToConfigs (String schemaType, 
                Set<SchemaVisibilityConfig> visibleToConfigs)
```

Sets the documents from the provided `schemaType` can be read by the caller if they match the ALL visibility requirements set in `https://developer.android.com/reference/android/app/appsearch/SchemaVisibilityConfig`.

The requirements in a `https://developer.android.com/reference/android/app/appsearch/SchemaVisibilityConfig` is "AND" relationship. A caller must match ALL requirements to access the schema. For example, a caller must hold required permissions AND it is a specified package.

The querier could have access if they match ALL requirements in ANY of the given `https://developer.android.com/reference/android/app/appsearch/SchemaVisibilityConfig`s

For example, if the Set contains `{{PackageA and Permission1}, {PackageB and Permission2}}`.

- A querier from packageA could read if they holds Permission1.
- A querier from packageA could NOT read if they only holds Permission2 instead of Permission1.
- A querier from packageB could read if they holds Permission2.
- A querier from packageC could never read.
- A querier holds both PermissionA and PermissionE has access.

<br />

<br />

| Parameters ||
|---|---|
| `schemaType` | `String`: The schema type to set visibility on. This value cannot be `null`. <br /> |
| `visibleToConfigs` | `Set`: The `https://developer.android.com/reference/android/app/appsearch/SchemaVisibilityConfig`s hold all requirements that a call must to match to access the schema. This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | This value cannot be `null`. <br /> |

### setSchemaTypeVisibleToPackages

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [T Extensions 3](https://developer.android.com/sdkExtensions)

```
public GetSchemaResponse.Builder setSchemaTypeVisibleToPackages (String schemaType, 
                Set<PackageIdentifier> packageIdentifiers)
```

Sets whether or not documents from the provided `schemaType` can be read by the specified package.

Each package is represented by a `https://developer.android.com/reference/android/app/appsearch/PackageIdentifier`, containing a package name and a byte array of type `https://developer.android.com/reference/android/content/pm/PackageManager#CERT_INPUT_SHA256`.

To opt into one-way data sharing with another application, the developer will need to explicitly grant the other application\\u2019s package name and certificate Read access to its data.

For two-way data sharing, both applications need to explicitly grant Read access to one another.

<br />

| Parameters ||
|---|---|
| `schemaType` | `String`: The schema type to set visibility on. This value cannot be `null`. <br /> |
| `packageIdentifiers` | `Set`: Represents the package that has access to the given schema type. This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | This value cannot be `null`. <br /> |

### setSchemaTypeWipeoutAccountPropertyPaths

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Also in [T Extensions 22](https://developer.android.com/sdkExtensions)

```
public GetSchemaResponse.Builder setSchemaTypeWipeoutAccountPropertyPaths (String schemaType, 
                Set<PropertyPath> accountPropertyPaths)
```

Sets the account `https://developer.android.com/reference/android/app/appsearch/PropertyPath` for the given `schemaType`.

These property paths are used to identify data that belongs to an account, which can then be wiped when an account is removed from the system.

If called multiple times for the same `schemaType`, the new paths will be added to the existing ones. To replace the paths, first call `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder#clearSchemaTypeWipeoutAccountPropertyPaths(java.lang.String)`.

<br />

| Parameters ||
|---|---|
| `schemaType` | `String`: The name of the schema type to which these property paths belong. This value cannot be `null`. <br /> |
| `accountPropertyPaths` | `Set`: A Set of `https://developer.android.com/reference/android/app/appsearch/PropertyPath` that point to accounts. This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | This value cannot be `null`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/app/appsearch/SetSchemaRequest.Builder#setSchemaTypeWipeoutAccountPropertyPaths(java.lang.String,%20java.util.Set<android.app.appsearch.PropertyPath>,%20boolean)`

### setVersion

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public GetSchemaResponse.Builder setVersion (int version)
```

Sets the database overall schema version.

Default version is 0

<br />

| Parameters ||
|---|---|
| `version` | `int`: Value is 0 or greater <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/appsearch/GetSchemaResponse.Builder` | This value cannot be `null`. <br /> |