[
  {
    "apiName": "CampaignMemberStatus",
    "keyPrefix": "01Y",
    "label": "Campaign Member Status",
    "pluralLabel": "Campaign Member Statuses",
    "tableType": "standard_object",
    "category": "crm",
    "sharingModel": "ControlledByParent",
    "description": "Defines available status values for campaign members per campaign",
    "fields": [
      {
        "apiName": "CampaignId",
        "label": "Campaign",
        "type": "reference",
        "required": true,
        "referenceTo": [
          "Campaign"
        ],
        "relationshipName": "Campaign",
        "childRelationshipName": "CampaignMemberStatuses"
      },
      {
        "apiName": "Label",
        "label": "Member Status",
        "type": "string",
        "required": true,
        "isNameField": true
      },
      {
        "apiName": "SortOrder",
        "label": "Sort Order",
        "type": "integer",
        "createable": true,
        "updateable": true,
        "siblingMaxParentField": "CampaignId"
      },
      {
        "apiName": "IsDefault",
        "label": "Default",
        "type": "boolean",
        "required": true,
        "default": "0"
      },
      {
        "apiName": "HasResponded",
        "label": "Has Responded",
        "type": "boolean",
        "required": true,
        "default": "0"
      }
    ],
    "indices": [
      {
        "columns": [
          "CampaignId"
        ]
      }
    ],
    "managedRelationships": [
      {
        "fieldApiName": "CampaignId",
        "parentObject": "Campaign",
        "isSharingParent": true,
        "cascadeDelete": true
      }
    ]
  }
]
