Input Types
Input object types that queries and mutations take as arguments, in alphabetical order. Fields marked required must be present; the others can be left out.
AmendCampaignInput
A partial update to one draft CampaignImage: absent fields stay untouched
Fields:
fashionModelRevisionIdUUIDitemIdUUID!requiredproducts[ProductGroupInput!]sceneInstructionsStringshootingLocationRevisionIdUUIDtitleStringwardrobeItemIds[UUID!]: Present replaces the look's wardrobe. An empty array means styled with nothing.
AmendStudioInput
A partial update to one draft ProductStudio: absent fields stay untouched
Fields:
fashionModelRevisionIdUUIDitemIdUUID!requiredperspectiveIds[UUID!]products[ProductGroupInput!]stylingNotesStringwardrobeItemIds[UUID!]: Present replaces the look's wardrobe. An EMPTY array is meaningful and allowed: it means styled with nothing. Absent leaves the wardrobe untouched.
CampaignImageProductInput
Input for campaign image product data
Fields:
productDescriptionString!requiredproductIdString!requiredproductImageString!requiredproductImageIdString!requiredproductTitleString!required
DesignerAppearanceChange
Fields:
intentString!requiredviews[DesignerPersonView!]!required
DesignerChangeSet
A structured declaration of what to change, relative to an explicit base revision. Presence of a sub-object means that dimension changes. Any combination may batch into one plan and one generation. Flats are NOT a dimension here — order them via generateDesignerRevisionTechnicalDrawings.
Fields:
appearanceDesignerAppearanceChangedetailsDesignerDetailsChangefabricDesignerFabricChangegarmentDesignerGarmentChangemodelDesignerModelChangeoutfitContextDesignerOutfitContextChangepaintDesignerPaintChangepaints[DesignerResolvedPaintChange!]reconciledDescriptionString
DesignerComposedPrompts
The composer's authored prompts for generateDesignerRevision — exactly one per SHAPE/RENDER slot the plan's needFromComposer requested (a missing or extra slot 400s). Taken verbatim.
Fields:
personBaseRegionDesignerPersonBaseRegionslots[DesignerSlotPrompt!]!required
DesignerDetailsChange
The placement editor's complete detail set, not a patch; an empty list removes every detail. At most 2 details. Only the views whose details look different re-render; the puppet is never regenerated. Requires a base revision.
Fields:
set[DesignerPlacedDetailInput!]!required
DesignerFabricChange
Swap to an existing (or freshly created) fabric. Both renders regenerate against the new swatch.
Fields:
DesignerGarmentChange
A shape / fit / detail / description change to the given views.
Fields:
descriptionStringintentString!requiredviews[DesignerPersonView!]!required
DesignerModelChange
Fields:
fashionModelRevisionIdUUID!required
DesignerOutfitContextChange
The outfit around the hero garment. Empty text clears it. The backend rebuilds the person base only when this differs from the base revision's frozen outfit.
Fields:
textString!required
DesignerPaintChange
A visual garment edit painted on a rendered photo. Set silhouetteAffecting when a FRONT paint changes the silhouette, so the plan pulls the BACK shape + render along (declared here, never smuggled through prompts).
Fields:
overlayKeyString!requiredsilhouetteAffectingBoolean!requiredviewDesignerPersonView!required
DesignerPlacedDetailInput
One placed detail. Needs a box on at least one view.
Fields:
backDesignerPlacementInputfrontDesignerPlacementInputidUUID!required: Generated by the editor when the detail is first placed, then kept. A kept id keeps its marker colour.labelString!required: Unique per design, compared case-insensitively.resourceIdUUID!required: An image-backed DesignerInstanceResource on this design. The backend resolves and freezes its image key.
DesignerPlacementInput
A box in fractions of the view's grey puppet frame. Values 0 to 1, width and height above 0, and the box must stay inside the frame.
Fields:
heightFloat!requiredwidthFloat!requiredxFloat!requiredyFloat!required
DesignerResolvedPaintChange
Fields:
affectedViews[DesignerPersonView!]!requiredoverlayKeyString!requiredviewDesignerPersonView!required
DesignerSlotPrompt
One composer-authored prompt for a SHAPE or RENDER slot.
Fields:
promptString!requiredslotOutputSlot!required
FashionModelResourceInput
Patch for fashion model revision resources: absent fields stay untouched, null clears
Fields:
beardStringbodyShapeStringdescriptionStringhairstyleStringmakeupString
FieldRuleInput
What a captured field may contain and what it means. count is required for DIGITS, values for ONE_OF; a payload that contradicts the kind is rejected rather than widened. Constraining an OTHER field is still worth doing: ignoring a segment's value is not the same as ignoring its shape.
Fields:
countIntfieldString!requiredkindFileNameFieldConstraintKind!requiredroleFileNameFieldRole!required: What this field means. IDENTITY is part of what makes two photos the same product; VIEW says which view the photo is, at most once per template; OTHER is matched so the pattern fits and then counts for nothing. A field with no rule at all is an unconstrained IDENTITY field.values[String!]
FileNameConventionInput
A team's whole filename declaration. Templates are ordered and may overlap: the first that matches wins. Saved and validated as one unit.
Fields:
exportPatternStringtemplates[FileNameTemplateInput!]!requiredviewCodes[ViewCodeMappingInput!]!required
FileNameTemplateInput
One candidate filename shape, e.g. "{master}{colorname}{colorcode}_{view}". The literal text between placeholders is this template's delimiter, so a field may contain a character another template separates on.
Fields:
fields[FieldRuleInput!]!requiredpatternString!required
MediaPlanAssetOperand
Fields:
assetString!required: Brand asset slug.sizeFloat: Null uses the asset's default; omitted keeps the size the logo already has.
MediaPlanBrandAssetInput
One logo in a set, in the order given.
Fields:
brandAssetIdUUID!requiredsizeFloat: Fraction of the frame's shorter edge taken by the logo's longer side. Null uses the asset's default; omitted keeps the size the logo already has; below its minimum is refused.
MediaPlanCardFilter
Which cards an operation reaches: every field given must match. An ad matches only when all its cards match.
Fields:
channelMediaChannel: The ad's channel, e.g. GOOGLE.formatString: Format slug, e.g. stories-9x16.placementString: Catalog unit slug, e.g. stories.ratioString: Delivered ratio, e.g. 4:5.sourceString: Source handle, e.g. look-1.
MediaPlanOperation
One amendment. Without a filter, SET_TREATMENT and SET_ASSETS change the plan's default, and SET_APPROVAL reaches every ad; with one, each matched ad's own.
Fields:
approvedBoolean: SET_APPROVAL, required: true approves the matched ads that are ready and notes the rest with the reason; false un-approves every matched ad.assets[MediaPlanAssetOperand!]: SET_ASSETS: the logo set in order; null clears (none for the plan, inherit for an ad); empty means no logos. Required for SET_ASSETS: an operation without it is refused rather than read as a clear.channelMediaChannel: ADD_PLACEMENT: add every unit of this channel instead of one placement. Units already in the plan come back as notes.discardWorkBoolean: REMOVE_CARDS: remove cards even when that loses a person's work (approval, edited or approved copy, a hand-adjusted layout, exported files). Without it such a removal is refused with a message starting "Operation N: Removing these cards would lose work:" that lists the work per ad. Ask the person before sending it.filterMediaPlanCardFilterlocales[String!]: SET_LOCALES: the plan's languages as BCP-47 tags, the first being the main one.opMediaPlanOperationKind!requiredplacementString: ADD_PLACEMENT: the catalog unit slug. Give this or channel, not both.sourceString: SET_SOURCE: the source handle the matched cards should use.sources[String!]: ADD_PLACEMENT: source handles to fan in; absent means all. An empty list is refused.treatmentString: SET_TREATMENT: treatment slug; null clears (plain for the plan, inherit for an ad). Required for SET_TREATMENT: an operation without it is refused rather than read as a clear.
PatternRevisionInputArg
One labelled reference passed by the agent into generatePatternRevision. Snapshotted onto the resulting revision for reproducibility.
Fields:
imageKeyString!requiredlabelString!required
PlanCampaignItemInput
A draft CampaignImage to create — grouped products with scene settings
Fields:
fashionModelRevisionIdUUID!requiredproducts[ProductGroupInput!]!requiredsceneInstructionsStringshootingLocationRevisionIdUUID!requiredtitleStringwardrobeItemIds[UUID!]: Wardrobe articles this look is completed with, by id. One photograph per article on this arc.
PlanStudioItemInput
A draft ProductStudio to create — grouped products with perspectives
Fields:
fashionModelRevisionIdUUID!requiredperspectiveIds[UUID!]!requiredproducts[ProductGroupInput!]!requiredstylingNotesStringwardrobeItemIds[UUID!]: Wardrobe articles this look is completed with, by id. Unknown or archived ids are rejected rather than dropped.
ProductGroupInput
A group of images belonging to the same product, with a canonical title
Fields:
ShootingLocationResourceInput
Input for shooting location revision resources
Fields:
extrasStringlightingStringlocationStringmoodString
SizeChartAdjustmentInput
One base-size change on a design chart.
Fields:
deltaHundredthsInt!required: Change at the base size in hundredths of a cm. 0 removes the row's adjustment. On a HALF row this is half the girth change.reasonStringrowKeyString!required: The row's full key, CODE[@origin].
ViewCodeMappingInput
Maps one of the team's own view tokens ("001") onto the view the renderer understands.
Fields:
codeString!requiredviewTypeViewType!required