## Retrieve

`client.PolicyBundle.Get(ctx, query) (*Response, error)`

**get** `/policy/bundle`

Returns the effective Policy Bundle for the user identified by the
zone-issued resource-scoped token. When no user-scope binding exists,
one will be generated from the default set.

The response body is a binary archive in the codec selected via the
`Accept` header. The only codec supported today is
`application/vnd.keycard.policy-bundle.v1+tar+gzip`. Clients SHOULD send
an explicit `Accept` header; absent one, the server defaults to the
tar+gzip codec.

Supports conditional fetch via `If-None-Match`: when the supplied ETag
matches the current bundle, the server responds `304 Not Modified` with
no body.

### Parameters

- `query PolicyBundleGetParams`

  - `IfNoneMatch param.Field[string]`

    Conditional fetch ETag. If the supplied value matches the current
    bundle ETag, the server returns `304 Not Modified` with no body.

  - `XClientRequestID param.Field[string]`

    Unique request identifier specified by the originating caller and passed along by proxies.

### Returns

- `type PolicyBundleGetResponse interface{…}`

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/keycardai/keycard-go"
  "github.com/keycardai/keycard-go/option"
)

func main() {
  client := keycard.NewClient(
    option.WithAPIKey("My API Key"),
  )
  policyBundle, err := client.PolicyBundle.Get(context.TODO(), keycard.PolicyBundleGetParams{

  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", policyBundle)
}
```
