# Engagements

Engagements in Prism / Objects — Micro Go reference.

Reference for Go SDK **0.8.0**.

[Release source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/api.md) · [Setup and client configuration](/docs/reference/go)

## New

`POST /v2/prism/{teamId}/engagement`

````text
client.Prism.Objects.Engagements.New(ctx context.Context, params micro.PrismObjectEngagementNewParams) (*micro.PrismObjectEngagementNewResponse, error)
````

Create object

## Update

`PATCH /v2/prism/{teamId}/engagement/{engagementId}`

````text
client.Prism.Objects.Engagements.Update(ctx context.Context, engagementID string, params micro.PrismObjectEngagementUpdateParams) (*micro.PrismObjectEngagementUpdateResponse, error)
````

Patch object

## List

`GET /v2/prism/{teamId}/engagement`

````text
client.Prism.Objects.Engagements.List(ctx context.Context, params micro.PrismObjectEngagementListParams) (*micro.PrismObjectEngagementListResponse, error)
````

Convenience list endpoint. Equivalent to `POST /v2/prism/{teamId}/{objectType}/query` with an empty body, plus query-string sugar for the common cases. Any unrecognized query parameter is interpreted as an equality filter on a property of that name; pass arrays for `in`. Values are received as strings, so non-string property filters via this endpoint may not work — use the `query` endpoint for typed comparisons or anything beyond simple equality.

## Delete

`DELETE /v2/prism/{teamId}/engagement/{engagementId}`

````text
client.Prism.Objects.Engagements.Delete(ctx context.Context, engagementID string, params micro.PrismObjectEngagementDeleteParams) error
````

Delete object

## BulkNew

`POST /v2/prism/{teamId}/engagement/import`

````text
client.Prism.Objects.Engagements.BulkNew(ctx context.Context, params micro.PrismObjectEngagementBulkNewParams) (*micro.PrismObjectEngagementBulkNewResponse, error)
````

Import multiple objects in batch. Properties are keyed by slug. Automatically routes based on size: small batches complete synchronously and return 200 with the final `ImportJob`; large batches start an async job, return 202 with `status: processing` and a `Location` header, and can be polled via `GET /v2/prism/{teamId}/imports/{jobId}`.

## BulkDelete

`POST /v2/prism/{teamId}/engagement/batch/delete`

````text
client.Prism.Objects.Engagements.BulkDelete(ctx context.Context, params micro.PrismObjectEngagementBulkDeleteParams) (*micro.PrismObjectEngagementBulkDeleteResponse, error)
````

Soft-delete up to 100 records in a single call. Same partial-success contract as batch/update.

## BulkUpdate

`POST /v2/prism/{teamId}/engagement/batch/update`

````text
client.Prism.Objects.Engagements.BulkUpdate(ctx context.Context, params micro.PrismObjectEngagementBulkUpdateParams) (*micro.PrismObjectEngagementBulkUpdateResponse, error)
````

Patch up to 100 records in a single call. Each item is attempted independently — failures don't abort the batch. Inspect `results[].status` per item.

## Count

`GET /v2/prism/{teamId}/engagement/count`

````text
client.Prism.Objects.Engagements.Count(ctx context.Context, params micro.PrismObjectEngagementCountParams) (*micro.PrismObjectEngagementCountResponse, error)
````

Returns the total number of records of this object type that the caller can see. Avoids the page-overshoot anti-pattern — clients no longer need to keep paging until `has_more` flips false to discover the total. Currently does not apply query filters; for a filtered total, pass `include_total: true` in a POST `/query` body.

## Duplicate

`POST /v2/prism/{teamId}/engagement/{engagementId}/duplicate`

````text
client.Prism.Objects.Engagements.Duplicate(ctx context.Context, engagementID string, params micro.PrismObjectEngagementDuplicateParams) (*micro.PrismObjectEngagementDuplicateResponse, error)
````

Duplicate object

## Find

`GET /v2/prism/{teamId}/engagement/by/{slug}/{value}`

````text
client.Prism.Objects.Engagements.Find(ctx context.Context, slug string, value string, params micro.PrismObjectEngagementFindParams) (*micro.PrismObjectEngagementFindResponse, error)
````

