# EditSegmentInput

input type

Edit-input for a Segment. Every field optional, at least ONE required; supplied fields REPLACE segmentType is IMMUTABLE at birth. On dynamic: predicate replaces WHOLESALE (never clearable) and excludedConsumerIds replaces wholesale (releases) — the membership re-materializes at the next refreshSegment; both refuse on static (the cross-type law). Static membership moves via addSegmentMembers/removeSegmentMembers.

## Fields

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `caption` | [String](/types/#scalars) | no | No further notes. |
| `predicate` | [SegmentPredicateInput](/types/SegmentPredicateInput/) | no | Wholesale replacement (dynamic-only). |
| `excludedConsumerIds` | [ID](/types/#scalars) `[ID!]` | no | Wholesale replacement (dynamic-only; releases). |

## Used by

- [updateSegment](/reference/segment/updateSegment/)
