shapes
type: ShapeGeneration
shape reference chain limit: 5
omitted shape reference count: 11
omitted shape reference:
  reference from: AutomationListResponseShape
  reference to: AutomationShape
  omitted because: over-long
omitted shape reference:
  reference from: CampaignListResponseShape
  reference to: CampaignShape
  omitted because: over-long
omitted shape reference:
  reference from: CampaignReportShape
  reference to: CampaignShape
  omitted because: over-long
omitted shape reference:
  reference from: CampaignShape
  reference to: CampaignShape
  omitted because: cycle
omitted shape reference:
  reference from: CampaignShape
  reference to: VariateSettingsShape
  omitted because: cycle
omitted shape reference:
  reference from: EmailActivityRecipientShape
  reference to: CampaignShape
  omitted because: over-long
omitted shape reference:
  reference from: EmailActivityShape
  reference to: CampaignShape
  omitted because: over-long
omitted shape reference:
  reference from: MemberNoteShape
  reference to: MemberShape
  omitted because: cycle
omitted shape reference:
  reference from: OriginalShortcutCampaignShape
  reference to: CampaignShape
  omitted because: cycle
omitted shape reference:
  reference from: ShortcutCampaignShape
  reference to: CampaignShape
  omitted because: cycle
omitted shape reference:
  reference from: VariateSettingsShape
  reference to: CampaignShape
  omitted because: over-long

HALLinkShape
type: NodeShape
target class: HALLink
property:
  path: rel
  name: rel
  description: Link relation type (e.g. `self`, `parent`, `create`, `update`, `delete`).
  datatype: string
  min count: 1
  max count: 1
property:
  path: href
  name: href
  description: Absolute URL of the linked resource.
  datatype: anyURI
  min count: 1
  max count: 1
property:
  path: method
  name: method
  description: HTTP method used to follow the link.
  datatype: string
  max count: 1
  in: GET
  in: POST
  in: PUT
  in: PATCH
  in: DELETE
  in: HEAD
  in: OPTIONS
property:
  path: targetSchema
  name: target schema
  description: JSON Schema describing the response payload for this link.
  datatype: string
  max count: 1
property:
  path: schema
  name: schema
  description: JSON Schema describing the request payload for this link (write methods only).
  datatype: string
  max count: 1

FieldErrorShape
type: NodeShape
target class: FieldError
property:
  path: field
  name: field
  description: Dotted path of the offending request field.
  datatype: string
  min count: 1
  max count: 1
property:
  path: message
  name: message
  description: Human-readable description of why validation failed.
  datatype: string
  min count: 1
  max count: 1

ErrorShape
type: NodeShape
target class: Error
property:
  path: type
  name: type
  description: URI reference to the error-type documentation.
  datatype: anyURI
  min count: 1
  max count: 1
property:
  path: title
  name: title
  description: Short human-readable summary of the error category.
  datatype: string
  min count: 1
  max count: 1
property:
  path: status
  name: status
  description: HTTP status code repeated as an integer.
  datatype: int
  min count: 1
  max count: 1
property:
  path: detail
  name: detail
  description: Instance-specific explanation of what went wrong.
  datatype: string
  min count: 1
  max count: 1
property:
  path: instance
  name: instance
  description: Unique request identifier (UUID) for support correlation.
  datatype: string
  min count: 1
  max count: 1
property:
  path: errors
  name: errors
  description: Per-field validation errors. Present only on `400 Bad Request`.
  node: FieldErrorShape
  class: FieldError
  node kind: BlankNodeOrIRI

DeliveryStatusShape
type: NodeShape
target class: DeliveryStatus
property:
  path: enabled
  name: enabled
  description: Whether delivery tracking is enabled for this campaign.
  datatype: boolean
  min count: 1
  max count: 1
property:
  path: canCancel
  name: can cancel
  description: Whether the operator can still cancel the in-flight send.
  datatype: boolean
  min count: 1
  max count: 1
property:
  path: status
  name: status
  description: Current state of the send pipeline.
  datatype: string
  min count: 1
  max count: 1
  in: delivering
  in: delivered
  in: canceling
  in: canceled
property:
  path: emailsSent
  name: emails sent
  description: Count of messages successfully handed off to the SMTP layer.
  datatype: int
  min count: 1
  max count: 1
property:
  path: emailsCanceled
  name: emails canceled
  description: Count of messages that were canceled before send.
  datatype: int
  min count: 1
  max count: 1

ReportSummaryEcommerceShape
type: NodeShape
target class: ReportSummaryEcommerce
property:
  path: totalOrders
  name: total orders
  description: Number of attributed orders.
  datatype: int
  min count: 1
  max count: 1
property:
  path: totalSpent
  name: total spent
  description: Total amount spent across attributed orders.
  datatype: double
  min count: 1
  max count: 1
property:
  path: totalRevenue
  name: total revenue
  description: Net attributed revenue.
  datatype: double
  min count: 1
  max count: 1

ReportSummaryShape
type: NodeShape
target class: ReportSummary
property:
  path: opens
  name: opens
  description: Total opens across all recipients.
  datatype: int
  min count: 1
  max count: 1
property:
  path: uniqueOpens
  name: unique opens
  description: Distinct opening recipients.
  datatype: int
  min count: 1
  max count: 1
property:
  path: clicks
  name: clicks
  description: Total link clicks.
  datatype: int
  min count: 1
  max count: 1
property:
  path: subscriberClicks
  name: subscriber clicks
  description: Distinct clicking recipients.
  datatype: int
  min count: 1
  max count: 1
property:
  path: openRate
  name: open rate
  description: Opens divided by deliveries.
  datatype: double
  min count: 1
  max count: 1
property:
  path: clickRate
  name: click rate
  description: Clicks divided by deliveries.
  datatype: double
  min count: 1
  max count: 1
property:
  path: ecommerce
  name: ecommerce
  description: Attributed e-commerce aggregates. Absent on Automation summaries.
  node: ReportSummaryEcommerceShape
  class: ReportSummaryEcommerce
  node kind: BlankNodeOrIRI
  max count: 1

CampaignTrackingSalesforceShape
type: NodeShape
target class: CampaignTrackingSalesforce
property:
  path: campaign
  name: campaign
  description: Push a Salesforce campaign record on send.
  datatype: boolean
  min count: 1
  max count: 1
property:
  path: notes
  name: notes
  description: Push send activity into Salesforce notes.
  datatype: boolean
  min count: 1
  max count: 1

CampaignTrackingCapsuleShape
type: NodeShape
target class: CampaignTrackingCapsule
property:
  path: notes
  name: notes
  description: Push send activity into Capsule notes.
  datatype: boolean
  min count: 1
  max count: 1

TrackingConfigurationShape
type: NodeShape
target class: TrackingConfiguration
property:
  path: opens
  name: opens
  description: Track open pixel events.
  datatype: boolean
  min count: 1
  max count: 1
property:
  path: htmlClicks
  name: html clicks
  description: Track clicks in the HTML body.
  datatype: boolean
  min count: 1
  max count: 1
property:
  path: textClicks
  name: text clicks
  description: Track clicks in the plain-text body.
  datatype: boolean
  min count: 1
  max count: 1
property:
  path: goalTracking
  name: goal tracking
  description: Track conversions on the operator's website via Mailchimp goals.
  datatype: boolean
  min count: 1
  max count: 1
property:
  path: ecomm360
  name: ecomm360
  description: Track e-commerce events via Mailchimp Ecomm360.
  datatype: boolean
  min count: 1
  max count: 1
property:
  path: googleAnalytics
  name: google analytics
  description: Google Analytics campaign tag (max 50 bytes).
  datatype: string
  max count: 1
property:
  path: clicktale
  name: clicktale
  description: ClickTale campaign tag (max 50 bytes).
  datatype: string
  max count: 1
property:
  path: salesforce
  name: salesforce
  description: Salesforce CRM push toggles.
  node: CampaignTrackingSalesforceShape
  class: CampaignTrackingSalesforce
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: capsule
  name: capsule
  description: Capsule CRM push toggles.
  node: CampaignTrackingCapsuleShape
  class: CampaignTrackingCapsule
  node kind: BlankNodeOrIRI
  max count: 1

SegmentConditionShape
type: NodeShape
target class: SegmentCondition
property:
  path: conditionType
  name: condition type
  description: Discriminator selecting the condition variant.
  datatype: string
  min count: 1
  max count: 1
property:
  path: field
  name: field
  description: Member or merge-field path the condition targets. Variant-defined.
  datatype: string
  max count: 1
property:
  path: op
  name: op
  description: Comparison operator (e.g. `is`, `not`, `greater`). Variant-defined.
  datatype: string
  max count: 1
property:
  path: value
  name: value
  description: Variant-specific comparison value. Concrete type depends on `conditionType` (string, number, boolean, array, or nested object).
  datatype: JSON
  max count: 1

ListContactShape
type: NodeShape
target class: ListContact
property:
  path: company
  name: company
  description: Company or organization name printed in the footer.
  datatype: string
  min count: 1
  max count: 1
property:
  path: address1
  name: address1
  description: Street address line 1.
  datatype: string
  min count: 1
  max count: 1
property:
  path: address2
  name: address2
  description: Street address line 2 (suite, unit, etc.).
  datatype: string
  max count: 1
property:
  path: city
  name: city
  description: City.
  datatype: string
  min count: 1
  max count: 1
property:
  path: state
  name: state
  description: State or province.
  datatype: string
  min count: 1
  max count: 1
property:
  path: https://relay.inferal.com/ontology/mailchimp/property/Mailchimp.ListContact/zip
  name: zip
  description: Postal code.
  datatype: string
  min count: 1
  max count: 1
property:
  path: country
  name: country
  description: ISO 3166-1 alpha-2 country code.
  datatype: string
  min count: 1
  max count: 1
property:
  path: phone
  name: phone
  description: Contact phone number.
  datatype: string
  max count: 1

ListCampaignDefaultsShape
type: NodeShape
target class: ListCampaignDefaults
property:
  path: fromName
  name: from name
  description: Default "from" display name.
  datatype: string
  min count: 1
  max count: 1
property:
  path: fromEmail
  name: from email
  description: Default "from" email address.
  datatype: string
  min count: 1
  max count: 1
property:
  path: subject
  name: subject
  description: Default subject line.
  datatype: string
  min count: 1
  max count: 1
property:
  path: language
  name: language
  description: Default language code (e.g. `en`, `es`).
  datatype: string
  min count: 1
  max count: 1

ListStatsShape
type: NodeShape
target class: ListStats
property:
  path: memberCount
  name: member count
  description: Active subscriber count.
  datatype: int
  min count: 1
  max count: 1
property:
  path: totalContacts
  name: total contacts
  description: Total contacts in any state (subscribed + unsubscribed + cleaned).
  datatype: int
  min count: 1
  max count: 1
property:
  path: unsubscribeCount
  name: unsubscribe count
  description: Unsubscribed contact count.
  datatype: int
  min count: 1
  max count: 1
property:
  path: cleanedCount
  name: cleaned count
  description: Cleaned (bounced/invalid) contact count.
  datatype: int
  min count: 1
  max count: 1
property:
  path: memberCountSinceSend
  name: member count since send
  description: Net subscribers added since the last send.
  datatype: int
  min count: 1
  max count: 1
property:
  path: unsubscribeCountSinceSend
  name: unsubscribe count since send
  description: Unsubscribes since the last send.
  datatype: int
  min count: 1
  max count: 1
property:
  path: cleanedCountSinceSend
  name: cleaned count since send
  description: Contacts cleaned since the last send.
  datatype: int
  min count: 1
  max count: 1
property:
  path: campaignCount
  name: campaign count
  description: Lifetime campaign count for this list.
  datatype: int
  min count: 1
  max count: 1
property:
  path: campaignLastSent
  name: campaign last sent
  description: Total campaigns ever sent to this list.
  datatype: dateTime
  max count: 1
property:
  path: mergeFieldCount
  name: merge field count
  description: Number of merge fields defined for the list.
  datatype: int
  min count: 1
  max count: 1
property:
  path: avgSubRate
  name: avg sub rate
  description: Average subscribe rate per month.
  datatype: double
  min count: 1
  max count: 1
property:
  path: avgUnsubRate
  name: avg unsub rate
  description: Average unsubscribe rate per month.
  datatype: double
  min count: 1
  max count: 1
property:
  path: targetSubRate
  name: target sub rate
  description: Target monthly subscribe rate set by the operator.
  datatype: double
  min count: 1
  max count: 1
property:
  path: openRate
  name: open rate
  description: Open rate averaged across recent campaigns.
  datatype: double
  min count: 1
  max count: 1
property:
  path: clickRate
  name: click rate
  description: Click rate averaged across recent campaigns.
  datatype: double
  min count: 1
  max count: 1
property:
  path: lastSubDate
  name: last sub date
  description: Timestamp of the most recent subscribe event.
  datatype: dateTime
  max count: 1
property:
  path: lastUnsubDate
  name: last unsub date
  description: Timestamp of the most recent unsubscribe event.
  datatype: dateTime
  max count: 1

ListShape
type: NodeShape
target class: List
property:
  path: id
  name: id
  description: Opaque list identifier.
  datatype: string
  min count: 1
  max count: 1