Returns the single record whose property `{slug}` equals `{value}`. 404 if nothing matches; 409 if more than one record matches.

## Get

`GET /v2/prism/{teamId}/engagement/{engagementId}`

````text
client.Prism.Objects.Engagements.Get(ctx context.Context, engagementID string, params micro.PrismObjectEngagementGetParams) (*micro.PrismObjectEngagementGetResponse, error)
````

Get object

## Query

`POST /v2/prism/{teamId}/engagement/query`

````text
client.Prism.Objects.Engagements.Query(ctx context.Context, params micro.PrismObjectEngagementQueryParams) (*micro.PrismObjectEngagementQueryResponse, error)
````

Query

## Restore

`POST /v2/prism/{teamId}/engagement/{engagementId}/restore`

````text
client.Prism.Objects.Engagements.Restore(ctx context.Context, engagementID string, params micro.PrismObjectEngagementRestoreParams) (*micro.PrismObjectEngagementRestoreResponse, error)
````

Restore object

## Upsert

`PUT /v2/prism/{teamId}/engagement/by/{slug}/{value}`

````text
client.Prism.Objects.Engagements.Upsert(ctx context.Context, slug string, value string, params micro.PrismObjectEngagementUpsertParams) (*micro.PrismObjectEngagementUpsertResponse, error)
````

Idempotent create-or-update keyed on `{slug}={value}`. If exactly one record matches, it is patched and 200 is returned. If none match, a new record is created (with the lookup property set if absent) and 201 is returned. If multiple records match, 409 is returned and you should patch by id instead.

## Parameter and response types

These declarations show the request parameters and response shapes used by the methods above.

### PrismObjectEngagementNewResponse

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementNewResponse struct {
	ID string `json:"id" api:"required" format:"uuid"`
	// Properties keyed by property slug.
	Default map[string]interface{}               `json:"default"`
	List    interface{}                          `json:"list"`
	JSON    prismObjectEngagementNewResponseJSON `json:"-"`
}
````


### PrismObjectEngagementUpdateResponse

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementUpdateResponse struct {
	ID string `json:"id" api:"required" format:"uuid"`
	// Properties keyed by property slug.
	Default map[string]interface{}                  `json:"default"`
	List    interface{}                             `json:"list"`
	JSON    prismObjectEngagementUpdateResponseJSON `json:"-"`
}
````


### PrismObjectEngagementListResponse

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementListResponse struct {
	Data []PrismObjectEngagementListResponseData `json:"data" api:"required"`
	// Accurate end-of-data signal — false on the last page, never forces clients to
	// overshoot.
	HasMore    bool   `json:"has_more" api:"required"`
	NextCursor string `json:"next_cursor" api:"nullable"`
	// Populated only when `?include_total=true` was passed.
	Total int64                                 `json:"total" api:"nullable"`
	JSON  prismObjectEngagementListResponseJSON `json:"-"`
}
````


### PrismObjectEngagementBulkNewResponse

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementBulkNewResponse struct {
	// Null for sync imports (results inlined). Set for async imports.
	JobID  string                                     `json:"job_id" api:"required,nullable"`
	Status PrismObjectEngagementBulkNewResponseStatus `json:"status" api:"required"`
	// Total number of rows in the import.
	Total     int64     `json:"total" api:"required"`
	CreatedAt time.Time `json:"created_at" format:"date-time"`
	// Set when status=failed; describes the job-level failure (not per-row).
	Error     PrismObjectEngagementBulkNewResponseError `json:"error"`
	ExpiresAt time.Time                                 `json:"expires_at" format:"date-time"`
	Failed    int64                                     `json:"failed"`
	// Rows that have been attempted (succeeded + failed).
	Processed int64 `json:"processed"`
	// Per-row outcomes. Always present for sync imports; populated for async imports
	// once the job reaches `complete`.
	Results   []PrismObjectEngagementBulkNewResponseResult `json:"results"`
	Succeeded int64                                        `json:"succeeded"`
	UpdatedAt time.Time                                    `json:"updated_at" format:"date-time"`
	JSON      prismObjectEngagementBulkNewResponseJSON     `json:"-"`
}
````


