{
  "service": "surecontact",
  "displayName": "SureContact",
  "categories": [
    "Marketing",
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "SURECONTACT_API_KEY",
      "description": "SureContact API key sent with the X-API-Key header. Create or view it from the SureContact API settings area documented at https://api.surecontact.com/docs.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://surecontact.com/",
  "actions": [
    {
      "id": "surecontact.add_contacts_to_list",
      "service": "surecontact",
      "name": "add_contacts_to_list",
      "description": "Add one or more SureContact contacts to a list.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "listUuid": {
            "type": "string",
            "minLength": 1,
            "description": "The SureContact list UUID."
          },
          "contactUuids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A SureContact contact UUID."
            },
            "description": "SureContact contact UUIDs to add or remove.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "description": "Input for changing list contact membership."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether SureContact reported the operation as successful."
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "SureContact response message."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "description": "Raw SureContact mutation response."
          }
        },
        "additionalProperties": false,
        "description": "SureContact mutation response."
      }
    },
    {
      "id": "surecontact.attach_contact_lists",
      "service": "surecontact",
      "name": "attach_contact_lists",
      "description": "Attach one or more SureContact lists to a contact.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "contactUuid": {
            "type": "string",
            "minLength": 1,
            "description": "The SureContact contact UUID."
          },
          "uuids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A SureContact resource UUID."
            },
            "description": "SureContact resource UUIDs to attach.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "description": "Input for attaching SureContact resources."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether SureContact reported the operation as successful."
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "SureContact response message."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "description": "Raw SureContact mutation response."
          }
        },
        "additionalProperties": false,
        "description": "SureContact mutation response."
      }
    },
    {
      "id": "surecontact.attach_contact_tags",
      "service": "surecontact",
      "name": "attach_contact_tags",
      "description": "Attach one or more SureContact tags to a contact.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "contactUuid": {
            "type": "string",
            "minLength": 1,
            "description": "The SureContact contact UUID."
          },
          "uuids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A SureContact resource UUID."
            },
            "description": "SureContact resource UUIDs to attach.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "description": "Input for attaching SureContact resources."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether SureContact reported the operation as successful."
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "SureContact response message."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "description": "Raw SureContact mutation response."
          }
        },
        "additionalProperties": false,
        "description": "SureContact mutation response."
      }
    },
    {
      "id": "surecontact.create_contact",
      "service": "surecontact",
      "name": "create_contact",
      "description": "Create a SureContact contact and optionally attach lists or tags.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Contact email address.",
            "format": "email"
          },
          "firstName": {
            "type": "string",
            "minLength": 1,
            "description": "Contact first name."
          },
          "lastName": {
            "type": "string",
            "minLength": 1,
            "description": "Contact last name."
          },
          "phone": {
            "type": "string",
            "minLength": 1,
            "description": "Contact phone number."
          },
          "status": {
            "type": "string",
            "enum": [
              "subscribed",
              "unsubscribed",
              "pending"
            ],
            "description": "Contact subscription status."
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "description": "Custom contact field value."
            },
            "description": "Custom contact fields keyed by SureContact field identifier."
          },
          "listUuids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A SureContact list UUID."
            },
            "description": "SureContact list UUIDs to attach to the contact.",
            "minItems": 1
          },
          "tagUuids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A SureContact tag UUID."
            },
            "description": "SureContact tag UUIDs to attach to the contact.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "email"
        ],
        "description": "Input for creating a SureContact contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {
              "uuid": {
                "type": "string",
                "description": "SureContact contact UUID."
              },
              "email": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Contact email address."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "first_name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Contact first name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "last_name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Contact last name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "status": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Contact subscription status."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "A SureContact contact record."
          },
          "raw": {
            "description": "Raw SureContact contact response."
          }
        },
        "additionalProperties": false,
        "description": "A SureContact contact response."
      }
    },
    {
      "id": "surecontact.create_list",
      "service": "surecontact",
      "name": "create_list",
      "description": "Create a SureContact list.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "List name."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "List description."
          }
        },
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "description": "Input for creating a SureContact list."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "list": {
            "type": "object",
            "properties": {
              "uuid": {
                "type": "string",
                "description": "SureContact list UUID."
              },
              "name": {
                "type": "string",
                "description": "List name."
              },
              "type": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "List type returned by SureContact."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "contacts_count": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "Number of contacts in the list."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "A SureContact list record."
          },
          "raw": {
            "description": "Raw SureContact list response."
          }
        },
        "additionalProperties": false,
        "description": "A SureContact list response."
      }
    },
    {
      "id": "surecontact.create_tag",
      "service": "surecontact",
      "name": "create_tag",
      "description": "Create a SureContact tag.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Tag name."
          }
        },
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "description": "Input for creating a SureContact tag."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tag": {
            "type": "object",
            "properties": {
              "uuid": {
                "type": "string",
                "description": "SureContact tag UUID."
              },
              "name": {
                "type": "string",
                "description": "Tag name."
              },
              "contacts_count": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "Number of contacts assigned to the tag."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "A SureContact tag record."
          },
          "raw": {
            "description": "Raw SureContact tag response."
          }
        },
        "additionalProperties": false,
        "description": "A SureContact tag response."
      }
    },
    {
      "id": "surecontact.delete_contact",
      "service": "surecontact",
      "name": "delete_contact",
      "description": "Delete a SureContact contact by UUID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "minLength": 1,
            "description": "The SureContact contact UUID."
          }
        },
        "additionalProperties": false,
        "description": "Input for deleting a SureContact contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether SureContact reported the operation as successful."
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "SureContact response message."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "description": "Raw SureContact mutation response."
          }
        },
        "additionalProperties": false,
        "description": "SureContact mutation response."
      }
    },
    {
      "id": "surecontact.delete_list",
      "service": "surecontact",
      "name": "delete_list",
      "description": "Delete a SureContact list by UUID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "minLength": 1,
            "description": "The SureContact list UUID."
          }
        },
        "additionalProperties": false,
        "description": "Input for deleting a SureContact list."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether SureContact reported the operation as successful."
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "SureContact response message."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "description": "Raw SureContact mutation response."
          }
        },
        "additionalProperties": false,
        "description": "SureContact mutation response."
      }
    },
    {
      "id": "surecontact.delete_tag",
      "service": "surecontact",
      "name": "delete_tag",
      "description": "Delete a SureContact tag by UUID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "minLength": 1,
            "description": "The SureContact tag UUID."
          }
        },
        "additionalProperties": false,
        "description": "Input for deleting a SureContact tag."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether SureContact reported the operation as successful."
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "SureContact response message."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "description": "Raw SureContact mutation response."
          }
        },
        "additionalProperties": false,
        "description": "SureContact mutation response."
      }
    },
    {
      "id": "surecontact.detach_contact_lists",
      "service": "surecontact",
      "name": "detach_contact_lists",
      "description": "Detach one or more SureContact lists from a contact.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "contactUuid": {
            "type": "string",
            "minLength": 1,
            "description": "The SureContact contact UUID."
          },
          "uuids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A SureContact resource UUID."
            },
            "description": "SureContact resource UUIDs to attach.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "description": "Input for attaching SureContact resources."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether SureContact reported the operation as successful."
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "SureContact response message."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "description": "Raw SureContact mutation response."
          }
        },
        "additionalProperties": false,
        "description": "SureContact mutation response."
      }
    },
    {
      "id": "surecontact.detach_contact_tags",
      "service": "surecontact",
      "name": "detach_contact_tags",
      "description": "Detach one or more SureContact tags from a contact.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "contactUuid": {
            "type": "string",
            "minLength": 1,
            "description": "The SureContact contact UUID."
          },
          "uuids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A SureContact resource UUID."
            },
            "description": "SureContact resource UUIDs to attach.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "description": "Input for attaching SureContact resources."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether SureContact reported the operation as successful."
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "SureContact response message."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "description": "Raw SureContact mutation response."
          }
        },
        "additionalProperties": false,
        "description": "SureContact mutation response."
      }
    },
    {
      "id": "surecontact.get_contact",
      "service": "surecontact",
      "name": "get_contact",
      "description": "Retrieve one SureContact contact by UUID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "minLength": 1,
            "description": "The SureContact contact UUID."
          }
        },
        "additionalProperties": false,
        "description": "Input for retrieving a SureContact contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {
              "uuid": {
                "type": "string",
                "description": "SureContact contact UUID."
              },
              "email": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Contact email address."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "first_name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Contact first name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "last_name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Contact last name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "status": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Contact subscription status."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "A SureContact contact record."
          },
          "raw": {
            "description": "Raw SureContact contact response."
          }
        },
        "additionalProperties": false,
        "description": "A SureContact contact response."
      }
    },
    {
      "id": "surecontact.get_contact_by_email",
      "service": "surecontact",
      "name": "get_contact_by_email",
      "description": "Retrieve one SureContact contact by email address.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "The contact email address.",
            "format": "email"
          }
        },
        "additionalProperties": false,
        "description": "Input for retrieving a SureContact contact by email."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {
              "uuid": {
                "type": "string",
                "description": "SureContact contact UUID."
              },
              "email": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Contact email address."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "first_name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Contact first name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "last_name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Contact last name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "status": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Contact subscription status."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "A SureContact contact record."
          },
          "raw": {
            "description": "Raw SureContact contact response."
          }
        },
        "additionalProperties": false,
        "description": "A SureContact contact response."
      }
    },
    {
      "id": "surecontact.get_list",
      "service": "surecontact",
      "name": "get_list",
      "description": "Retrieve one SureContact list by UUID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "minLength": 1,
            "description": "The SureContact list UUID."
          }
        },
        "additionalProperties": false,
        "description": "Input for retrieving a SureContact list."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "list": {
            "type": "object",
            "properties": {
              "uuid": {
                "type": "string",
                "description": "SureContact list UUID."
              },
              "name": {
                "type": "string",
                "description": "List name."
              },
              "type": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "List type returned by SureContact."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "contacts_count": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "Number of contacts in the list."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "A SureContact list record."
          },
          "raw": {
            "description": "Raw SureContact list response."
          }
        },
        "additionalProperties": false,
        "description": "A SureContact list response."
      }
    },
    {
      "id": "surecontact.get_tag",
      "service": "surecontact",
      "name": "get_tag",
      "description": "Retrieve one SureContact tag by UUID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "uuid": {
            "type": "string",
            "minLength": 1,
            "description": "The SureContact tag UUID."
          }
        },
        "additionalProperties": false,
        "description": "Input for retrieving a SureContact tag."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tag": {
            "type": "object",
            "properties": {
              "uuid": {
                "type": "string",
                "description": "SureContact tag UUID."
              },
              "name": {
                "type": "string",
                "description": "Tag name."
              },
              "contacts_count": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "Number of contacts assigned to the tag."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "A SureContact tag record."
          },
          "raw": {
            "description": "Raw SureContact tag response."
          }
        },
        "additionalProperties": false,
        "description": "A SureContact tag response."
      }
    },
    {
      "id": "surecontact.list_contacts",
      "service": "surecontact",
      "name": "list_contacts",
      "description": "List SureContact contacts with optional search, status, list, tag, and pagination filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to request from SureContact."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of records to request per page."
          },
          "search": {
            "type": "string",
            "minLength": 1,
            "description": "Search term used to filter contacts."
          },
          "status": {
            "type": "string",
            "enum": [
              "subscribed",
              "unsubscribed",
              "pending"
            ],
            "description": "Contact status filter."
          },
          "listUuid": {
            "type": "string",
            "minLength": 1,
            "description": "Return contacts attached to this SureContact list UUID."
          },
          "tagUuid": {
            "type": "string",
            "minLength": 1,
            "description": "Return contacts attached to this SureContact tag UUID."
          }
        },
        "additionalProperties": false,
        "description": "Input for listing SureContact contacts."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contacts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "uuid": {
                  "type": "string",
                  "description": "SureContact contact UUID."
                },
                "email": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Contact email address."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "first_name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Contact first name."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "last_name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Contact last name."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "status": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "Contact subscription status."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": true,
              "description": "A SureContact contact record."
            },
            "description": "Contacts returned by SureContact."
          },
          "pagination": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "Current page number returned by SureContact."
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "Number of records per page returned by SureContact."
                  },
                  "total": {
                    "type": "integer",
                    "description": "Total record count returned by SureContact."
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "Last page number returned by SureContact."
                  }
                },
                "additionalProperties": true,
                "description": "SureContact pagination metadata."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "description": "Raw SureContact contacts response."
          }
        },
        "additionalProperties": false,
        "description": "A page of SureContact contacts."
      }
    },
    {
      "id": "surecontact.list_lists",
      "service": "surecontact",
      "name": "list_lists",
      "description": "List SureContact lists with optional search and pagination filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to request from SureContact."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of records to request per page."
          },
          "search": {
            "type": "string",
            "minLength": 1,
            "description": "Search term used to filter resources."
          }
        },
        "additionalProperties": false,
        "description": "Input for listing SureContact resources."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "lists": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "uuid": {
                  "type": "string",
                  "description": "SureContact list UUID."
                },
                "name": {
                  "type": "string",
                  "description": "List name."
                },
                "type": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "List type returned by SureContact."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "contacts_count": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "Number of contacts in the list."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": true,
              "description": "A SureContact list record."
            },
            "description": "Lists returned by SureContact."
          },
          "pagination": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "Current page number returned by SureContact."
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "Number of records per page returned by SureContact."
                  },
                  "total": {
                    "type": "integer",
                    "description": "Total record count returned by SureContact."
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "Last page number returned by SureContact."
                  }
                },
                "additionalProperties": true,
                "description": "SureContact pagination metadata."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "description": "Raw SureContact lists response."
          }
        },
        "additionalProperties": false,
        "description": "A page of SureContact lists."
      }
    },
    {
      "id": "surecontact.list_tags",
      "service": "surecontact",
      "name": "list_tags",
      "description": "List SureContact tags with optional search and pagination filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to request from SureContact."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Number of records to request per page."
          },
          "search": {
            "type": "string",
            "minLength": 1,
            "description": "Search term used to filter resources."
          }
        },
        "additionalProperties": false,
        "description": "Input for listing SureContact resources."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tags": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "uuid": {
                  "type": "string",
                  "description": "SureContact tag UUID."
                },
                "name": {
                  "type": "string",
                  "description": "Tag name."
                },
                "contacts_count": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "Number of contacts assigned to the tag."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": true,
              "description": "A SureContact tag record."
            },
            "description": "Tags returned by SureContact."
          },
          "pagination": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "current_page": {
                    "type": "integer",
                    "description": "Current page number returned by SureContact."
                  },
                  "per_page": {
                    "type": "integer",
                    "description": "Number of records per page returned by SureContact."
                  },
                  "total": {
                    "type": "integer",
                    "description": "Total record count returned by SureContact."
                  },
                  "last_page": {
                    "type": "integer",
                    "description": "Last page number returned by SureContact."
                  }
                },
                "additionalProperties": true,
                "description": "SureContact pagination metadata."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "description": "Raw SureContact tags response."
          }
        },
        "additionalProperties": false,
        "description": "A page of SureContact tags."
      }
    },
    {
      "id": "surecontact.remove_contacts_from_list",
      "service": "surecontact",
      "name": "remove_contacts_from_list",
      "description": "Remove one or more SureContact contacts from a list.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "listUuid": {
            "type": "string",
            "minLength": 1,
            "description": "The SureContact list UUID."
          },
          "contactUuids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A SureContact contact UUID."
            },
            "description": "SureContact contact UUIDs to add or remove.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "description": "Input for changing list contact membership."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether SureContact reported the operation as successful."
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "SureContact response message."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "description": "Raw SureContact mutation response."
          }
        },
        "additionalProperties": false,
        "description": "SureContact mutation response."
      }
    },
    {
      "id": "surecontact.update_contact",
      "service": "surecontact",
      "name": "update_contact",
      "description": "Update a SureContact contact by UUID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "contactUuid": {
            "type": "string",
            "minLength": 1,
            "description": "The SureContact contact UUID to update."
          },
          "email": {
            "type": "string",
            "description": "Contact email address.",
            "format": "email"
          },
          "firstName": {
            "type": "string",
            "minLength": 1,
            "description": "Contact first name."
          },
          "lastName": {
            "type": "string",
            "minLength": 1,
            "description": "Contact last name."
          },
          "phone": {
            "type": "string",
            "minLength": 1,
            "description": "Contact phone number."
          },
          "status": {
            "type": "string",
            "enum": [
              "subscribed",
              "unsubscribed",
              "pending"
            ],
            "description": "Contact subscription status."
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "description": "Custom contact field value."
            },
            "description": "Custom contact fields keyed by SureContact field identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "contactUuid"
        ],
        "description": "Input for updating a SureContact contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {
              "uuid": {
                "type": "string",
                "description": "SureContact contact UUID."
              },
              "email": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Contact email address."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "first_name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Contact first name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "last_name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Contact last name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "status": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Contact subscription status."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "A SureContact contact record."
          },
          "raw": {
            "description": "Raw SureContact contact response."
          }
        },
        "additionalProperties": false,
        "description": "A SureContact contact response."
      }
    },
    {
      "id": "surecontact.update_list",
      "service": "surecontact",
      "name": "update_list",
      "description": "Update a SureContact list by UUID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "listUuid": {
            "type": "string",
            "minLength": 1,
            "description": "The SureContact list UUID to update."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "List name."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "List description."
          }
        },
        "additionalProperties": false,
        "required": [
          "listUuid"
        ],
        "description": "Input for updating a SureContact list."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "list": {
            "type": "object",
            "properties": {
              "uuid": {
                "type": "string",
                "description": "SureContact list UUID."
              },
              "name": {
                "type": "string",
                "description": "List name."
              },
              "type": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "List type returned by SureContact."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "contacts_count": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "Number of contacts in the list."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "A SureContact list record."
          },
          "raw": {
            "description": "Raw SureContact list response."
          }
        },
        "additionalProperties": false,
        "description": "A SureContact list response."
      }
    },
    {
      "id": "surecontact.update_tag",
      "service": "surecontact",
      "name": "update_tag",
      "description": "Update a SureContact tag by UUID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "tagUuid": {
            "type": "string",
            "minLength": 1,
            "description": "The SureContact tag UUID to update."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Tag name."
          }
        },
        "additionalProperties": false,
        "required": [
          "tagUuid"
        ],
        "description": "Input for updating a SureContact tag."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tag": {
            "type": "object",
            "properties": {
              "uuid": {
                "type": "string",
                "description": "SureContact tag UUID."
              },
              "name": {
                "type": "string",
                "description": "Tag name."
              },
              "contacts_count": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "Number of contacts assigned to the tag."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "A SureContact tag record."
          },
          "raw": {
            "description": "Raw SureContact tag response."
          }
        },
        "additionalProperties": false,
        "description": "A SureContact tag response."
      }
    },
    {
      "id": "surecontact.upsert_contact",
      "service": "surecontact",
      "name": "upsert_contact",
      "description": "Create or update a SureContact contact by email address.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Contact email address.",
            "format": "email"
          },
          "firstName": {
            "type": "string",
            "minLength": 1,
            "description": "Contact first name."
          },
          "lastName": {
            "type": "string",
            "minLength": 1,
            "description": "Contact last name."
          },
          "phone": {
            "type": "string",
            "minLength": 1,
            "description": "Contact phone number."
          },
          "status": {
            "type": "string",
            "enum": [
              "subscribed",
              "unsubscribed",
              "pending"
            ],
            "description": "Contact subscription status."
          },
          "customFields": {
            "type": "object",
            "additionalProperties": {
              "description": "Custom contact field value."
            },
            "description": "Custom contact fields keyed by SureContact field identifier."
          },
          "listUuids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A SureContact list UUID."
            },
            "description": "SureContact list UUIDs to attach to the contact.",
            "minItems": 1
          },
          "tagUuids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A SureContact tag UUID."
            },
            "description": "SureContact tag UUIDs to attach to the contact.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "email"
        ],
        "description": "Input for creating or updating a SureContact contact by email."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {
              "uuid": {
                "type": "string",
                "description": "SureContact contact UUID."
              },
              "email": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Contact email address."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "first_name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Contact first name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "last_name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Contact last name."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "status": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Contact subscription status."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "A SureContact contact record."
          },
          "raw": {
            "description": "Raw SureContact contact response."
          }
        },
        "additionalProperties": false,
        "description": "A SureContact contact response."
      }
    }
  ]
}