property:
  path: webId
  name: web id
  description: Secondary numeric identifier surfaced in the Mailchimp admin UI URL.
  datatype: int
  min count: 1
  max count: 1
property:
  path: name
  name: name
  description: Display name of the list.
  datatype: string
  min count: 1
  max count: 1
property:
  path: contact
  name: contact
  description: Physical mailing address printed in the campaign footer.
  node: ListContactShape
  class: ListContact
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: permissionReminder
  name: permission reminder
  description: Reminder text explaining why a recipient is on this list.
  datatype: string
  min count: 1
  max count: 1
property:
  path: useArchiveBar
  name: use archive bar
  description: Whether to render the Mailchimp archive bar in sent campaigns.
  datatype: boolean
  max count: 1
property:
  path: campaignDefaults
  name: campaign defaults
  description: Default field values applied to new campaigns drafted against this list.
  node: ListCampaignDefaultsShape
  class: ListCampaignDefaults
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: notifyOnSubscribe
  name: notify on subscribe
  description: Email address notified when a contact subscribes.
  datatype: string
  max count: 1
property:
  path: notifyOnUnsubscribe
  name: notify on unsubscribe
  description: Email address notified when a contact unsubscribes.
  datatype: string
  max count: 1
property:
  path: dateCreated
  name: date created
  description: Timestamp when the list was created.
  datatype: dateTime
  min count: 1
  max count: 1
property:
  path: listRating
  name: list rating
  description: Mailchimp-assigned engagement rating from 0 (lowest) to 5 (highest).
  datatype: int
  min count: 1
  max count: 1
property:
  path: emailTypeOption
  name: email type option
  description: Whether subscribers can choose between HTML and plain-text email.
  datatype: boolean
  min count: 1
  max count: 1
property:
  path: subscribeUrlShort
  name: subscribe url short
  description: Branded short URL hosting the subscribe form.
  datatype: string
  min count: 1
  max count: 1
property:
  path: subscribeUrlLong
  name: subscribe url long
  description: Canonical long URL hosting the subscribe form.
  datatype: string
  min count: 1
  max count: 1
property:
  path: beamerAddress
  name: beamer address
  description: Email Beamer inbound address for converting emails into campaigns.
  datatype: string
  min count: 1
  max count: 1
property:
  path: visibility
  name: visibility
  description: Legacy public/private visibility flag. Newer accounts always see `prv`.
  datatype: string
  min count: 1
  max count: 1
  in: pub
  in: prv
property:
  path: doubleOptin
  name: double optin
  description: Whether subscribers must confirm via a follow-up email before being added.
  datatype: boolean
  max count: 1
property:
  path: hasWelcome
  name: has welcome
  description: Whether a welcome email is sent on subscribe.
  datatype: boolean
  max count: 1
property:
  path: marketingPermissions
  name: marketing permissions
  description: Whether the list collects GDPR marketing permission flags.
  datatype: boolean
  max count: 1
property:
  path: modules
  name: modules
  description: Mailchimp module identifiers enabled for the list (read-only).
  datatype: string
property:
  path: stats
  name: stats
  description: Aggregate counters and rate metrics for the list.
  node: ListStatsShape
  class: ListStats
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: links
  name: links
  description: HATEOAS link descriptors for related resources.
  node: HALLinkShape
  class: HALLink
  node kind: BlankNodeOrIRI

MemberStatsEcommerceDataShape
type: NodeShape
target class: MemberStatsEcommerceData
property:
  path: totalRevenue
  name: total revenue
  description: Lifetime attributed revenue.
  datatype: double
  min count: 1
  max count: 1
property:
  path: numberOfOrders
  name: number of orders
  description: Lifetime attributed order count.
  datatype: double
  min count: 1
  max count: 1
property:
  path: currencyCode
  name: currency code
  description: ISO 4217 currency code of the attributed totals.
  datatype: string
  min count: 1
  max count: 1

MemberStatsShape
type: NodeShape
target class: MemberStats
property:
  path: avgOpenRate
  name: avg open rate
  description: Open rate averaged across campaigns sent to this member.
  datatype: double
  min count: 1
  max count: 1
property:
  path: avgClickRate
  name: avg click rate
  description: Click rate averaged across campaigns sent to this member.
  datatype: double
  min count: 1
  max count: 1
property:
  path: ecommerceData
  name: ecommerce data
  description: Attributed e-commerce aggregates from Ecomm360.
  node: MemberStatsEcommerceDataShape
  class: MemberStatsEcommerceData
  node kind: BlankNodeOrIRI
  max count: 1

MemberLocationShape
type: NodeShape
target class: MemberLocation
property:
  path: latitude
  name: latitude
  description: Approximate latitude.
  datatype: double
  max count: 1
property:
  path: longitude
  name: longitude
  description: Approximate longitude.
  datatype: double
  max count: 1
property:
  path: gmtoff
  name: gmtoff
  description: GMT offset in hours at resolution time.
  datatype: int
  max count: 1
property:
  path: dstoff
  name: dstoff
  description: Daylight-savings offset in hours at resolution time.
  datatype: int
  max count: 1
property:
  path: countryCode
  name: country code
  description: ISO 3166-1 alpha-2 country code.
  datatype: string
  max count: 1
property:
  path: timezone
  name: timezone
  description: IANA timezone identifier.
  datatype: string
  max count: 1
property:
  path: region
  name: region
  description: ISO 3166-2 subdivision code.
  datatype: string
  max count: 1

MemberMarketingPermissionShape
type: NodeShape
target class: MemberMarketingPermission
property:
  path: marketingPermissionId
  name: marketing permission id
  description: Opaque permission identifier scoped to the parent list.
  datatype: string
  min count: 1
  max count: 1
property:
  path: text
  name: text
  description: Human-readable description of what the subscriber consented to.
  datatype: string
  min count: 1
  max count: 1
property:
  path: enabled
  name: enabled
  description: Whether the subscriber currently grants the permission.
  datatype: boolean
  min count: 1
  max count: 1

MemberLastNoteShape
type: NodeShape
target class: MemberLastNote
property:
  path: noteId
  name: note id
  description: Opaque identifier of the source `MemberNote`.
  node: MemberNoteShape
  class: MemberNote
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: createdAt
  name: created at
  description: Timestamp when the note was authored.
  datatype: dateTime
  min count: 1
  max count: 1
property:
  path: createdBy
  name: created by
  description: Display name of the account user who authored the note.
  datatype: string
  min count: 1
  max count: 1
property:
  path: note
  name: note
  description: Free-text note body.
  datatype: string
  min count: 1
  max count: 1

MemberNoteShape
type: NodeShape
target class: MemberNote
property:
  path: id
  name: id
  description: Opaque member-note ID.
  datatype: string
  min count: 1
  max count: 1
property:
  path: memberId
  name: member id
  description: Parent member this note is attached to.
  class: Member
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: note
  name: note
  description: Free-text note body.
  datatype: string
  min count: 1
  max count: 1
property:
  path: createdAt
  name: created at
  description: Timestamp when the note was created.
  datatype: dateTime
  min count: 1
  max count: 1

MemberShape
type: NodeShape
target class: Member
property:
  path: id
  name: id
  description: MD5 hash of the lowercased email address. Distinct from `uniqueEmailId`.
  datatype: string
  min count: 1
  max count: 1
  pattern: ^[a-f0-9]{32}$
property:
  path: emailAddress
  name: email address
  description: Subscriber's email address.
  datatype: string
  max count: 1
property:
  path: uniqueEmailId
  name: unique email id
  description: Cross-Mailchimp email-address identifier (different from `id`).
  datatype: string
  max count: 1
property:
  path: contactId
  name: contact id
  description: Email-agnostic contact identifier persistent across address changes.
  datatype: string
  max count: 1
property:
  path: fullName
  name: full name
  description: Subscriber's full name as resolved from merge fields.
  datatype: string
  max count: 1
property:
  path: webId
  name: web id
  description: Secondary numeric identifier surfaced in the Mailchimp admin UI URL.
  datatype: int
  max count: 1
property:
  path: emailType
  name: email type
  description: Delivery format preference (`html` or `text`).
  datatype: string
  max count: 1
  in: html
  in: text
property:
  path: status
  name: status
  description: Subscription state of the contact on the list.
  datatype: string
  max count: 1
  in: subscribed
  in: unsubscribed
  in: cleaned
  in: pending
  in: transactional
  in: archived
property:
  path: unsubscribeReason
  name: unsubscribe reason
  description: Free-text reason captured when the subscriber unsubscribed.
  datatype: string
  max count: 1
property:
  path: consentsToOneToOneMessaging
  name: consents to one to one messaging
  description: Whether the subscriber consents to one-to-one outreach.
  datatype: boolean
  max count: 1
property:
  path: smsPhoneNumber
  name: sms phone number
  description: SMS phone number on file. US numbers only.
  datatype: string
  max count: 1
property:
  path: smsSubscriptionStatus
  name: sms subscription status
  description: SMS subscription state.
  datatype: string
  max count: 1
  in: subscribed
  in: unsubscribed
  in: nonsubscribed
  in: pending
property:
  path: smsSubscriptionLastUpdated
  name: sms subscription last updated
  description: Last update to SMS subscription state. Wire format is unspecified; emitted as a string.
  datatype: string
  max count: 1
property:
  path: mergeFields
  name: merge fields
  description: Open dictionary of merge-field values keyed by merge tag.
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: interests
  name: interests
  description: Map of interest opt-ins. Keys are `Ref<Interest>` identifiers; values indicate whether the subscriber is opted in.
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: stats
  name: stats
  description: Engagement and e-commerce summary for the subscriber.
  node: MemberStatsShape
  class: MemberStats
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: ipSignup
  name: ip signup
  description: IP address recorded at signup.
  datatype: string
  max count: 1
property:
  path: ipOpt
  name: ip opt
  description: IP address recorded at confirmed opt-in.
  datatype: string
  max count: 1
property:
  path: timestampSignup
  name: timestamp signup
  description: Timestamp recorded at signup.
  datatype: dateTime
  max count: 1
property:
  path: timestampOpt
  name: timestamp opt
  description: Timestamp recorded at confirmed opt-in.
  datatype: dateTime
  max count: 1
property:
  path: memberRating
  name: member rating
  description: Mailchimp-assigned engagement rating from 1 (lowest) to 5 (highest).
  datatype: int
  max count: 1
property:
  path: lastChanged
  name: last changed
  description: Timestamp of the most recent change to the subscriber record.
  datatype: dateTime
  max count: 1
property:
  path: language
  name: language
  description: Subscriber language code (e.g. `en`, `es`).
  datatype: string
  max count: 1
property:
  path: vip
  name: vip
  description: Whether the subscriber is flagged as a VIP for the account.
  datatype: boolean
  max count: 1
property:
  path: emailClient
  name: email client
  description: Inferred email client (`Apple Mail`, `Gmail`, etc.).
  datatype: string
  max count: 1
property:
  path: location
  name: location
  description: Approximate geographic location resolved from the subscriber's IP.
  node: MemberLocationShape
  class: MemberLocation
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: marketingPermissions
  name: marketing permissions
  description: GDPR marketing-permission flags. One entry per permission defined on the parent list.
  node: MemberMarketingPermissionShape
  class: MemberMarketingPermission
  node kind: BlankNodeOrIRI
property:
  path: lastNote
  name: last note
  description: Most recent note attached to the subscriber.
  node: MemberLastNoteShape
  class: MemberLastNote
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: source
  name: source
  description: Acquisition source (e.g. signup form, API, import).
  datatype: string
  max count: 1

MemberTagShape
type: NodeShape
target class: MemberTag
property:
  path: id
  name: id
  description: Tag identifier within the parent list.
  node: TagShape
  class: Tag
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: name
  name: name
  description: Tag display name.
  datatype: string
  min count: 1
  max count: 1

TagShape
type: NodeShape
target class: Tag
property:
  path: id
  name: id
  description: Integer tag identifier scoped to the parent list.
  datatype: int
  min count: 1
  max count: 1
property:
  path: name
  name: name
  description: Display name of the tag.
  datatype: string
  min count: 1
  max count: 1

SegmentOptionsShape
type: NodeShape
target class: SegmentOptions
property:
  path: match
  name: match
  description: Whether condition rows are combined with logical OR (`any`) or AND (`all`).
  datatype: string
  min count: 1
  max count: 1
  in: any
  in: all
property:
  path: conditions
  name: conditions
  description: Polymorphic condition rows; variant is keyed by `conditionType`.
  node: SegmentConditionShape
  class: SegmentCondition
  node kind: BlankNodeOrIRI

SegmentShape
type: NodeShape
target class: Segment
property:
  path: id
  name: id
  description: Integer segment identifier scoped to the parent list.
  datatype: int
  min count: 1
  max count: 1
property:
  path: name
  name: name
  description: Display name of the segment.
  datatype: string
  min count: 1
  max count: 1
property:
  path: memberCount
  name: member count
  description: Cached count of subscribers matching the segment predicate.
  datatype: int
  min count: 1
  max count: 1
property:
  path: type
  name: type
  description: Segment kind.
  datatype: string
  min count: 1
  max count: 1
  in: saved
  in: static
  in: fuzzy