### PrismObjectEngagementBulkDeleteResponse

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementBulkDeleteResponse struct {
	Results []PrismObjectEngagementBulkDeleteResponseResult `json:"results" api:"required"`
	Summary PrismObjectEngagementBulkDeleteResponseSummary  `json:"summary" api:"required"`
	JSON    prismObjectEngagementBulkDeleteResponseJSON     `json:"-"`
}
````


### PrismObjectEngagementBulkUpdateResponse

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementBulkUpdateResponse struct {
	Results []PrismObjectEngagementBulkUpdateResponseResult `json:"results" api:"required"`
	Summary PrismObjectEngagementBulkUpdateResponseSummary  `json:"summary" api:"required"`
	JSON    prismObjectEngagementBulkUpdateResponseJSON     `json:"-"`
}
````


### PrismObjectEngagementCountResponse

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementCountResponse struct {
	// Number of records matching the access scope.
	Total int64                                  `json:"total" api:"required"`
	JSON  prismObjectEngagementCountResponseJSON `json:"-"`
}
````


### PrismObjectEngagementDuplicateResponse

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementDuplicateResponse struct {
	ID string `json:"id" api:"required" format:"uuid"`
	// Properties keyed by property slug.
	Default map[string]interface{}                     `json:"default"`
	List    interface{}                                `json:"list"`
	JSON    prismObjectEngagementDuplicateResponseJSON `json:"-"`
}
````


### PrismObjectEngagementFindResponse

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementFindResponse struct {
	ID string `json:"id" api:"required" format:"uuid"`
	// Properties keyed by property slug.
	Default map[string]interface{}                `json:"default"`
	List    interface{}                           `json:"list"`
	JSON    prismObjectEngagementFindResponseJSON `json:"-"`
}
````


### PrismObjectEngagementGetResponse

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementGetResponse struct {
	ID string `json:"id" api:"required" format:"uuid"`
	// Properties keyed by property slug.
	Default map[string]interface{}               `json:"default"`
	List    interface{}                          `json:"list"`
	JSON    prismObjectEngagementGetResponseJSON `json:"-"`
}
````


### PrismObjectEngagementQueryResponse

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementQueryResponse struct {
	Data []PrismObjectEngagementQueryResponseData `json:"data" api:"required"`
	// Accurate end-of-data signal. False when this page contains the last record; true
	// only when at least one more record exists. (Implementation note: the server
	// fetches one extra row internally to determine this — clients never need to
	// overshoot to discover the end.)
	HasMore bool `json:"has_more" api:"required"`
	// Opaque cursor pointing at the next page. Pass it back unchanged in the request
	// body (`cursor`) of the next call. Null when `has_more` is false.
	NextCursor string `json:"next_cursor" api:"nullable"`
	// Only populated when the request set `include_total: true`. Total number of
	// records matching the query, ignoring pagination. Opt-in because it costs an
	// additional pass over the result set.
	Total int64                                  `json:"total" api:"nullable"`
	JSON  prismObjectEngagementQueryResponseJSON `json:"-"`
}
````


### PrismObjectEngagementRestoreResponse

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementRestoreResponse struct {
	ID string `json:"id" api:"required" format:"uuid"`
	// Properties keyed by property slug.
	Default map[string]interface{}                   `json:"default"`
	List    interface{}                              `json:"list"`
	JSON    prismObjectEngagementRestoreResponseJSON `json:"-"`
}
````


### PrismObjectEngagementUpsertResponse

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementUpsertResponse struct {
	ID string `json:"id" api:"required" format:"uuid"`
	// Properties keyed by property slug.
	Default map[string]interface{}                  `json:"default"`
	List    interface{}                             `json:"list"`
	JSON    prismObjectEngagementUpsertResponseJSON `json:"-"`
}
````


### PrismObjectEngagementNewParams

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementNewParams struct {
	// Use [option.WithTeamID] on the client to set a global default for this field.
	TeamID                param.Field[string]        `path:"teamId" api:"required" format:"uuid"`
	PrismObjectProperties PrismObjectPropertiesParam `json:"prism_object_properties" api:"required"`
	IdempotencyKey        param.Field[string]        `header:"Idempotency-Key"`
}
````


