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

# PolicyEngineClient

> PolicyEngineClient API reference.

Package: [`com.coinbase.cdp.resources.policyengine`](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/policyengine/index)

```java theme={null}
public class PolicyEngineClient extends Object
```

## Constructor Details

### `PolicyEngineClient`

```java theme={null}
public PolicyEngineClient(ClientOptions clientOptions)
```

**Parameters:**

`clientOptions` - [ClientOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/ClientOptions)

## Method Details

### `withRawResponse`

```java theme={null}
public WithRawResponsePolicyEngineClient withRawResponse()
```

Get responses with HTTP metadata like headers

**Returns:**

[WithRawResponsePolicyEngineClient](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/policyengine/WithRawResponsePolicyEngineClient)

### `listPolicies`

**Overload 1**

```java theme={null}
public ListPoliciesResponse listPolicies()
```

Lists the policies belonging to the developer's CDP Project. Use the `scope` parameter to filter the policies by scope. The response is paginated, and by default, returns 20 policies per page.

**Returns:**

[ListPoliciesResponse](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/policyengine/types/ListPoliciesResponse)

**Overload 2**

```java theme={null}
public ListPoliciesResponse listPolicies(ListPoliciesRequest request)
```

Lists the policies belonging to the developer's CDP Project. Use the `scope` parameter to filter the policies by scope. The response is paginated, and by default, returns 20 policies per page.

**Parameters:**

`request` - [ListPoliciesRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/policyengine/requests/ListPoliciesRequest)

**Returns:**

[ListPoliciesResponse](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/policyengine/types/ListPoliciesResponse)

**Overload 3**

```java theme={null}
public ListPoliciesResponse listPolicies(RequestOptions requestOptions)
```

Lists the policies belonging to the developer's CDP Project. Use the `scope` parameter to filter the policies by scope. The response is paginated, and by default, returns 20 policies per page.

**Parameters:**

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[ListPoliciesResponse](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/policyengine/types/ListPoliciesResponse)

**Overload 4**

```java theme={null}
public ListPoliciesResponse listPolicies(ListPoliciesRequest request, RequestOptions requestOptions)
```

Lists the policies belonging to the developer's CDP Project. Use the `scope` parameter to filter the policies by scope. The response is paginated, and by default, returns 20 policies per page.

**Parameters:**

`request` - [ListPoliciesRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/policyengine/requests/ListPoliciesRequest)

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[ListPoliciesResponse](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/policyengine/types/ListPoliciesResponse)

### `createPolicy`

**Overload 1**

```java theme={null}
public Policy createPolicy(CreatePolicyRequest request)
```

Create a policy that can be used to govern the behavior of accounts.

**Parameters:**

`request` - [CreatePolicyRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/policyengine/requests/CreatePolicyRequest)

**Returns:**

[Policy](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Policy)

**Overload 2**

```java theme={null}
public Policy createPolicy(CreatePolicyRequest request, RequestOptions requestOptions)
```

Create a policy that can be used to govern the behavior of accounts.

**Parameters:**

`request` - [CreatePolicyRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/policyengine/requests/CreatePolicyRequest)

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[Policy](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Policy)

### `getPolicyById`

**Overload 1**

```java theme={null}
public Policy getPolicyById(String policyId)
```

Get a policy by its ID.

**Parameters:**

`policyId` - `String`

**Returns:**

[Policy](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Policy)

**Overload 2**

```java theme={null}
public Policy getPolicyById(String policyId, GetPolicyByIdRequest request)
```

Get a policy by its ID.

**Parameters:**

`policyId` - `String`

`request` - [GetPolicyByIdRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/policyengine/requests/GetPolicyByIdRequest)

**Returns:**

[Policy](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Policy)

**Overload 3**

```java theme={null}
public Policy getPolicyById(String policyId, RequestOptions requestOptions)
```

Get a policy by its ID.

**Parameters:**

`policyId` - `String`

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[Policy](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Policy)

**Overload 4**

```java theme={null}
public Policy getPolicyById(String policyId, GetPolicyByIdRequest request, RequestOptions requestOptions)
```

Get a policy by its ID.

**Parameters:**

`policyId` - `String`

`request` - [GetPolicyByIdRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/policyengine/requests/GetPolicyByIdRequest)

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[Policy](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Policy)

### `updatePolicy`

**Overload 1**

```java theme={null}
public Policy updatePolicy(String policyId, UpdatePolicyRequest request)
```

Updates a policy by its ID. This will have the effect of applying the updated policy to all accounts that are currently using it.

**Parameters:**

`policyId` - `String`

`request` - [UpdatePolicyRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/policyengine/requests/UpdatePolicyRequest)

**Returns:**

[Policy](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Policy)

**Overload 2**

```java theme={null}
public Policy updatePolicy(String policyId, UpdatePolicyRequest request, RequestOptions requestOptions)
```

Updates a policy by its ID. This will have the effect of applying the updated policy to all accounts that are currently using it.

**Parameters:**

`policyId` - `String`

`request` - [UpdatePolicyRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/policyengine/requests/UpdatePolicyRequest)

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

[Policy](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/types/Policy)

### `deletePolicy`

**Overload 1**

```java theme={null}
public void deletePolicy(String policyId)
```

Delete a policy by its ID. This will have the effect of removing the policy from all accounts that are currently using it.

**Parameters:**

`policyId` - `String`

**Returns:**

`void`

**Overload 2**

```java theme={null}
public void deletePolicy(String policyId, DeletePolicyRequest request)
```

Delete a policy by its ID. This will have the effect of removing the policy from all accounts that are currently using it.

**Parameters:**

`policyId` - `String`

`request` - [DeletePolicyRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/policyengine/requests/DeletePolicyRequest)

**Returns:**

`void`

**Overload 3**

```java theme={null}
public void deletePolicy(String policyId, RequestOptions requestOptions)
```

Delete a policy by its ID. This will have the effect of removing the policy from all accounts that are currently using it.

**Parameters:**

`policyId` - `String`

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

`void`

**Overload 4**

```java theme={null}
public void deletePolicy(String policyId, DeletePolicyRequest request, RequestOptions requestOptions)
```

Delete a policy by its ID. This will have the effect of removing the policy from all accounts that are currently using it.

**Parameters:**

`policyId` - `String`

`request` - [DeletePolicyRequest](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/resources/policyengine/requests/DeletePolicyRequest)

`requestOptions` - [RequestOptions](/sdks/cdp-sdks-v2/java/com/coinbase/cdp/core/RequestOptions)

**Returns:**

`void`