property:
  path: createdAt
  name: created at
  description: Timestamp when the segment was created.
  datatype: dateTime
  min count: 1
  max count: 1
property:
  path: updatedAt
  name: updated at
  description: Timestamp of the most recent edit.
  datatype: dateTime
  min count: 1
  max count: 1
property:
  path: options
  name: options
  description: Predicate definition. Absent on `static` and `fuzzy` segments.
  node: SegmentOptionsShape
  class: SegmentOptions
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: listId
  name: list id
  description: Parent list that owns the segment.
  node: ListShape
  class: List
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: links
  name: links
  description: HATEOAS link descriptors for related resources.
  node: HALLinkShape
  class: HALLink
  node kind: BlankNodeOrIRI

MergeFieldOptionsShape
type: NodeShape
target class: MergeFieldOptions
property:
  path: defaultCountry
  name: default country
  description: Numeric Mailchimp country code applied as the default for `address` merge fields.
  datatype: int
  max count: 1
property:
  path: phoneFormat
  name: phone format
  description: Phone-number format applied to `phone` merge fields.
  datatype: string
  max count: 1
  in: US
  in: International
property:
  path: dateFormat
  name: date format
  description: Date format string for `date` and `birthday` merge fields (e.g. `MM/DD/YYYY`).
  datatype: string
  max count: 1
property:
  path: choices
  name: choices
  description: Enumerated choices for `radio` and `dropdown` merge fields.
  datatype: string
property:
  path: size
  name: size
  description: Input width hint for `text` and `number` merge fields.
  datatype: int
  max count: 1

MergeFieldShape
type: NodeShape
target class: MergeField
property:
  path: mergeId
  name: merge id
  description: Integer merge-field identifier scoped to the parent list.
  datatype: int
  min count: 1
  max count: 1
property:
  path: tag
  name: tag
  description: Merge tag used in campaign content (e.g. `FNAME`, `LNAME`, `EMAIL`).
  datatype: string
  min count: 1
  max count: 1
property:
  path: name
  name: name
  description: Display name shown in the Mailchimp admin UI and on forms.
  datatype: string
  min count: 1
  max count: 1
property:
  path: type
  name: type
  description: Data type of the merge field.
  datatype: string
  min count: 1
  max count: 1
  in: text
  in: number
  in: address
  in: phone
  in: date
  in: url
  in: imageurl
  in: radio
  in: dropdown
  in: birthday
  in: zip
property:
  path: required
  name: required
  description: Whether the merge field is required on signup.
  datatype: boolean
  max count: 1
property:
  path: defaultValue
  name: default value
  description: Default value applied when the subscriber does not supply one.
  datatype: string
  max count: 1
property:
  path: public
  name: public
  description: Whether the merge field is shown on the public signup form.
  datatype: boolean
  max count: 1
property:
  path: displayOrder
  name: display order
  description: Position of the merge field within the list's form.
  datatype: int
  max count: 1
property:
  path: options
  name: options
  description: Type-specific configuration options. Populated keys depend on `type`.
  node: MergeFieldOptionsShape
  class: MergeFieldOptions
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: helpText
  name: help text
  description: Helper text rendered under the merge field on signup forms.
  datatype: string
  max count: 1
property:
  path: listId
  name: list id
  description: Parent list that owns the merge field.
  node: ListShape
  class: List
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: links
  name: links
  description: HATEOAS link descriptors for related resources.
  node: HALLinkShape
  class: HALLink
  node kind: BlankNodeOrIRI

MergeFieldPostResponseShape
type: NodeShape
target class: MergeFieldPostResponse
property:
  path: mergeId
  name: merge id
  description: Integer merge-field identifier scoped to the parent list.
  datatype: int
  min count: 1
  max count: 1
property:
  path: tag
  name: tag
  description: Merge tag used in campaign content (e.g. `FNAME`, `LNAME`, `EMAIL`).
  datatype: string
  min count: 1
  max count: 1
property:
  path: name
  name: name
  description: Display name shown in the Mailchimp admin UI and on forms.
  datatype: string
  min count: 1
  max count: 1
property:
  path: type
  name: type
  description: Data type of the merge field.
  datatype: string
  min count: 1
  max count: 1
  in: text
  in: number
  in: address
  in: phone
  in: date
  in: url
  in: imageurl
  in: radio
  in: dropdown
  in: birthday
  in: zip
property:
  path: required
  name: required
  description: Whether the merge field is required on signup.
  datatype: boolean
  max count: 1
property:
  path: defaultValue
  name: default value
  description: Default value applied when the subscriber does not supply one.
  datatype: string
  max count: 1
property:
  path: public
  name: public
  description: Whether the merge field is shown on the public signup form.
  datatype: boolean
  max count: 1
property:
  path: displayOrder
  name: display order
  description: Position of the merge field within the list's form.
  datatype: int
  max count: 1
property:
  path: options
  name: options
  description: Type-specific configuration options. Populated keys depend on `type`.
  node: MergeFieldOptionsShape
  class: MergeFieldOptions
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: helpText
  name: help text
  description: Helper text rendered under the merge field on signup forms.
  datatype: string
  max count: 1
property:
  path: listId
  name: list id
  description: Parent list that owns the merge field.
  node: ListShape
  class: List
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: links
  name: links
  description: HATEOAS link descriptors for related resources.
  node: HALLinkShape
  class: HALLink
  node kind: BlankNodeOrIRI
property:
  path: totalItems
  name: total items
  description: Total merge fields defined for the parent list after this insert.
  datatype: int
  min count: 1
  max count: 1
property:
  path: mergeFieldLimit
  name: merge field limit
  description: Account-level cap on merge fields per list.
  datatype: int
  min count: 1
  max count: 1

CampaignShape
type: NodeShape
target class: Campaign
property:
  path: id
  name: id
  description: Campaign ID. Opaque string assigned by Mailchimp.
  datatype: string
  min count: 1
  max count: 1
property:
  path: webId
  name: web id
  description: Display ID used in the Mailchimp web UI; not an entity reference
  datatype: int
  max count: 1
property:
  path: parentCampaignId
  name: parent campaign id
  description: Parent campaign ID for RSS/automation child campaigns; self-reference
  class: Campaign
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: type
  name: type
  description: Campaign type (regular, plaintext, absplit, rss, variate)
  datatype: string
  max count: 1
  in: regular
  in: plaintext
  in: absplit
  in: rss
  in: variate
property:
  path: createTime
  name: create time
  description: Timestamp when the campaign was created
  datatype: dateTime
  max count: 1
property:
  path: archiveUrl
  name: archive url
  description: Public archive URL for the campaign
  datatype: anyURI
  max count: 1
property:
  path: longArchiveUrl
  name: long archive url
  description: Long-form public archive URL for the campaign
  datatype: string
  max count: 1
property:
  path: status
  name: status
  description: Campaign lifecycle status
  datatype: string
  max count: 1
  in: save
  in: paused
  in: schedule
  in: sending
  in: sent
  in: canceled
  in: canceling
  in: archived
property:
  path: emailsSent
  name: emails sent
  description: Total number of emails sent
  datatype: int
  max count: 1
property:
  path: sendTime
  name: send time
  description: Timestamp when the campaign was sent
  datatype: dateTime
  max count: 1
property:
  path: contentType
  name: content type
  description: Source of the campaign content
  datatype: string
  max count: 1
  in: template
  in: html
  in: url
  in: multichannel
property:
  path: needsBlockRefresh
  name: needs block refresh
  description: Deprecated; always false in current responses
  datatype: boolean
  max count: 1
property:
  path: resendable
  name: resendable
  description: Whether this campaign is eligible to be resent
  datatype: boolean
  max count: 1
property:
  path: recipients
  name: recipients
  description: Recipient targeting for the campaign
  node: CampaignRecipientsShape
  class: CampaignRecipients
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: settings
  name: settings
  description: Campaign settings (subject, from, content options)
  node: CampaignSettingsShape
  class: CampaignSettings
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: variateSettings
  name: variate settings
  description: Variate (multivariate) test configuration; present when type is variate
  class: VariateSettings
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: tracking
  name: tracking
  description: Open/click/ecommerce tracking flags; see common CampaignTracking
  node: TrackingConfigurationShape
  class: TrackingConfiguration
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: rssOpts
  name: rss opts
  description: RSS feed options; present when type is rss
  node: RssOptsShape
  class: RssOpts
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: abSplitOpts
  name: ab split opts
  description: Deprecated legacy A/B split test options. Mailchimp no longer authors classic A/B from the API; use `Campaigns.VariateSettings` for multivariate tests.
  node: ABSplitOptionsShape
  class: ABSplitOptions
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: socialCard
  name: social card
  description: Social-card preview image, title, and description
  node: SocialCardShape
  class: SocialCard
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: reportSummary
  name: report summary
  description: Per-campaign report summary; see common ReportSummary
  node: ReportSummaryShape
  class: ReportSummary
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: deliveryStatus
  name: delivery status
  description: Delivery status; see common DeliveryStatus
  node: DeliveryStatusShape
  class: DeliveryStatus
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: resendShortcutEligibility
  name: resend shortcut eligibility
  description: Eligibility flags for the four resend-shortcut variants
  node: ResendShortcutEligibilityShape
  class: ResendShortcutEligibility
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: resendShortcutUsage
  name: resend shortcut usage
  description: Records of resend-shortcut campaigns spawned from this campaign
  node: ResendShortcutUsageShape
  class: ResendShortcutUsage
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: links
  name: links
  description: HATEOAS links for the campaign resource
  node: HALLinkShape
  class: HALLink
  node kind: BlankNodeOrIRI

CampaignRecipientsShape
type: NodeShape
target class: CampaignRecipients
property:
  path: listId
  name: list id
  description: Audience (list) ID this campaign sends to
  node: ListShape
  class: List
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: listIsActive
  name: list is active
  description: Whether the target audience is currently active
  datatype: boolean
  max count: 1
property:
  path: listName
  name: list name
  description: Display name of the target audience
  datatype: string
  max count: 1
property:
  path: segmentText
  name: segment text
  description: HTML description of the targeted segment
  datatype: string
  max count: 1
property:
  path: recipientCount
  name: recipient count
  description: Number of recipients targeted by this campaign
  datatype: int
  max count: 1
property:
  path: segmentOpts
  name: segment opts
  description: Segment options applied to the audience
  node: SegmentOptsShape
  class: SegmentOpts
  node kind: BlankNodeOrIRI
  max count: 1

SegmentOptsShape
type: NodeShape
target class: SegmentOpts
property:
  path: savedSegmentId
  name: saved segment id
  description: Saved segment ID (integer variant)
  node: SegmentShape
  class: Segment
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: prebuiltSegmentId
  name: prebuilt segment id
  description: Prebuilt segment ID (string variant). Modeled as plain string because heterogeneous Ref<Segment> across int and string key types cannot be expressed through dual scalars cleanly; resolve at consumer.
  datatype: string
  max count: 1
property:
  path: match
  name: match
  description: Whether all or any conditions must match
  datatype: string
  max count: 1
  in: any
  in: all
property:
  path: conditions
  name: conditions
  description: Segment conditions (polymorphic, discriminator condition_type). Promoted to shared SegmentCondition base model in common.tsp.
  node: SegmentConditionShape
  class: SegmentCondition
  node kind: BlankNodeOrIRI

CampaignSettingsShape
type: NodeShape
target class: CampaignSettings
property:
  path: subjectLine
  name: subject line
  description: Subject line shown in the recipient's inbox
  datatype: string
  max count: 1
property:
  path: previewText
  name: preview text
  description: Preview snippet rendered in inbox clients alongside the subject
  datatype: string
  max count: 1
property:
  path: title
  name: title
  description: Internal title of the campaign (not shown to recipients)
  datatype: string
  max count: 1
property:
  path: fromName
  name: from name
  description: Display name shown in the From header
  datatype: string
  max count: 1
property:
  path: replyTo
  name: reply to
  description: Reply-to email address
  datatype: string
  max count: 1
property:
  path: useConversation
  name: use conversation
  description: Whether to enable Mailchimp Conversation for inbound replies
  datatype: boolean
  max count: 1
property:
  path: toName
  name: to name
  description: Recipient name expression (merge-tag aware)
  datatype: string
  max count: 1
property:
  path: folderId
  name: folder id
  description: Campaign folder ID. Dangling Ref<CampaignFolder>; CampaignFolder entity not in v1.
  datatype: string
  max count: 1
property:
  path: authenticate
  name: authenticate
  description: Whether the campaign is authenticated (DKIM/SPF)
  datatype: boolean
  max count: 1
property:
  path: autoFooter
  name: auto footer
  description: Whether the default Mailchimp footer is automatically appended
  datatype: boolean
  max count: 1
property:
  path: inlineCss
  name: inline css
  description: Whether CSS is inlined automatically on send
  datatype: boolean
  max count: 1
property:
  path: autoTweet
  name: auto tweet
  description: Whether the campaign auto-tweets when sent
  datatype: boolean
  max count: 1
property:
  path: autoFbPost
  name: auto fb post
  description: Facebook page IDs to auto-post the campaign to
  datatype: string