### PrismObjectEngagementUpdateParams

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementUpdateParams struct {
	// Use [option.WithTeamID] on the client to set a global default for this field.
	TeamID                param.Field[string]        `path:"teamId" api:"required" format:"uuid"`
	PrismObjectProperties PrismObjectPropertiesParam `json:"prism_object_properties" api:"required"`
	IdempotencyKey        param.Field[string]        `header:"Idempotency-Key"`
	IfMatch               param.Field[string]        `header:"If-Match"`
}
````


### PrismObjectEngagementListParams

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementListParams struct {
	// Use [option.WithTeamID] on the client to set a global default for this field.
	TeamID param.Field[string] `path:"teamId" api:"required" format:"uuid"`
	// Opaque cursor from a previous response's `next_cursor`. Pass it back unchanged
	// to fetch the next page.
	Cursor param.Field[string] `query:"cursor"`
	// Include soft-deleted records. Pass the literal string `true`.
	Deleted param.Field[bool] `query:"deleted"`
	// When set to `true`, the response includes a `total` field with the unpaginated
	// row count. Costs an extra pass; prefer `GET .../count` for the unfiltered total.
	IncludeTotal param.Field[bool] `query:"include_total"`
	// Maximum number of rows to return. Capped server-side at 50.
	Limit param.Field[int64] `query:"limit"`
	// Scope properties to a specific list/app.
	ListID param.Field[string] `query:"list_id" format:"uuid"`
	// Comma-separated property slugs to return. Use dot notation for relationships.
	// `id` is always returned at the top level. Defaults to all properties.
	Select param.Field[string] `query:"select"`
	// Comma-separated list of slugs. Prefix with `-` for descending. Example:
	// `sort=-updated_at,name`.
	Sort param.Field[string] `query:"sort"`
}
````


### PrismObjectEngagementDeleteParams

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementDeleteParams struct {
	// Use [option.WithTeamID] on the client to set a global default for this field.
	TeamID  param.Field[string] `path:"teamId" api:"required" format:"uuid"`
	IfMatch param.Field[string] `header:"If-Match"`
}
````


### PrismObjectEngagementBulkNewParams

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementBulkNewParams struct {
	// Use [option.WithTeamID] on the client to set a global default for this field.
	TeamID param.Field[string] `path:"teamId" api:"required" format:"uuid"`
	// Array of objects to import with property values keyed by slug
	Objects        param.Field[[]PrismObjectPropertiesParam]              `json:"objects" api:"required"`
	Options        param.Field[PrismObjectEngagementBulkNewParamsOptions] `json:"options"`
	IdempotencyKey param.Field[string]                                    `header:"Idempotency-Key"`
}
````


### PrismObjectEngagementBulkDeleteParams

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementBulkDeleteParams struct {
	// Use [option.WithTeamID] on the client to set a global default for this field.
	TeamID         param.Field[string]   `path:"teamId" api:"required" format:"uuid"`
	IDs            param.Field[[]string] `json:"ids" api:"required" format:"uuid"`
	IdempotencyKey param.Field[string]   `header:"Idempotency-Key"`
}
````


### PrismObjectEngagementBulkUpdateParams

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementBulkUpdateParams struct {
	// Use [option.WithTeamID] on the client to set a global default for this field.
	TeamID         param.Field[string]                                      `path:"teamId" api:"required" format:"uuid"`
	Items          param.Field[[]PrismObjectEngagementBulkUpdateParamsItem] `json:"items" api:"required"`
	IdempotencyKey param.Field[string]                                      `header:"Idempotency-Key"`
}
````


### PrismObjectEngagementCountParams

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementCountParams struct {
	// Use [option.WithTeamID] on the client to set a global default for this field.
	TeamID param.Field[string] `path:"teamId" api:"required" format:"uuid"`
	// Scope the count to a specific list/app.
	ListID param.Field[string] `query:"list_id" format:"uuid"`
}
````


### PrismObjectEngagementDuplicateParams

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementDuplicateParams struct {
	// Use [option.WithTeamID] on the client to set a global default for this field.
	TeamID         param.Field[string] `path:"teamId" api:"required" format:"uuid"`
	IdempotencyKey param.Field[string] `header:"Idempotency-Key"`
}
````