property:
  path: fbComments
  name: fb comments
  description: Whether Facebook comments are enabled on the campaign
  datatype: boolean
  max count: 1
property:
  path: timewarp
  name: timewarp
  description: Whether Timewarp delivery is enabled
  datatype: boolean
  max count: 1
property:
  path: templateId
  name: template id
  description: Template ID used to construct the campaign content. Dangling Ref<Template>; Template entity not in v1.
  datatype: int
  max count: 1
property:
  path: dragAndDrop
  name: drag and drop
  description: Whether the campaign was built with the drag-and-drop editor
  datatype: boolean
  max count: 1
property:
  path: googleAnalytics
  name: google analytics
  description: Google Analytics campaign name (max 50 bytes)
  datatype: string
  max count: 1
property:
  path: clicktale
  name: clicktale
  description: Clicktale campaign name (max 50 bytes)
  datatype: string
  max count: 1

VariateSettingsShape
type: NodeShape
target class: VariateSettings
property:
  path: winningCombinationId
  name: winning combination id
  description: ID of the combination chosen as the variate winner
  datatype: string
  max count: 1
property:
  path: winningCampaignId
  name: winning campaign id
  description: ID of the campaign sent to the remaining audience after a variate winner is selected
  class: Campaign
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: winnerCriteria
  name: winner criteria
  description: Criterion used to pick the variate winner
  datatype: string
  max count: 1
  in: opens
  in: clicks
  in: manual
  in: total_revenue
property:
  path: waitTime
  name: wait time
  description: Wait time before evaluating variate combinations
  datatype: int
  max count: 1
property:
  path: testSize
  name: test size
  description: Fraction of the audience used for the variate test
  datatype: int
  max count: 1
property:
  path: subjectLines
  name: subject lines
  description: Subject lines tested in this variate campaign
  datatype: string
property:
  path: sendTimes
  name: send times
  description: Send times tested in this variate campaign. Local-clock format YYYY-MM-DD HH:MM:SS, not ISO 8601; deliberately string[] rather than utcDateTime[].
  datatype: string
property:
  path: fromNames
  name: from names
  description: From names tested in this variate campaign
  datatype: string
property:
  path: replyToAddresses
  name: reply to addresses
  description: Reply-to addresses tested in this variate campaign
  datatype: string
property:
  path: contents
  name: contents
  description: Content blocks tested in this variate campaign
  datatype: string
property:
  path: combinations
  name: combinations
  description: Resolved variate combinations and their per-arm metrics
  node: VariateCombinationShape
  class: VariateCombination
  node kind: BlankNodeOrIRI

VariateCombinationShape
type: NodeShape
target class: VariateCombination
property:
  path: id
  name: id
  description: Unique ID for this variate combination
  datatype: string
  max count: 1
property:
  path: subjectLine
  name: subject line
  description: Array index into Campaign.variateSettings.subject_lines; NOT a Ref.
  datatype: int
  max count: 1
property:
  path: sendTime
  name: send time
  description: Array index into Campaign.variateSettings.send_times; NOT a Ref.
  datatype: int
  max count: 1
property:
  path: fromName
  name: from name
  description: Array index into Campaign.variateSettings.from_names; NOT a Ref.
  datatype: int
  max count: 1
property:
  path: replyTo
  name: reply to
  description: Array index into Campaign.variateSettings.reply_to_addresses; NOT a Ref.
  datatype: int
  max count: 1
property:
  path: contentDescription
  name: content description
  description: Array index into Campaign.variateSettings.contents; NOT a Ref.
  datatype: int
  max count: 1
property:
  path: recipients
  name: recipients
  description: Array index recording which recipient slice received this combination; NOT a Ref.
  datatype: int
  max count: 1

RssOptsShape
type: NodeShape
target class: RssOpts
property:
  path: feedUrl
  name: feed url
  description: RSS feed URL polled to drive the campaign
  datatype: anyURI
  max count: 1
property:
  path: frequency
  name: frequency
  description: Polling cadence for the RSS feed
  datatype: string
  max count: 1
  in: daily
  in: weekly
  in: monthly
property:
  path: schedule
  name: schedule
  description: Detailed schedule controlling when the feed is polled
  node: RssScheduleShape
  class: RssSchedule
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: lastSent
  name: last sent
  description: Timestamp of the most recent RSS send
  datatype: dateTime
  max count: 1
property:
  path: constrainRssImg
  name: constrain rss img
  description: Whether to constrain RSS images to the template width
  datatype: boolean
  max count: 1

RssScheduleShape
type: NodeShape
target class: RssSchedule
property:
  path: hour
  name: hour
  description: Hour of the day to send (0-23)
  datatype: int
  max count: 1
property:
  path: dailySend
  name: daily send
  description: Per-day enable flags for daily RSS sends
  node: RssDailySendShape
  class: RssDailySend
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: weeklySendDay
  name: weekly send day
  description: Day of the week to send for weekly RSS campaigns
  datatype: string
  max count: 1
  in: sunday
  in: monday
  in: tuesday
  in: wednesday
  in: thursday
  in: friday
  in: saturday
property:
  path: monthlySendDate
  name: monthly send date
  description: Day of the month to send for monthly RSS campaigns (0-31; 0 means the last day of the month)
  datatype: double
  max count: 1

RssDailySendShape
type: NodeShape
target class: RssDailySend
property:
  path: sunday
  name: sunday
  description: Send on Sundays
  datatype: boolean
  max count: 1
property:
  path: monday
  name: monday
  description: Send on Mondays
  datatype: boolean
  max count: 1
property:
  path: tuesday
  name: tuesday
  description: Send on Tuesdays
  datatype: boolean
  max count: 1
property:
  path: wednesday
  name: wednesday
  description: Send on Wednesdays
  datatype: boolean
  max count: 1
property:
  path: thursday
  name: thursday
  description: Send on Thursdays
  datatype: boolean
  max count: 1
property:
  path: friday
  name: friday
  description: Send on Fridays
  datatype: boolean
  max count: 1
property:
  path: saturday
  name: saturday
  description: Send on Saturdays
  datatype: boolean
  max count: 1

ABSplitOptionsShape
type: NodeShape
target class: ABSplitOptions
property:
  path: splitTest
  name: split test
  description: Which campaign attribute is being split-tested
  datatype: string
  max count: 1
  in: subject
  in: from_name
  in: schedule
property:
  path: pickWinner
  name: pick winner
  description: How the winning variant is selected
  datatype: string
  max count: 1
  in: opens
  in: clicks
  in: manual
property:
  path: waitUnits
  name: wait units
  description: Unit used for waitTime before evaluating the winner
  datatype: string
  max count: 1
  in: hours
  in: days
property:
  path: waitTime
  name: wait time
  description: Time to wait before evaluating the winner
  datatype: int
  max count: 1
property:
  path: splitSize
  name: split size
  description: Percentage of the audience used for the test split
  datatype: int
  max count: 1
property:
  path: fromNameA
  name: from name a
  description: From name used for variant A
  datatype: string
  max count: 1
property:
  path: fromNameB
  name: from name b
  description: From name used for variant B
  datatype: string
  max count: 1
property:
  path: replyEmailA
  name: reply email a
  description: Reply-to email used for variant A
  datatype: string
  max count: 1
property:
  path: replyEmailB
  name: reply email b
  description: Reply-to email used for variant B
  datatype: string
  max count: 1
property:
  path: subjectA
  name: subject a
  description: Subject line used for variant A
  datatype: string
  max count: 1
property:
  path: subjectB
  name: subject b
  description: Subject line used for variant B
  datatype: string
  max count: 1
property:
  path: sendTimeA
  name: send time a
  description: Send time for variant A
  datatype: dateTime
  max count: 1
property:
  path: sendTimeB
  name: send time b
  description: Send time for variant B
  datatype: dateTime
  max count: 1
property:
  path: sendTimeWinner
  name: send time winner
  description: Send time for the winning variant. Local-clock string, not ISO 8601; deliberately string rather than utcDateTime.
  datatype: string
  max count: 1

SocialCardShape
type: NodeShape
target class: SocialCard
property:
  path: imageUrl
  name: image url
  description: Image URL used for the social-card preview
  datatype: anyURI
  max count: 1
property:
  path: description
  name: description
  description: Social-card description text
  datatype: string
  max count: 1
property:
  path: title
  name: title
  description: Social-card title
  datatype: string
  max count: 1

ResendShortcutEligibilityShape
type: NodeShape
target class: ResendShortcutEligibility
property:
  path: toNonOpeners
  name: to non openers
  description: Eligibility for resending to non-openers
  node: ResendEligibilityEntryShape
  class: ResendEligibilityEntry
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: toNewSubscribers
  name: to new subscribers
  description: Eligibility for resending to new subscribers
  node: ResendEligibilityEntryShape
  class: ResendEligibilityEntry
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: toNonClickers
  name: to non clickers
  description: Eligibility for resending to non-clickers
  node: ResendEligibilityEntryShape
  class: ResendEligibilityEntry
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: toNonPurchasers
  name: to non purchasers
  description: Eligibility for resending to non-purchasers
  node: ResendEligibilityEntryShape
  class: ResendEligibilityEntry
  node kind: BlankNodeOrIRI
  max count: 1

ResendEligibilityEntryShape
type: NodeShape
target class: ResendEligibilityEntry
property:
  path: isEligible
  name: is eligible
  description: Whether this shortcut is eligible to be triggered
  datatype: boolean
  max count: 1
property:
  path: reason
  name: reason
  description: Reason explaining why this shortcut is or is not eligible
  datatype: string
  max count: 1

ResendShortcutUsageShape
type: NodeShape
target class: ResendShortcutUsage
property:
  path: shortcutCampaigns
  name: shortcut campaigns
  description: Campaigns generated from resend shortcuts on this original campaign
  node: ShortcutCampaignShape
  class: ShortcutCampaign
  node kind: BlankNodeOrIRI
property:
  path: originalCampaign
  name: original campaign
  description: Original campaign that produced these resend shortcuts
  node: OriginalShortcutCampaignShape
  class: OriginalShortcutCampaign
  node kind: BlankNodeOrIRI
  max count: 1

ShortcutCampaignShape
type: NodeShape
target class: ShortcutCampaign
property:
  path: id
  name: id
  description: Resend campaign ID
  class: Campaign
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: webId
  name: web id
  description: Display ID used in the Mailchimp web UI; not an entity reference
  datatype: int
  max count: 1
property:
  path: shortcutType
  name: shortcut type
  description: Resend shortcut variant used to generate this campaign
  datatype: string
  max count: 1
  in: non_openers
  in: new_subscribers
  in: non_clickers
  in: non_purchasers
property:
  path: sendTime
  name: send time
  description: Send time of the resend campaign
  datatype: dateTime
  max count: 1
property:
  path: status
  name: status
  description: Lifecycle status of the resend campaign
  datatype: string
  max count: 1
  in: save
  in: paused
  in: schedule
  in: sending
  in: sent
  in: canceled
  in: canceling
  in: archived

OriginalShortcutCampaignShape
type: NodeShape
target class: OriginalShortcutCampaign
property:
  path: id
  name: id
  description: Original campaign ID
  class: Campaign
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: webId
  name: web id
  description: Display ID used in the Mailchimp web UI; not an entity reference
  datatype: int
  max count: 1
property:
  path: title
  name: title
  description: Internal title of the original campaign
  datatype: string
  max count: 1
property:
  path: shortcutType
  name: shortcut type
  description: Resend shortcut variant used
  datatype: string
  max count: 1
  in: non_openers
  in: new_subscribers
  in: non_clickers
  in: non_purchasers

CampaignReportShape
type: NodeShape
target class: CampaignReport
property:
  path: id
  name: id
  description: Campaign report ID. Equal to the corresponding Campaign.id verbatim (1:1 keying). Acts as @key for this entity AND as Ref<Campaign>.
  class: Campaign
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: campaignTitle
  name: campaign title
  description: Title of the source campaign
  datatype: string
  max count: 1
property:
  path: type
  name: type
  description: Campaign report type. Wire formats differ from Campaign.type (hyphen/underscore drift; extra `automation` and `auto` values).
  datatype: string
  max count: 1
  in: regular
  in: plain-text
  in: ab_split
  in: rss
  in: variate
  in: automation
  in: auto
property:
  path: listId
  name: list id
  description: Audience (list) the source campaign sent to
  node: ListShape
  class: List
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: listIsActive
  name: list is active
  description: Whether the target audience is currently active
  datatype: boolean
  max count: 1
property:
  path: listName
  name: list name
  description: Display name of the target audience
  datatype: string
  max count: 1
property:
  path: subjectLine
  name: subject line
  description: Subject line of the source campaign
  datatype: string
  max count: 1
property:
  path: previewText
  name: preview text
  description: Preview text of the source campaign
  datatype: string
  max count: 1
property:
  path: emailsSent
  name: emails sent
  description: Total number of emails sent
  datatype: int
  max count: 1
property:
  path: abuseReports
  name: abuse reports
  description: Total number of abuse reports
  datatype: int
  max count: 1
property:
  path: unsubscribed
  name: unsubscribed
  description: Total number of unsubscribes
  datatype: int
  max count: 1
property:
  path: sendTime
  name: send time
  description: Timestamp when the campaign was sent
  datatype: dateTime
  max count: 1