### PrismObjectEngagementFindParams

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementFindParams struct {
	// Use [option.WithTeamID] on the client to set a global default for this field.
	TeamID param.Field[string] `path:"teamId" api:"required" format:"uuid"`
	// Scope the lookup to a specific list/app.
	ListID param.Field[string] `query:"list_id" format:"uuid"`
}
````


### PrismObjectEngagementGetParams

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementGetParams struct {
	// Use [option.WithTeamID] on the client to set a global default for this field.
	TeamID param.Field[string] `path:"teamId" api:"required" format:"uuid"`
	// Comma-separated property slugs to return. Use dot notation for relationships.
	// `id` is always returned at the top level. Defaults to all properties.
	Select param.Field[string] `query:"select"`
}
````


### PrismObjectEngagementQueryParams

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementQueryParams struct {
	// Use [option.WithTeamID] on the client to set a global default for this field.
	TeamID param.Field[string]                                  `path:"teamId" api:"required" format:"uuid"`
	Query  param.Field[PrismObjectEngagementQueryParamsQuery]   `json:"query" api:"required"`
	ID     param.Field[PrismObjectEngagementQueryParamsIDUnion] `json:"id" format:"uuid"`
	Boxes  param.Field[[]string]                                `json:"boxes"`
	// Alternative location for the opaque cursor (a sibling of `query`). Use whichever
	// feels more natural; if both are present, `query.cursor` wins.
	Cursor  param.Field[string] `json:"cursor"`
	Deleted param.Field[bool]   `json:"deleted"`
	// When true, the response includes a `total` field with the unpaginated row count.
	// Costs an additional pass over the result set — for unfiltered totals prefer
	// `GET /v2/prism/{teamId}/{objectType}/count` instead.
	IncludeTotal param.Field[bool]     `json:"include_total"`
	Sources      param.Field[[]string] `json:"sources" format:"uuid"`
}
````


### PrismObjectEngagementRestoreParams

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementRestoreParams struct {
	// Use [option.WithTeamID] on the client to set a global default for this field.
	TeamID         param.Field[string] `path:"teamId" api:"required" format:"uuid"`
	IdempotencyKey param.Field[string] `header:"Idempotency-Key"`
}
````


### PrismObjectEngagementUpsertParams

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementUpsertParams struct {
	// Use [option.WithTeamID] on the client to set a global default for this field.
	TeamID                param.Field[string]        `path:"teamId" api:"required" format:"uuid"`
	PrismObjectProperties PrismObjectPropertiesParam `json:"prism_object_properties" api:"required"`
	IdempotencyKey        param.Field[string]        `header:"Idempotency-Key"`
}
````


### PrismObjectEngagementListResponseData

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementListResponseData struct {
	ID           string `json:"id" api:"required" format:"uuid"`
	IsUserObject bool   `json:"is_user_object"`
	// Selected property values keyed by property slug. For select/multiselect
	// properties, option slugs are returned. For reference properties, values are
	// nested `{ id, properties }` objects.
	Properties map[string]interface{}                    `json:"properties"`
	Source     []string                                  `json:"source" api:"nullable"`
	JSON       prismObjectEngagementListResponseDataJSON `json:"-"`
}
````


### PrismObjectEngagementBulkNewResponseStatus

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementBulkNewResponseStatus string
````


### Error

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/aliases.go)

````text
type Error = apierror.Error
````


### PrismObjectEngagementBulkNewResponseError

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementBulkNewResponseError struct {
	Code    string                                        `json:"code"`
	Message string                                        `json:"message"`
	JSON    prismObjectEngagementBulkNewResponseErrorJSON `json:"-"`
}
````


### PrismObjectEngagementBulkNewResponseResult

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementBulkNewResponseResult struct {
	ID      string                                           `json:"id" api:"nullable" format:"uuid"`
	Created bool                                             `json:"created"`
	Error   PrismObjectEngagementBulkNewResponseResultsError `json:"error"`
	// True if the row matched an existing record via the dedupe key.
	Existing bool                                           `json:"existing"`
	JSON     prismObjectEngagementBulkNewResponseResultJSON `json:"-"`
}
````


### PrismObjectEngagementBulkDeleteResponseResult

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementBulkDeleteResponseResult struct {
	// Item ID, or null if the input was unparseable.
	ID     string                                               `json:"id" api:"required,nullable"`
	Status PrismObjectEngagementBulkDeleteResponseResultsStatus `json:"status" api:"required"`
	Error  PrismObjectEngagementBulkDeleteResponseResultsError  `json:"error"`
	// Object returned by reads (get/create/patch/restore). id is always present.
	Record PrismObjectEngagementBulkDeleteResponseResultsRecord `json:"record"`
	JSON   prismObjectEngagementBulkDeleteResponseResultJSON    `json:"-"`
}
````


### PrismObjectEngagementBulkDeleteResponseSummary

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementBulkDeleteResponseSummary struct {
	Failed    int64                                              `json:"failed" api:"required"`
	Succeeded int64                                              `json:"succeeded" api:"required"`
	Total     int64                                              `json:"total" api:"required"`
	JSON      prismObjectEngagementBulkDeleteResponseSummaryJSON `json:"-"`
}
````


### PrismObjectEngagementBulkUpdateResponseResult

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementBulkUpdateResponseResult struct {
	// Item ID, or null if the input was unparseable.
	ID     string                                               `json:"id" api:"required,nullable"`
	Status PrismObjectEngagementBulkUpdateResponseResultsStatus `json:"status" api:"required"`
	Error  PrismObjectEngagementBulkUpdateResponseResultsError  `json:"error"`
	// Object returned by reads (get/create/patch/restore). id is always present.
	Record PrismObjectEngagementBulkUpdateResponseResultsRecord `json:"record"`
	JSON   prismObjectEngagementBulkUpdateResponseResultJSON    `json:"-"`
}
````


### PrismObjectEngagementBulkUpdateResponseSummary

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementBulkUpdateResponseSummary struct {
	Failed    int64                                              `json:"failed" api:"required"`
	Succeeded int64                                              `json:"succeeded" api:"required"`
	Total     int64                                              `json:"total" api:"required"`
	JSON      prismObjectEngagementBulkUpdateResponseSummaryJSON `json:"-"`
}
````


### PrismObjectEngagementQueryResponseData

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementQueryResponseData struct {
	ID           string `json:"id" api:"required" format:"uuid"`
	IsUserObject bool   `json:"is_user_object"`
	// Selected property values keyed by property slug. For select/multiselect
	// properties, option slugs are returned. For reference properties, values are
	// nested `{ id, properties }` objects.
	Properties map[string]interface{}                     `json:"properties"`
	Source     []string                                   `json:"source" api:"nullable"`
	JSON       prismObjectEngagementQueryResponseDataJSON `json:"-"`
}
````


### PrismObjectPropertiesParam

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prism.go)

````text
type PrismObjectPropertiesParam struct {
	// Properties keyed by property slug. Values can be strings, numbers, booleans,
	// arrays, or null. For select/multiselect properties, values may be option slugs
	// or option UUIDs on write; option slugs are returned on read.
	Default param.Field[map[string]interface{}] `json:"default"`
	List    param.Field[interface{}]            `json:"list"`
}
````


### PrismObjectEngagementBulkNewParamsOptions

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementBulkNewParamsOptions struct {
	// Whether deduplication should be case insensitive
	CaseInsensitive param.Field[bool] `json:"caseInsensitive"`
	// Property slug to deduplicate on
	DedupeBy param.Field[string] `json:"dedupe_by"`
	// App/CRM ID for context (optional)
	ListID param.Field[string] `json:"list_id" format:"uuid"`
}
````


### PrismObjectEngagementBulkUpdateParamsItem

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementBulkUpdateParamsItem struct {
	ID          param.Field[string]    `json:"id" api:"required" format:"uuid"`
	ExtraFields map[string]interface{} `json:"-,extras"`
}
````