property:
  path: rssLastSend
  name: rss last send
  description: Timestamp of the most recent RSS send for RSS campaigns
  datatype: dateTime
  max count: 1
property:
  path: bounces
  name: bounces
  description: Bounce breakdown
  node: BouncesShape
  class: Bounces
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: forwards
  name: forwards
  description: Forward counts
  node: ForwardsShape
  class: Forwards
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: opens
  name: opens
  description: Open counts, rates, and last-open timestamp
  node: OpensShape
  class: Opens
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: clicks
  name: clicks
  description: Click counts, rates, and last-click timestamp
  node: ClicksShape
  class: Clicks
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: facebookLikes
  name: facebook likes
  description: Facebook likes attributable to the campaign
  node: FacebookLikesShape
  class: FacebookLikes
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: industryStats
  name: industry stats
  description: Industry benchmark rates
  node: IndustryStatsShape
  class: IndustryStats
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: listStats
  name: list stats
  description: Audience-level rate snapshot
  node: ReportListStatsShape
  class: ReportListStats
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: abSplit
  name: ab split
  description: Legacy A/B split test arm metrics
  node: ABSplitResultShape
  class: ABSplitResult
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: timewarp
  name: timewarp
  description: Per-timezone Timewarp delivery slices
  node: TimewarpEntryShape
  class: TimewarpEntry
  node kind: BlankNodeOrIRI
property:
  path: timeseries
  name: timeseries
  description: Send/open/click counts bucketed over time
  node: TimeseriesEntryShape
  class: TimeseriesEntry
  node kind: BlankNodeOrIRI
property:
  path: shareReport
  name: share report
  description: Shareable URL and password for the campaign report
  node: ShareReportShape
  class: ShareReport
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: ecommerce
  name: ecommerce
  description: Ecommerce totals attributed to the campaign
  node: EcommerceReportShape
  class: EcommerceReport
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: deliveryStatus
  name: delivery status
  description: Delivery status; see common DeliveryStatus
  node: DeliveryStatusShape
  class: DeliveryStatus
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: links
  name: links
  description: HATEOAS links for the campaign report resource
  node: HALLinkShape
  class: HALLink
  node kind: BlankNodeOrIRI

BouncesShape
type: NodeShape
target class: Bounces
property:
  path: hardBounces
  name: hard bounces
  description: Number of hard bounces
  datatype: int
  max count: 1
property:
  path: softBounces
  name: soft bounces
  description: Number of soft bounces
  datatype: int
  max count: 1
property:
  path: syntaxErrors
  name: syntax errors
  description: Number of syntax errors in recipient addresses
  datatype: int
  max count: 1

ForwardsShape
type: NodeShape
target class: Forwards
property:
  path: forwardsCount
  name: forwards count
  description: Number of times the campaign was forwarded
  datatype: int
  max count: 1
property:
  path: forwardsOpens
  name: forwards opens
  description: Number of opens generated by forwarded copies
  datatype: int
  max count: 1

OpensShape
type: NodeShape
target class: Opens
property:
  path: opensTotal
  name: opens total
  description: Total number of opens (including proxy opens)
  datatype: int
  max count: 1
property:
  path: proxyExcludedOpens
  name: proxy excluded opens
  description: Total opens excluding privacy-proxy-generated opens
  datatype: int
  max count: 1
property:
  path: uniqueOpens
  name: unique opens
  description: Number of unique recipients who opened the campaign
  datatype: int
  max count: 1
property:
  path: proxyExcludedUniqueOpens
  name: proxy excluded unique opens
  description: Unique opens excluding privacy-proxy-generated opens
  datatype: int
  max count: 1
property:
  path: openRate
  name: open rate
  description: Open rate (opens / emails sent)
  datatype: double
  max count: 1
property:
  path: proxyExcludedOpenRate
  name: proxy excluded open rate
  description: Open rate excluding privacy-proxy-generated opens
  datatype: double
  max count: 1
property:
  path: lastOpen
  name: last open
  description: Timestamp of the most recent open
  datatype: dateTime
  max count: 1

ClicksShape
type: NodeShape
target class: Clicks
property:
  path: clicksTotal
  name: clicks total
  description: Total number of clicks
  datatype: int
  max count: 1
property:
  path: uniqueClicks
  name: unique clicks
  description: Number of unique clicks
  datatype: int
  max count: 1
property:
  path: uniqueSubscriberClicks
  name: unique subscriber clicks
  description: Number of unique subscribers who clicked
  datatype: int
  max count: 1
property:
  path: clickRate
  name: click rate
  description: Click rate (clicks / emails sent)
  datatype: double
  max count: 1
property:
  path: lastClick
  name: last click
  description: Timestamp of the most recent click
  datatype: dateTime
  max count: 1

FacebookLikesShape
type: NodeShape
target class: FacebookLikes
property:
  path: recipientLikes
  name: recipient likes
  description: Number of likes from recipients of this campaign
  datatype: int
  max count: 1
property:
  path: uniqueLikes
  name: unique likes
  description: Number of unique users who liked the campaign on Facebook
  datatype: int
  max count: 1
property:
  path: facebookLikes
  name: facebook likes
  description: Total Facebook likes attributed to the campaign
  datatype: int
  max count: 1

IndustryStatsShape
type: NodeShape
target class: IndustryStats
property:
  path: type
  name: type
  description: Industry segment label
  datatype: string
  max count: 1
property:
  path: openRate
  name: open rate
  description: Industry-average open rate
  datatype: double
  max count: 1
property:
  path: clickRate
  name: click rate
  description: Industry-average click rate
  datatype: double
  max count: 1
property:
  path: bounceRate
  name: bounce rate
  description: Industry-average bounce rate
  datatype: double
  max count: 1
property:
  path: unopenRate
  name: unopen rate
  description: Industry-average unopen rate
  datatype: double
  max count: 1
property:
  path: unsubRate
  name: unsub rate
  description: Industry-average unsubscribe rate
  datatype: double
  max count: 1
property:
  path: abuseRate
  name: abuse rate
  description: Industry-average abuse-report rate
  datatype: double
  max count: 1

ReportListStatsShape
type: NodeShape
target class: ReportListStats
property:
  path: subRate
  name: sub rate
  description: Audience subscribe rate
  datatype: double
  max count: 1
property:
  path: unsubRate
  name: unsub rate
  description: Audience unsubscribe rate
  datatype: double
  max count: 1
property:
  path: openRate
  name: open rate
  description: Audience open rate
  datatype: double
  max count: 1
property:
  path: proxyExcludedOpenRate
  name: proxy excluded open rate
  description: Audience open rate excluding privacy-proxy-generated opens
  datatype: double
  max count: 1
property:
  path: clickRate
  name: click rate
  description: Audience click rate
  datatype: double
  max count: 1

ABSplitResultShape
type: NodeShape
target class: ABSplitResult
property:
  path: https://relay.inferal.com/ontology/mailchimp/property/Mailchimp.Reports.ABSplitResult/a
  name: a
  description: Metrics for variant A
  node: ABSplitArmShape
  class: ABSplitArm
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: https://relay.inferal.com/ontology/mailchimp/property/Mailchimp.Reports.ABSplitResult/b
  name: b
  description: Metrics for variant B
  node: ABSplitArmShape
  class: ABSplitArm
  node kind: BlankNodeOrIRI
  max count: 1

ABSplitArmShape
type: NodeShape
target class: ABSplitArm
property:
  path: bounces
  name: bounces
  description: Number of bounces for this arm
  datatype: int
  max count: 1
property:
  path: abuseReports
  name: abuse reports
  description: Number of abuse reports for this arm
  datatype: int
  max count: 1
property:
  path: unsubs
  name: unsubs
  description: Number of unsubscribes for this arm
  datatype: int
  max count: 1
property:
  path: recipientClicks
  name: recipient clicks
  description: Total recipient clicks for this arm
  datatype: int
  max count: 1
property:
  path: forwards
  name: forwards
  description: Number of forwards for this arm
  datatype: int
  max count: 1
property:
  path: forwardsOpens
  name: forwards opens
  description: Number of opens from forwarded copies for this arm
  datatype: int
  max count: 1
property:
  path: opens
  name: opens
  description: Number of opens for this arm
  datatype: int
  max count: 1
property:
  path: uniqueOpens
  name: unique opens
  description: Number of unique opens for this arm
  datatype: int
  max count: 1
property:
  path: lastOpen
  name: last open
  description: Timestamp of the last open in this arm. The spec does not declare a datetime format on this field; deliberately string.
  datatype: string
  max count: 1

TimewarpEntryShape
type: NodeShape
target class: TimewarpEntry
property:
  path: gmtOffset
  name: gmt offset
  description: GMT offset (in hours) for this delivery slice
  datatype: int
  max count: 1
property:
  path: opens
  name: opens
  description: Number of opens in this slice
  datatype: int
  max count: 1
property:
  path: uniqueOpens
  name: unique opens
  description: Number of unique opens in this slice
  datatype: int
  max count: 1
property:
  path: clicks
  name: clicks
  description: Number of clicks in this slice
  datatype: int
  max count: 1
property:
  path: uniqueClicks
  name: unique clicks
  description: Number of unique clicks in this slice
  datatype: int
  max count: 1
property:
  path: bounces
  name: bounces
  description: Number of bounces in this slice
  datatype: int
  max count: 1
property:
  path: lastOpen
  name: last open
  description: Timestamp of the last open in this slice
  datatype: dateTime
  max count: 1
property:
  path: lastClick
  name: last click
  description: Timestamp of the last click in this slice
  datatype: dateTime
  max count: 1

TimeseriesEntryShape
type: NodeShape
target class: TimeseriesEntry
property:
  path: timestamp
  name: timestamp
  description: Timestamp marking the start of this time-series bucket
  datatype: dateTime
  max count: 1
property:
  path: emailsSent
  name: emails sent
  description: Number of emails sent during this bucket
  datatype: int
  max count: 1
property:
  path: uniqueOpens
  name: unique opens
  description: Number of unique opens recorded during this bucket
  datatype: int
  max count: 1
property:
  path: proxyExcludedUniqueOpens
  name: proxy excluded unique opens
  description: Unique opens during this bucket excluding privacy-proxy-generated opens
  datatype: int
  max count: 1
property:
  path: recipientsClicks
  name: recipients clicks
  description: Number of recipient clicks during this bucket
  datatype: int
  max count: 1

ShareReportShape
type: NodeShape
target class: ShareReport
property:
  path: shareUrl
  name: share url
  description: Shareable URL for the campaign report
  datatype: anyURI
  max count: 1
property:
  path: sharePassword
  name: share password
  description: Password protecting the share URL
  datatype: string
  max count: 1

EcommerceReportShape
type: NodeShape
target class: EcommerceReport
property:
  path: totalOrders
  name: total orders
  description: Total ecommerce orders attributed to the campaign
  datatype: int
  max count: 1
property:
  path: totalSpent
  name: total spent
  description: Total spent by attributed orders
  datatype: double
  max count: 1
property:
  path: totalRevenue
  name: total revenue
  description: Total revenue attributed to the campaign
  datatype: double
  max count: 1
property:
  path: currencyCode
  name: currency code
  description: ISO 4217 currency code for the ecommerce totals
  datatype: string
  max count: 1

AutomationShape
type: NodeShape
target class: Automation
property:
  path: id
  name: id
  description: Opaque automation workflow ID.
  datatype: string
  min count: 1
  max count: 1
property:
  path: createTime
  name: create time
  description: Timestamp when the workflow was created.
  datatype: dateTime
  max count: 1
property:
  path: startTime
  name: start time
  description: Timestamp when the workflow was last started (set to sending).
  datatype: dateTime
  max count: 1
property:
  path: status
  name: status
  description: Lifecycle state of the workflow.
  datatype: string
  max count: 1
  in: save
  in: paused
  in: sending
property:
  path: emailsSent
  name: emails sent
  description: Total emails dispatched across all steps of the workflow.
  datatype: int
  max count: 1
property:
  path: recipients
  name: recipients
  description: Recipient targeting (parent list and optional segment).
  node: AutomationRecipientsShape
  class: AutomationRecipients
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: settings
  name: settings
  description: Sender, footer, and content toggles applied to every step.
  node: AutomationSettingsShape
  class: AutomationSettings
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: tracking
  name: tracking
  description: Engagement-tracking toggles shared with regular campaigns.
  node: TrackingConfigurationShape
  class: TrackingConfiguration
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: triggerSettings
  name: trigger settings
  description: Trigger recipe and runtime constraints. The nested `workflowType` is the single required field across the entire Automation response shape per Mailchimp's OpenAPI; the wrapper is therefore non-optional so that requirement is reachable on the wire.
  node: TriggerSettingsShape
  class: TriggerSettings
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: reportSummary
  name: report summary
  description: Aggregate engagement summary (without the e-commerce sub-block).
  node: ReportSummaryShape
  class: ReportSummary
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: links
  name: links
  description: HATEOAS link descriptors for this resource.
  node: HALLinkShape
  class: HALLink
  node kind: BlankNodeOrIRI

AutomationRecipientsShape
type: NodeShape
target class: AutomationRecipients
property:
  path: listId
  name: list id
  description: Parent audience the workflow runs against.
  node: ListShape
  class: List
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: listIsActive
  name: list is active
  description: Whether the parent list is currently active.
  datatype: boolean
  max count: 1
property:
  path: listName
  name: list name
  description: Display name of the parent list.
  datatype: string
  max count: 1
property:
  path: segmentOpts
  name: segment opts
  description: Segment definition narrowing the recipient set.
  node: AutomationSegmentOptsShape
  class: AutomationSegmentOpts
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: storeId
  name: store id
  description: Connected store ID. Dangling Ref<Store>; not in v1.
  datatype: string
  max count: 1

AutomationSegmentOptsShape
type: NodeShape
target class: AutomationSegmentOpts
property:
  path: savedSegmentId
  name: saved segment id
  description: Saved-segment integer ID referenced by this automation.
  node: SegmentShape
  class: Segment
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: match
  name: match
  description: Combinator across `conditions`.
  datatype: string
  max count: 1
  in: any
  in: all
property:
  path: conditions
  name: conditions
  description: Ordered list of segment conditions evaluated against the parent list. Concrete shape is variant-defined; see the `SegmentCondition` stub in `common.tsp` for the discriminator contract.
  node: SegmentConditionShape
  class: SegmentCondition
  node kind: BlankNodeOrIRI

AutomationSettingsShape
type: NodeShape
target class: AutomationSettings
property:
  path: title
  name: title
  description: Internal title shown in the Mailchimp UI.
  datatype: string
  max count: 1
property:
  path: fromName
  name: from name
  description: Display "from" name presented to recipients.
  datatype: string
  max count: 1
property:
  path: replyTo
  name: reply to
  description: Reply-to address attached to every send in the workflow.
  datatype: string
  max count: 1
property:
  path: toName
  name: to name
  description: Personalised "to" name template (e.g. `*|FNAME|*`).
  datatype: string
  max count: 1
property:
  path: useConversation
  name: use conversation
  description: Convert replies to recipients into a Mailchimp Conversation thread.
  datatype: boolean
  max count: 1
property:
  path: authenticate
  name: authenticate
  description: Apply Mailchimp's authentication (SPF/DKIM) on outbound mail.
  datatype: boolean
  max count: 1
property:
  path: autoFooter
  name: auto footer
  description: Append the standard Mailchimp footer to the body.
  datatype: boolean
  max count: 1
property:
  path: inlineCss
  name: inline css
  description: Inline CSS on send to maximise email-client compatibility.
  datatype: boolean
  max count: 1

TriggerSettingsShape
type: NodeShape
target class: TriggerSettings
property:
  path: workflowType
  name: workflow type
  description: Built-in workflow recipe selected for this automation. Required by the Mailchimp spec.
  datatype: string
  min count: 1
  max count: 1
  in: abandonedBrowse
  in: abandonedCart
  in: api
  in: bestCustomers
  in: categoryFollowup
  in: dateAdded
  in: emailFollowup
  in: emailSeries
  in: groupAdd
  in: groupRemove
  in: mandrill
  in: productFollowup
  in: purchaseFollowup
  in: recurringEvent
  in: specialEvent
  in: visitUrl
  in: welcomeSeries
property:
  path: workflowTitle
  name: workflow title
  description: Display title of the workflow recipe.
  datatype: string
  max count: 1
property:
  path: runtime
  name: runtime
  description: Schedule constraints restricting when the workflow fires.
  node: AutomationRuntimeShape
  class: AutomationRuntime
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: workflowEmailsCount
  name: workflow emails count
  description: Count of email steps configured under this workflow.
  datatype: int
  max count: 1

AutomationRuntimeShape
type: NodeShape
target class: AutomationRuntime
property:
  path: days
  name: days
  description: Weekdays on which the workflow may fire. Empty array means the trigger fires on any day.
  datatype: string
  in: sunday
  in: monday
  in: tuesday
  in: wednesday
  in: thursday
  in: friday
  in: saturday
property:
  path: hours
  name: hours
  description: Daily run-window configuration.
  node: AutomationRuntimeHoursShape
  class: AutomationRuntimeHours
  node kind: BlankNodeOrIRI
  max count: 1

AutomationRuntimeHoursShape
type: NodeShape
target class: AutomationRuntimeHours
property:
  path: type
  name: type
  description: How the daily run-window is interpreted. Required by the Mailchimp spec on every runtime block; flagged as `required: true` alongside the parent `workflowType`.
  datatype: string
  min count: 1
  max count: 1
  in: send_asap
  in: send_between
  in: send_at

EmailActivityShape
type: NodeShape
target class: EmailActivity
property:
  path: emails
  name: emails
  description: Per-recipient activity envelopes for this campaign.
  node: EmailActivityRecipientShape
  class: EmailActivityRecipient
  node kind: BlankNodeOrIRI
property:
  path: campaignId
  name: campaign id
  description: Parent campaign the report belongs to.
  class: Campaign
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: listId
  name: list id
  description: Parent audience the campaign sent to.
  node: ListShape
  class: List
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: totalItems
  name: total items
  description: Total recipient rows available across all pages.
  datatype: int
  max count: 1
property:
  path: links
  name: links
  description: HATEOAS link descriptors for this report.
  node: HALLinkShape
  class: HALLink
  node kind: BlankNodeOrIRI

EmailActivityRecipientShape
type: NodeShape
target class: EmailActivityRecipient
property:
  path: campaignId
  name: campaign id
  description: Parent campaign this activity row belongs to.
  class: Campaign
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: listId
  name: list id
  description: Parent audience the recipient is subscribed to.
  node: ListShape
  class: List
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: listIsActive
  name: list is active
  description: Whether the parent list is currently active.
  datatype: boolean
  max count: 1
property:
  path: emailId
  name: email id
  description: Member subscriber-hash (MD5 of the lowercased email address) — same value as `Member.id`. Used to join activity back to the Member resource.
  node: MemberShape
  class: Member
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: emailAddress
  name: email address
  description: Recipient email address.
  datatype: string
  max count: 1
property:
  path: activity
  name: activity
  description: Chronological list of per-action events for this recipient. Capped at 1000 opens + 1000 clicks per recipient per campaign.
  node: EmailActivityEntryShape
  class: EmailActivityEntry
  node kind: BlankNodeOrIRI

EmailActivityEntryShape
type: NodeShape
target class: EmailActivityEntry
property:
  path: action
  name: action
  description: Which action this row records.
  datatype: string
  min count: 1
  max count: 1
  in: open
  in: click
  in: bounce
property:
  path: type
  name: type
  description: Bounce sub-classification. Set only when `action == bounce`.
  datatype: string
  max count: 1
  in: hard
  in: soft
property:
  path: timestamp
  name: timestamp
  description: Timestamp at which the action was recorded.
  datatype: dateTime
  min count: 1
  max count: 1
property:
  path: url
  name: url
  description: Destination URL of the click. Set only when `action == click`.
  datatype: anyURI
  max count: 1
property:
  path: ip
  name: ip
  description: Originating IP address. Best-effort; may be empty for proxy opens.
  datatype: string
  max count: 1

ListWebhookShape
type: NodeShape
target class: ListWebhook
property:
  path: id
  name: id
  description: Opaque webhook subscription ID assigned by Mailchimp on create.
  datatype: string
  min count: 1
  max count: 1
property:
  path: url
  name: url
  description: Callback URL Mailchimp POSTs form-encoded events to.
  datatype: anyURI
  max count: 1
property:
  path: events
  name: events
  description: Event-type subscription mask (subscribe, unsubscribe, profile, upemail, cleaned, campaign).
  node: WebhookEventsShape
  class: WebhookEvents
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: sources
  name: sources
  description: Origin-source filter mask (user, admin, api).
  node: WebhookSourcesShape
  class: WebhookSources
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: listId
  name: list id
  description: Parent audience the webhook is attached to.
  node: ListShape
  class: List
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: links
  name: links
  description: HATEOAS link descriptors for this resource.
  node: HALLinkShape
  class: HALLink
  node kind: BlankNodeOrIRI

WebhookEventsShape
type: NodeShape
target class: WebhookEvents
property:
  path: subscribe
  name: subscribe
  description: Deliver a callback when a subscriber opts in.
  datatype: boolean
  max count: 1
property:
  path: unsubscribe
  name: unsubscribe
  description: Deliver a callback when a subscriber opts out.
  datatype: boolean
  max count: 1
property:
  path: profile
  name: profile
  description: Deliver a callback when a subscriber's profile (merge fields) changes.
  datatype: boolean
  max count: 1
property:
  path: upemail
  name: upemail
  description: Deliver a callback when a subscriber changes their email address.
  datatype: boolean
  max count: 1
property:
  path: cleaned
  name: cleaned
  description: Deliver a callback when an address is cleaned (bounced/removed).
  datatype: boolean
  max count: 1
property:
  path: campaign
  name: campaign
  description: Deliver a callback when a campaign send completes.
  datatype: boolean
  max count: 1

WebhookSourcesShape
type: NodeShape
target class: WebhookSources
property:
  path: user
  name: user
  description: Deliver events triggered by the subscriber themselves.
  datatype: boolean
  max count: 1
property:
  path: admin
  name: admin
  description: Deliver events triggered by operators inside the Mailchimp UI.
  datatype: boolean
  max count: 1
property:
  path: api
  name: api
  description: Deliver events triggered programmatically through the API.
  datatype: boolean
  max count: 1

InterestShape
type: NodeShape
target class: Interest
property:
  path: id
  name: id
  description: Opaque Interest ID. Appears as the key in `Member.interests`.
  datatype: string
  min count: 1
  max count: 1
property:
  path: name
  name: name
  description: Display name shown in subscribe forms and the admin UI.
  datatype: string
  min count: 1
  max count: 1
property:
  path: categoryId
  name: category id
  description: Parent interest category that groups this interest.
  node: InterestCategoryShape
  class: InterestCategory
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1

InterestCategoryShape
type: NodeShape
target class: InterestCategory
property:
  path: id
  name: id
  description: Opaque interest-category ID.
  datatype: string
  min count: 1
  max count: 1
property:
  path: listId
  name: list id
  description: Parent list that owns the interest category.
  node: ListShape
  class: List
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: title
  name: title
  description: Display title shown above the interest checkboxes.
  datatype: string
  min count: 1
  max count: 1
property:
  path: type
  name: type
  description: Presentation style for the category on subscribe forms.
  datatype: string
  min count: 1
  max count: 1
  in: checkboxes
  in: dropdown
  in: radio
  in: hidden

ListListResponseShape
type: NodeShape
target class: ListListResponse
property:
  path: lists
  name: lists
  description: Audiences in the current page.
  node: ListShape
  class: List
  node kind: BlankNodeOrIRI
property:
  path: totalItems
  name: total items
  description: Total number of audiences on the account (across all pages).
  datatype: int
  min count: 1
  max count: 1
property:
  path: constraints
  name: constraints
  description: Per-account audience-count limits applied to this response.
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: links
  name: links
  description: HATEOAS link descriptors for the collection.
  node: HALLinkShape
  class: HALLink
  node kind: BlankNodeOrIRI

ListBatchMembersInputShape
type: NodeShape
target class: ListBatchMembersInput
property:
  path: members
  name: members
  description: Member descriptors to subscribe, update, or unsubscribe in bulk.
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
property:
  path: syncTags
  name: sync tags
  description: Replace each member's tag set with the tags supplied in the payload.
  datatype: boolean
  max count: 1
property:
  path: updateExisting
  name: update existing
  description: Update members already on the list instead of skipping duplicates.
  datatype: boolean
  max count: 1

ListBatchMembersResponseShape
type: NodeShape
target class: ListBatchMembersResponse
property:
  path: newMembers
  name: new members
  description: Members created by this batch.
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
property:
  path: updatedMembers
  name: updated members
  description: Members updated by this batch.
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
property:
  path: errors
  name: errors
  description: Per-row error reports for rejected members.
  node: errorsShape
  class: errors
  node kind: BlankNodeOrIRI
property:
  path: totalCreated
  name: total created
  description: Number of members created in this batch.
  datatype: int
  min count: 1
  max count: 1
property:
  path: totalUpdated
  name: total updated
  description: Number of members updated in this batch.
  datatype: int
  min count: 1
  max count: 1
property:
  path: errorCount
  name: error count
  description: Number of members rejected by this batch.
  datatype: int
  min count: 1
  max count: 1
property:
  path: listId
  name: list id
  description: Parent audience identifier.
  node: ListShape
  class: List
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1

ListInputShape
type: NodeShape
target class: ListInput
property:
  path: name
  name: name
  description: Human-readable audience name.
  datatype: string
  min count: 1
  max count: 1
property:
  path: contact
  name: contact
  description: Audience postal contact information shown in campaign footers (CAN-SPAM).
  node: ListContactShape
  class: ListContact
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: permissionReminder
  name: permission reminder
  description: Permission reminder displayed at the bottom of campaigns sent to this audience.
  datatype: string
  min count: 1
  max count: 1
property:
  path: useArchiveBar
  name: use archive bar
  description: Show the Mailchimp archive bar in campaigns sent to this audience.
  datatype: boolean
  max count: 1