### PrismObjectEngagementQueryParamsQuery

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementQueryParamsQuery struct {
	// Property slugs to select. Use dot notation for relationships (e.g.
	// attendee.contact.first_name). `id` is always returned at the top level of each
	// row and does not need to be selected.
	Select param.Field[[]string] `json:"select" api:"required"`
	// Logical operator for combining filters
	Combinator param.Field[PrismObjectEngagementQueryParamsQueryCombinator] `json:"combinator"`
	// Opaque cursor from a previous response's `next_cursor`. Pass it back unchanged
	// to fetch the next page. When set, `page` and `limit` are derived from the cursor
	// and any explicit values are ignored.
	Cursor param.Field[string] `json:"cursor"`
	// Filters as [{ slug: { operator: value } }]. For select/multiselect properties,
	// values may be option slugs or option UUIDs.
	Filter param.Field[[]map[string]PrismObjectEngagementQueryParamsQueryFilterUnion] `json:"filter"`
	// Maximum number of rows to return. Capped server-side at 50; requests above the
	// cap are rejected.
	Limit  param.Field[int64]  `json:"limit"`
	ListID param.Field[string] `json:"list_id" format:"uuid"`
	// Page number (1-based). Prefer `cursor`. Page-number pagination drifts under
	// concurrent writes; use it only for one-shot exports.
	//
	// Deprecated: deprecated
	Page param.Field[int64] `json:"page"`
	// Sort order as [{ slug: direction }]. Array order determines sort priority
	Sort param.Field[[]map[string]PrismObjectEngagementQueryParamsQuerySort] `json:"sort"`
}
````


### PrismObjectEngagementQueryParamsIDUnion

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementQueryParamsIDUnion interface {
	ImplementsPrismObjectEngagementQueryParamsIDUnion()
}
````


### PrismObjectEngagementBulkNewResponseResultsError

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementBulkNewResponseResultsError struct {
	Code    string                                               `json:"code"`
	Message string                                               `json:"message"`
	JSON    prismObjectEngagementBulkNewResponseResultsErrorJSON `json:"-"`
}
````


### PrismObjectEngagementBulkDeleteResponseResultsStatus

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementBulkDeleteResponseResultsStatus string
````


### PrismObjectEngagementBulkDeleteResponseResultsError

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementBulkDeleteResponseResultsError struct {
	Code    string                                                  `json:"code"`
	Message string                                                  `json:"message"`
	JSON    prismObjectEngagementBulkDeleteResponseResultsErrorJSON `json:"-"`
}
````


### PrismObjectEngagementBulkDeleteResponseResultsRecord

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementBulkDeleteResponseResultsRecord struct {
	ID string `json:"id" api:"required" format:"uuid"`
	// Properties keyed by property slug.
	Default map[string]interface{}                                   `json:"default"`
	List    interface{}                                              `json:"list"`
	JSON    prismObjectEngagementBulkDeleteResponseResultsRecordJSON `json:"-"`
}
````


### PrismObjectEngagementBulkUpdateResponseResultsStatus

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementBulkUpdateResponseResultsStatus string
````


### PrismObjectEngagementBulkUpdateResponseResultsError

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementBulkUpdateResponseResultsError struct {
	Code    string                                                  `json:"code"`
	Message string                                                  `json:"message"`
	JSON    prismObjectEngagementBulkUpdateResponseResultsErrorJSON `json:"-"`
}
````


### PrismObjectEngagementBulkUpdateResponseResultsRecord

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementBulkUpdateResponseResultsRecord struct {
	ID string `json:"id" api:"required" format:"uuid"`
	// Properties keyed by property slug.
	Default map[string]interface{}                                   `json:"default"`
	List    interface{}                                              `json:"list"`
	JSON    prismObjectEngagementBulkUpdateResponseResultsRecordJSON `json:"-"`
}
````


### PrismObjectEngagementQueryParamsQueryCombinator

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementQueryParamsQueryCombinator string
````


### PrismObjectEngagementQueryParamsQueryFilterUnion

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementQueryParamsQueryFilterUnion interface {
	implementsPrismObjectEngagementQueryParamsQueryFilterUnion()
}
````


### PrismObjectEngagementQueryParamsQuerySort

[Source](https://github.com/micro-so/micro-sdk-go/blob/v0.8.0/prismobjectengagement.go)

````text
type PrismObjectEngagementQueryParamsQuerySort string
````