property:
  path: campaignDefaults
  name: campaign defaults
  description: Default `from_name`, `from_email`, `subject`, and `language` for new campaigns.
  node: ListCampaignDefaultsShape
  class: ListCampaignDefaults
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: notifyOnSubscribe
  name: notify on subscribe
  description: Email address that receives notifications when someone subscribes.
  datatype: string
  max count: 1
property:
  path: notifyOnUnsubscribe
  name: notify on unsubscribe
  description: Email address that receives notifications when someone unsubscribes.
  datatype: string
  max count: 1
property:
  path: emailTypeOption
  name: email type option
  description: Allow subscribers to choose between HTML and plain-text emails.
  datatype: boolean
  min count: 1
  max count: 1
property:
  path: doubleOptin
  name: double optin
  description: Require subscribers to confirm via opt-in email.
  datatype: boolean
  max count: 1
property:
  path: marketingPermissions
  name: marketing permissions
  description: Surface GDPR-style marketing permissions on the signup form.
  datatype: boolean
  max count: 1

MemberListResponseShape
type: NodeShape
target class: MemberListResponse
property:
  path: members
  name: members
  description: Members in the current page.
  node: MemberShape
  class: Member
  node kind: BlankNodeOrIRI
property:
  path: listId
  name: list id
  description: Parent audience identifier.
  node: ListShape
  class: List
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: totalItems
  name: total items
  description: Total number of members on the audience (unfiltered by pagination).
  datatype: int
  min count: 1
  max count: 1
property:
  path: links
  name: links
  description: HATEOAS link descriptors for the collection.
  node: HALLinkShape
  class: HALLink
  node kind: BlankNodeOrIRI

MemberCreateInputShape
type: NodeShape
target class: MemberCreateInput
property:
  path: emailAddress
  name: email address
  description: Member email address. The MD5 of the lowercased email becomes the `subscriber_hash` used as `Member.id` and as the path parameter for per-member endpoints.
  datatype: string
  min count: 1
  max count: 1
property:
  path: emailType
  name: email type
  description: Preferred email format.
  datatype: string
  max count: 1
  in: html
  in: text
property:
  path: status
  name: status
  description: Initial subscription status (`subscribed`, `pending`, `unsubscribed`, `cleaned`, `transactional`).
  datatype: string
  min count: 1
  max count: 1
  in: subscribed
  in: unsubscribed
  in: cleaned
  in: pending
  in: transactional
  in: archived
property:
  path: mergeFields
  name: merge fields
  description: Map of merge-tag names to scalar values (e.g. `FNAME`, `LNAME`).
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: interests
  name: interests
  description: Map of interest IDs to boolean subscription flags.
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: language
  name: language
  description: Subscriber language code (ISO 639-1).
  datatype: string
  max count: 1
property:
  path: vip
  name: vip
  description: Designate the subscriber as VIP.
  datatype: boolean
  max count: 1
property:
  path: location
  name: location
  description: Subscriber geo location (`latitude`, `longitude`).
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: marketingPermissions
  name: marketing permissions
  description: Per-permission consent records (GDPR-style).
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
property:
  path: ipSignup
  name: ip signup
  description: Source IP recorded at signup.
  datatype: string
  max count: 1
property:
  path: timestampSignup
  name: timestamp signup
  description: Signup timestamp.
  datatype: dateTime
  max count: 1
property:
  path: ipOpt
  name: ip opt
  description: Source IP recorded at confirmed opt-in.
  datatype: string
  max count: 1
property:
  path: timestampOpt
  name: timestamp opt
  description: Confirmed opt-in timestamp.
  datatype: dateTime
  max count: 1
property:
  path: tags
  name: tags
  description: Tag names to apply at create time. Mailchimp creates missing tags.
  datatype: string

MemberUpsertInputShape
type: NodeShape
target class: MemberUpsertInput
property:
  path: emailAddress
  name: email address
  description: Member email address. Required only when upserting a new member.
  datatype: string
  min count: 1
  max count: 1
property:
  path: statusIfNew
  name: status if new
  description: Status to assign when the member does not yet exist on the audience.
  datatype: string
  min count: 1
  max count: 1
property:
  path: emailType
  name: email type
  description: Preferred email format.
  datatype: string
  max count: 1
  in: html
  in: text
property:
  path: status
  name: status
  description: Current subscription status. Ignored when creating a new member (use `status_if_new`).
  datatype: string
  max count: 1
property:
  path: mergeFields
  name: merge fields
  description: Map of merge-tag names to scalar values.
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: interests
  name: interests
  description: Map of interest IDs to boolean subscription flags.
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: language
  name: language
  description: Subscriber language code (ISO 639-1).
  datatype: string
  max count: 1
property:
  path: vip
  name: vip
  description: Designate the subscriber as VIP.
  datatype: boolean
  max count: 1
property:
  path: location
  name: location
  description: Subscriber geo location (`latitude`, `longitude`).
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: marketingPermissions
  name: marketing permissions
  description: Per-permission consent records (GDPR-style).
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
property:
  path: ipSignup
  name: ip signup
  description: Source IP recorded at signup.
  datatype: string
  max count: 1
property:
  path: timestampSignup
  name: timestamp signup
  description: Signup timestamp.
  datatype: dateTime
  max count: 1
property:
  path: ipOpt
  name: ip opt
  description: Source IP recorded at confirmed opt-in.
  datatype: string
  max count: 1
property:
  path: timestampOpt
  name: timestamp opt
  description: Confirmed opt-in timestamp.
  datatype: dateTime
  max count: 1

MemberPatchInputShape
type: NodeShape
target class: MemberPatchInput
property:
  path: emailAddress
  name: email address
  description: New email address. Updates the subscriber identity.
  datatype: string
  max count: 1
property:
  path: emailType
  name: email type
  datatype: string
  max count: 1
  in: html
  in: text
property:
  path: status
  name: status
  description: Current subscription status.
  datatype: string
  max count: 1
property:
  path: mergeFields
  name: merge fields
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: interests
  name: interests
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: language
  name: language
  datatype: string
  max count: 1
property:
  path: vip
  name: vip
  datatype: boolean
  max count: 1
property:
  path: location
  name: location
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: marketingPermissions
  name: marketing permissions
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
property:
  path: ipSignup
  name: ip signup
  datatype: string
  max count: 1
property:
  path: timestampSignup
  name: timestamp signup
  datatype: dateTime
  max count: 1
property:
  path: ipOpt
  name: ip opt
  datatype: string
  max count: 1
property:
  path: timestampOpt
  name: timestamp opt
  datatype: dateTime
  max count: 1

MemberTagAssignmentShape
type: NodeShape
target class: MemberTagAssignment
property:
  path: id
  name: id
  description: Numeric tag identifier scoped to the parent list.
  datatype: int
  min count: 1
  max count: 1
property:
  path: name
  name: name
  description: Tag display name.
  datatype: string
  min count: 1
  max count: 1
property:
  path: dateAdded
  name: date added
  description: When this tag was applied to the member.
  datatype: dateTime
  max count: 1

MemberTagsResponseShape
type: NodeShape
target class: MemberTagsResponse
property:
  path: tags
  name: tags
  description: Tags currently applied to the member.
  node: MemberTagAssignmentShape
  class: MemberTagAssignment
  node kind: BlankNodeOrIRI
property:
  path: totalItems
  name: total items
  description: Total number of tags applied to the member.
  datatype: int
  min count: 1
  max count: 1

MemberTagsMutateInputShape
type: NodeShape
target class: MemberTagsMutateInput
property:
  path: tags
  name: tags
  description: Tag mutations to apply. Each row names a tag and an action.
  node: tagsShape
  class: tags
  node kind: BlankNodeOrIRI
property:
  path: isSyncing
  name: is syncing
  description: Treat the call as part of a background sync to suppress some side effects.
  datatype: boolean
  max count: 1

SegmentListResponseShape
type: NodeShape
target class: SegmentListResponse
property:
  path: segments
  name: segments
  description: Segments in the current page.
  node: SegmentShape
  class: Segment
  node kind: BlankNodeOrIRI
property:
  path: listId
  name: list id
  description: Parent audience identifier.
  node: ListShape
  class: List
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: totalItems
  name: total items
  description: Total number of segments defined on the audience.
  datatype: int
  min count: 1
  max count: 1
property:
  path: links
  name: links
  description: HATEOAS link descriptors for the collection.
  node: HALLinkShape
  class: HALLink
  node kind: BlankNodeOrIRI

SegmentInputShape
type: NodeShape
target class: SegmentInput
property:
  path: name
  name: name
  description: Display name of the segment.
  datatype: string
  min count: 1
  max count: 1
property:
  path: staticSegment
  name: static segment
  description: Seed emails for a static segment. Unknown emails are created on the audience as transactional.
  datatype: string
property:
  path: options
  name: options
  description: Saved-segment condition tree (`match` plus an array of `conditions`).
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
  max count: 1

SegmentBatchMembersInputShape
type: NodeShape
target class: SegmentBatchMembersInput
property:
  path: membersToAdd
  name: members to add
  description: Emails to add to the static segment. Required unless `members_to_remove` is supplied; at least one of the two arrays must be present and non-empty per Mailchimp's API contract.
  datatype: string
property:
  path: membersToRemove
  name: members to remove
  description: Emails to remove from the static segment. Required unless `members_to_add` is supplied; at least one of the two arrays must be present and non-empty per Mailchimp's API contract.
  datatype: string

SegmentBatchMembersResponseShape
type: NodeShape
target class: SegmentBatchMembersResponse
property:
  path: membersAdded
  name: members added
  description: Members successfully added by this batch.
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
property:
  path: membersRemoved
  name: members removed
  description: Members successfully removed by this batch.
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
property:
  path: errors
  name: errors
  description: Per-row error reports for rejected emails.
  node: errorsShape
  class: errors
  node kind: BlankNodeOrIRI
property:
  path: totalAdded
  name: total added
  datatype: int
  min count: 1
  max count: 1
property:
  path: totalRemoved
  name: total removed
  datatype: int
  min count: 1
  max count: 1
property:
  path: errorCount
  name: error count
  datatype: int
  min count: 1
  max count: 1

TagSearchResponseShape
type: NodeShape
target class: TagSearchResponse
property:
  path: tags
  name: tags
  description: Tags matching the search query, ordered by relevance.
  node: TagShape
  class: Tag
  node kind: BlankNodeOrIRI
property:
  path: totalItems
  name: total items
  description: Total number of matching tags across all pages.
  datatype: int
  min count: 1
  max count: 1

MergeFieldListResponseShape
type: NodeShape
target class: MergeFieldListResponse
property:
  path: mergeFields
  name: merge fields
  description: Merge fields in the current page.
  node: MergeFieldShape
  class: MergeField
  node kind: BlankNodeOrIRI
property:
  path: listId
  name: list id
  description: Parent audience identifier.
  node: ListShape
  class: List
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: totalItems
  name: total items
  description: Total number of merge fields defined on the audience.
  datatype: int
  min count: 1
  max count: 1
property:
  path: links
  name: links
  description: HATEOAS link descriptors for the collection.
  node: HALLinkShape
  class: HALLink
  node kind: BlankNodeOrIRI

MergeFieldCreateInputShape
type: NodeShape
target class: MergeFieldCreateInput
property:
  path: tag
  name: tag
  description: Merge tag short code used inside campaigns (e.g. `FNAME`). Auto-generated when omitted.
  datatype: string
  max count: 1
property:
  path: name
  name: name
  description: Human-readable merge field name.
  datatype: string
  min count: 1
  max count: 1
property:
  path: type
  name: type
  description: Merge field data type.
  datatype: string
  min count: 1
  max count: 1
  in: text
  in: number
  in: address
  in: phone
  in: date
  in: url
  in: imageurl
  in: radio
  in: dropdown
  in: birthday
  in: zip
property:
  path: required
  name: required
  description: Whether subscribers must supply a value for this field.
  datatype: boolean
  max count: 1
property:
  path: defaultValue
  name: default value
  description: Default value substituted when the field is empty.
  datatype: string
  max count: 1
property:
  path: public
  name: public
  description: Surface the field on hosted signup forms.
  datatype: boolean
  max count: 1
property:
  path: displayOrder
  name: display order
  description: Position of the field on hosted signup forms.
  datatype: int
  max count: 1
property:
  path: options
  name: options
  description: Type-specific options (e.g. `choices` for `dropdown`, `format` for `date`).
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: helpText
  name: help text
  description: Helper text shown beside the field on signup forms.
  datatype: string
  max count: 1

MergeFieldUpdateInputShape
type: NodeShape
target class: MergeFieldUpdateInput
property:
  path: tag
  name: tag
  description: Merge tag short code (e.g. `FNAME`).
  datatype: string
  max count: 1
property:
  path: name
  name: name
  description: Human-readable merge field name.
  datatype: string
  min count: 1
  max count: 1
property:
  path: required
  name: required
  description: Whether subscribers must supply a value for this field.
  datatype: boolean
  max count: 1
property:
  path: defaultValue
  name: default value
  description: Default value substituted when the field is empty.
  datatype: string
  max count: 1
property:
  path: public
  name: public
  description: Surface the field on hosted signup forms.
  datatype: boolean
  max count: 1
property:
  path: displayOrder
  name: display order
  description: Position of the field on hosted signup forms.
  datatype: int
  max count: 1
property:
  path: options
  name: options
  description: Type-specific options.
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: helpText
  name: help text
  description: Helper text shown beside the field on signup forms.
  datatype: string
  max count: 1

CampaignListResponseShape
type: NodeShape
target class: CampaignListResponse
property:
  path: campaigns
  name: campaigns
  description: Campaigns in the current page.
  class: Campaign
  node kind: BlankNodeOrIRI
property:
  path: totalItems
  name: total items
  description: Total number of campaigns on the account.
  datatype: int
  min count: 1
  max count: 1
property:
  path: links
  name: links
  description: HATEOAS link descriptors for the collection.
  node: HALLinkShape
  class: HALLink
  node kind: BlankNodeOrIRI

CampaignCreateInputShape
type: NodeShape
target class: CampaignCreateInput
property:
  path: type
  name: type
  description: Campaign type. One of `regular`, `plaintext`, `absplit`, `rss`, `variate`.
  datatype: string
  min count: 1
  max count: 1
  in: regular
  in: plaintext
  in: absplit
  in: rss
  in: variate
property:
  path: recipients
  name: recipients
  description: Recipient settings: `list_id` and optional segment options.
  node: CampaignRecipientsShape
  class: CampaignRecipients
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: settings
  name: settings
  description: Campaign settings: subject line, from name, from email, reply-to, etc.
  node: CampaignSettingsShape
  class: CampaignSettings
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: variateSettings
  name: variate settings
  description: A/B variate settings. Only used when `type = variate`.
  node: VariateSettingsShape
  class: VariateSettings
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: tracking
  name: tracking
  description: Engagement-tracking toggles (opens, clicks, GA, etc.).
  node: TrackingConfigurationShape
  class: TrackingConfiguration
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: rssOpts
  name: rss opts
  description: RSS feed settings. Only used when `type = rss`.
  node: RssOptsShape
  class: RssOpts
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: socialCard
  name: social card
  description: Social card metadata for archive previews.
  node: SocialCardShape
  class: SocialCard
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: contentType
  name: content type
  description: Editor used to compose the campaign (`template`, `html`, `url`, `multichannel`).
  datatype: string
  max count: 1
  in: template
  in: html
  in: url
  in: multichannel

CampaignUpdateInputShape
type: NodeShape
target class: CampaignUpdateInput
property:
  path: recipients
  name: recipients
  description: Recipient settings: `list_id` and optional segment options.
  node: CampaignRecipientsShape
  class: CampaignRecipients
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: settings
  name: settings
  description: Campaign settings: subject line, from name, from email, reply-to, etc.
  node: CampaignSettingsShape
  class: CampaignSettings
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: variateSettings
  name: variate settings
  node: VariateSettingsShape
  class: VariateSettings
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: tracking
  name: tracking
  description: Engagement-tracking toggles.
  node: TrackingConfigurationShape
  class: TrackingConfiguration
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: rssOpts
  name: rss opts
  node: RssOptsShape
  class: RssOpts
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: socialCard
  name: social card
  node: SocialCardShape
  class: SocialCard
  node kind: BlankNodeOrIRI
  max count: 1

CampaignTestInputShape
type: NodeShape
target class: CampaignTestInput
property:
  path: testEmails
  name: test emails
  description: Recipients of the test send. Must be a non-empty array of email addresses.
  datatype: string
property:
  path: sendType
  name: send type
  description: Whether to send the HTML or plain-text variant.
  datatype: string
  min count: 1
  max count: 1
  in: html
  in: plaintext

CampaignScheduleInputShape
type: NodeShape
target class: CampaignScheduleInput
property:
  path: scheduleTime
  name: schedule time
  description: UTC ISO 8601 timestamp to schedule the campaign for delivery.
  datatype: dateTime
  min count: 1
  max count: 1
property:
  path: timewarp
  name: timewarp
  description: Send across multiple timezones to align with each recipient's local time of day.
  datatype: boolean
  max count: 1
property:
  path: batchDelivery
  name: batch delivery
  description: Trickle-send settings (`batch_count`, `batch_delay`).
  node: ContainerShape
  class: Container
  node kind: BlankNodeOrIRI
  max count: 1

CampaignCreateResendInputShape
type: NodeShape
target class: CampaignCreateResendInput
property:
  path: shortcutType
  name: shortcut type
  description: Which resend shortcut to use. Defaults to `to_non_openers` server-side.
  datatype: string
  max count: 1
  in: to_non_openers
  in: to_non_clickers
  in: to_non_purchasers
  in: to_new_subscribers

AutomationListResponseShape
type: NodeShape
target class: AutomationListResponse
property:
  path: automations
  name: automations
  description: Workflows in the current page.
  class: Automation
  node kind: BlankNodeOrIRI
property:
  path: totalItems
  name: total items
  description: Total number of classic automation workflows on the account.
  datatype: int
  min count: 1
  max count: 1
property:
  path: links
  name: links
  description: HATEOAS link descriptors for the collection.
  node: HALLinkShape
  class: HALLink
  node kind: BlankNodeOrIRI

AutomationCreateInputShape
type: NodeShape
target class: AutomationCreateInput
property:
  path: recipients
  name: recipients
  description: Recipient settings: `list_id` and optional segment options.
  node: AutomationRecipientsShape
  class: AutomationRecipients
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: settings
  name: settings
  description: Workflow-level settings (`from_name`, `reply_to`, etc.).
  node: AutomationSettingsShape
  class: AutomationSettings
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: triggerSettings
  name: trigger settings
  description: Trigger configuration that fires this workflow.
  node: TriggerSettingsShape
  class: TriggerSettings
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1

ListWebhookListResponseShape
type: NodeShape
target class: ListWebhookListResponse
property:
  path: webhooks
  name: webhooks
  description: Webhooks registered on the audience.
  node: ListWebhookShape
  class: ListWebhook
  node kind: BlankNodeOrIRI
property:
  path: listId
  name: list id
  description: Parent audience identifier.
  node: ListShape
  class: List
  node kind: BlankNodeOrIRI
  min count: 1
  max count: 1
property:
  path: links
  name: links
  description: HATEOAS link descriptors for the collection.
  node: HALLinkShape
  class: HALLink
  node kind: BlankNodeOrIRI

ListWebhookInputShape
type: NodeShape
target class: ListWebhookInput
property:
  path: url
  name: url
  description: HTTPS URL Mailchimp will POST events to. Embed any secret token in the URL itself.
  datatype: string
  max count: 1
property:
  path: events
  name: events
  description: Per-event-type subscription toggles.
  node: WebhookEventsShape
  class: WebhookEvents
  node kind: BlankNodeOrIRI
  max count: 1
property:
  path: sources
  name: sources
  description: Per-source subscription toggles (user/admin/api).
  node: WebhookSourcesShape
  class: WebhookSources
  node kind: BlankNodeOrIRI
  max count: 1

errorsShape
type: NodeShape
target class: errors
property:
  path: emailAddress
  name: email address
  datatype: string
  min count: 1
  max count: 1
property:
  path: error
  name: error
  datatype: string
  min count: 1
  max count: 1
property:
  path: errorCode
  name: error code
  datatype: string
  max count: 1

tagsShape
type: NodeShape
target class: tags
property:
  path: name
  name: name
  description: Tag name. Mailchimp creates the tag if it does not exist.
  datatype: string
  min count: 1
  max count: 1
property:
  path: status
  name: status
  description: `active` to attach, `inactive` to detach.
  datatype: string
  min count: 1
  max count: 1

errorsShape
type: NodeShape
target class: errors
property:
  path: emailAddresses
  name: email addresses
  datatype: string
property:
  path: error
  name: error
  datatype: string
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: batchDelivery
  class: CampaignScheduleInput
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.CampaignScheduleInput/batchDelivery/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.CampaignScheduleInput/batchDelivery/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.CampaignScheduleInput/batchDelivery/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: JSON
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: members
  class: ListBatchMembersInput
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.ListBatchMembersInput/members/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.ListBatchMembersInput/members/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.ListBatchMembersInput/members/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: JSON
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: newMembers
  class: ListBatchMembersResponse
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.ListBatchMembersResponse/newMembers/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.ListBatchMembersResponse/newMembers/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.ListBatchMembersResponse/newMembers/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: JSON
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: updatedMembers
  class: ListBatchMembersResponse
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.ListBatchMembersResponse/updatedMembers/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.ListBatchMembersResponse/updatedMembers/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.ListBatchMembersResponse/updatedMembers/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: JSON
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: constraints
  class: ListListResponse
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.ListListResponse/constraints/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.ListListResponse/constraints/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.ListListResponse/constraints/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: JSON
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: interests
  class: Member
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.Member/interests/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.Member/interests/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.Member/interests/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: boolean
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: mergeFields
  class: Member
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.Member/mergeFields/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.Member/mergeFields/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.Member/mergeFields/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: JSON
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: interests
  class: MemberCreateInput
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberCreateInput/interests/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberCreateInput/interests/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberCreateInput/interests/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: boolean
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: location
  class: MemberCreateInput
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberCreateInput/location/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberCreateInput/location/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberCreateInput/location/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: JSON
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: marketingPermissions
  class: MemberCreateInput
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberCreateInput/marketingPermissions/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberCreateInput/marketingPermissions/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberCreateInput/marketingPermissions/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: JSON
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: mergeFields
  class: MemberCreateInput
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberCreateInput/mergeFields/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberCreateInput/mergeFields/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberCreateInput/mergeFields/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: JSON
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: interests
  class: MemberPatchInput
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberPatchInput/interests/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberPatchInput/interests/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberPatchInput/interests/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: boolean
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: location
  class: MemberPatchInput
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberPatchInput/location/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberPatchInput/location/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberPatchInput/location/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: JSON
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: marketingPermissions
  class: MemberPatchInput
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberPatchInput/marketingPermissions/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberPatchInput/marketingPermissions/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberPatchInput/marketingPermissions/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: JSON
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: mergeFields
  class: MemberPatchInput
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberPatchInput/mergeFields/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberPatchInput/mergeFields/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberPatchInput/mergeFields/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: JSON
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: interests
  class: MemberUpsertInput
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberUpsertInput/interests/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberUpsertInput/interests/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberUpsertInput/interests/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: boolean
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: location
  class: MemberUpsertInput
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberUpsertInput/location/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberUpsertInput/location/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberUpsertInput/location/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: JSON
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: marketingPermissions
  class: MemberUpsertInput
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberUpsertInput/marketingPermissions/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberUpsertInput/marketingPermissions/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberUpsertInput/marketingPermissions/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: JSON
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: mergeFields
  class: MemberUpsertInput
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberUpsertInput/mergeFields/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberUpsertInput/mergeFields/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MemberUpsertInput/mergeFields/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: JSON
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: options
  class: MergeFieldCreateInput
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MergeFieldCreateInput/options/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MergeFieldCreateInput/options/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MergeFieldCreateInput/options/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: JSON
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: options
  class: MergeFieldUpdateInput
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MergeFieldUpdateInput/options/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MergeFieldUpdateInput/options/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.MergeFieldUpdateInput/options/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: JSON
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: membersAdded
  class: SegmentBatchMembersResponse
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.SegmentBatchMembersResponse/membersAdded/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.SegmentBatchMembersResponse/membersAdded/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.SegmentBatchMembersResponse/membersAdded/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: JSON
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: membersRemoved
  class: SegmentBatchMembersResponse
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.SegmentBatchMembersResponse/membersRemoved/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.SegmentBatchMembersResponse/membersRemoved/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.SegmentBatchMembersResponse/membersRemoved/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: JSON
  min count: 1
  max count: 1

ContainerShape
type: NodeShape
target class: Container
property:
  path:
    inverse path: options
  class: SegmentInput
  min count: 1
  max count: 1
property:
  path: entry
  node: EntryShape
  class: Entry
  node kind: BlankNodeOrIRI
sparql: SPARQLConstraint
  message: Record entry keys must be unique
  select: SELECT $this ?key WHERE { $this <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.SegmentInput/options/entry> ?left, ?right . FILTER(?left != ?right) ?left <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.SegmentInput/options/key> ?key . ?right <https://relay.inferal.com/ontology/mailchimp/record/Mailchimp.SegmentInput/options/key> ?key . }

EntryShape
type: NodeShape
target class: Entry
property:
  path:
    inverse path: entry
  class: Container
  min count: 1
  max count: 1
property:
  path: key
  datatype: string
  min count: 1
  max count: 1
property:
  path: value
  datatype: JSON
  min count: 1
  max count: 1

path: tagsCount
name: tags count
description: Number of tags currently applied to the subscriber.
datatype: int
max count: 1

path: tags
name: tags
description: Tag associations for the subscriber. Each `id` references a `Tag` on the parent list.
node: MemberTagShape
class: MemberTag
node kind: BlankNodeOrIRI

path: listId
name: list id
description: Parent list that owns the subscriber.
node: ListShape
class: List
node kind: BlankNodeOrIRI
max count: 1

path: links
name: links
description: HATEOAS link descriptors for related resources.
node: HALLinkShape
class: HALLink
node kind: BlankNodeOrIRI