{
  "service": "jobnimbus",
  "displayName": "JobNimbus",
  "categories": [
    "Productivity",
    "Marketing"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "jobnimbus_api_key",
      "description": "JobNimbus API key used with the Authorization: Bearer header. Create it in JobNimbus under Settings > API Keys, as described in the official authorization docs: https://developer.jobnimbus.com/docs/authorization"
    }
  ],
  "homepageUrl": "https://www.jobnimbus.com",
  "actions": [
    {
      "id": "jobnimbus.create_contact",
      "service": "jobnimbus",
      "name": "create_contact",
      "description": "Create one JobNimbus contact from a raw contact payload, with optional actor, bulk, and skip controls.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "actor": {
            "type": "string",
            "minLength": 1,
            "description": "The optional JobNimbus actor email used to execute the request as a specific team member."
          },
          "bulk": {
            "type": "boolean",
            "description": "Whether to ask JobNimbus for optimistic bulk persistence on this write request."
          },
          "skip": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One JobNimbus skip flag."
            },
            "description": "The JobNimbus automated steps to bypass, such as automation or notification.",
            "minItems": 1
          },
          "data": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw JobNimbus contact payload to send to the API, including standard and custom fields."
          }
        },
        "additionalProperties": false,
        "required": [
          "data"
        ],
        "description": "Input parameters for creating one JobNimbus contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw JobNimbus contact record returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The JobNimbus contact create response."
      }
    },
    {
      "id": "jobnimbus.create_job",
      "service": "jobnimbus",
      "name": "create_job",
      "description": "Create one JobNimbus job from a raw job payload, with optional actor, bulk, and skip controls.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "actor": {
            "type": "string",
            "minLength": 1,
            "description": "The optional JobNimbus actor email used to execute the request as a specific team member."
          },
          "bulk": {
            "type": "boolean",
            "description": "Whether to ask JobNimbus for optimistic bulk persistence on this write request."
          },
          "skip": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One JobNimbus skip flag."
            },
            "description": "The JobNimbus automated steps to bypass, such as automation or notification.",
            "minItems": 1
          },
          "data": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw JobNimbus job payload to send to the API, including standard and custom fields."
          }
        },
        "additionalProperties": false,
        "required": [
          "data"
        ],
        "description": "Input parameters for creating one JobNimbus job."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "job": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw JobNimbus job record returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The JobNimbus job create response."
      }
    },
    {
      "id": "jobnimbus.get_contact",
      "service": "jobnimbus",
      "name": "get_contact",
      "description": "Get one JobNimbus contact by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "contactId": {
            "type": "string",
            "minLength": 1,
            "description": "The JobNimbus record identifier."
          },
          "actor": {
            "type": "string",
            "minLength": 1,
            "description": "The optional JobNimbus actor email used to execute the request as a specific team member."
          },
          "fields": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One JobNimbus field name."
            },
            "description": "The JobNimbus field names to include in the response.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "contactId"
        ],
        "description": "Input parameters for reading one JobNimbus contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw JobNimbus contact record returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The JobNimbus contact detail response."
      }
    },
    {
      "id": "jobnimbus.get_job",
      "service": "jobnimbus",
      "name": "get_job",
      "description": "Get one JobNimbus job by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string",
            "minLength": 1,
            "description": "The JobNimbus record identifier."
          },
          "actor": {
            "type": "string",
            "minLength": 1,
            "description": "The optional JobNimbus actor email used to execute the request as a specific team member."
          },
          "fields": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One JobNimbus field name."
            },
            "description": "The JobNimbus field names to include in the response.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "jobId"
        ],
        "description": "Input parameters for reading one JobNimbus job."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "job": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw JobNimbus job record returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The JobNimbus job detail response."
      }
    },
    {
      "id": "jobnimbus.list_contacts",
      "service": "jobnimbus",
      "name": "list_contacts",
      "description": "List JobNimbus contacts with the standard pagination, sorting, field selection, actor, and Elasticsearch-style filter options.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "actor": {
            "type": "string",
            "minLength": 1,
            "description": "The optional JobNimbus actor email used to execute the request as a specific team member."
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "description": "The maximum number of contacts to return."
          },
          "from": {
            "type": "integer",
            "minimum": 0,
            "description": "The zero-based starting offset for pagination."
          },
          "sortField": {
            "type": "string",
            "minLength": 1,
            "description": "The JobNimbus field name used for sorting."
          },
          "sortDirection": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "The JobNimbus sort direction."
          },
          "fields": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One JobNimbus field name."
            },
            "description": "The JobNimbus field names to include in the response.",
            "minItems": 1
          },
          "filter": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A JobNimbus Elasticsearch-style filter object that will be JSON-encoded for the filter query parameter."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing JobNimbus contacts."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "minimum": 0,
            "description": "The total number of contacts returned by the API response."
          },
          "contacts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw JobNimbus contact record returned by the API."
            },
            "description": "The JobNimbus contacts returned for this request."
          }
        },
        "additionalProperties": false,
        "description": "The normalized JobNimbus contact list response."
      }
    },
    {
      "id": "jobnimbus.list_jobs",
      "service": "jobnimbus",
      "name": "list_jobs",
      "description": "List JobNimbus jobs with the standard pagination, sorting, field selection, actor, and Elasticsearch-style filter options.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "actor": {
            "type": "string",
            "minLength": 1,
            "description": "The optional JobNimbus actor email used to execute the request as a specific team member."
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "description": "The maximum number of jobs to return."
          },
          "from": {
            "type": "integer",
            "minimum": 0,
            "description": "The zero-based starting offset for pagination."
          },
          "sortField": {
            "type": "string",
            "minLength": 1,
            "description": "The JobNimbus field name used for sorting."
          },
          "sortDirection": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "The JobNimbus sort direction."
          },
          "fields": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One JobNimbus field name."
            },
            "description": "The JobNimbus field names to include in the response.",
            "minItems": 1
          },
          "filter": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A JobNimbus Elasticsearch-style filter object that will be JSON-encoded for the filter query parameter."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing JobNimbus jobs."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "minimum": 0,
            "description": "The total number of jobs returned by the API response."
          },
          "jobs": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw JobNimbus job record returned by the API."
            },
            "description": "The JobNimbus jobs returned for this request."
          }
        },
        "additionalProperties": false,
        "description": "The normalized JobNimbus job list response."
      }
    },
    {
      "id": "jobnimbus.update_contact",
      "service": "jobnimbus",
      "name": "update_contact",
      "description": "Update one JobNimbus contact by ID from a raw contact payload, with optional actor, bulk, and skip controls.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "contactId": {
            "type": "string",
            "minLength": 1,
            "description": "The JobNimbus record identifier."
          },
          "actor": {
            "type": "string",
            "minLength": 1,
            "description": "The optional JobNimbus actor email used to execute the request as a specific team member."
          },
          "bulk": {
            "type": "boolean",
            "description": "Whether to ask JobNimbus for optimistic bulk persistence on this write request."
          },
          "skip": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One JobNimbus skip flag."
            },
            "description": "The JobNimbus automated steps to bypass, such as automation or notification.",
            "minItems": 1
          },
          "data": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw JobNimbus contact payload to send to the API, including standard and custom fields."
          }
        },
        "additionalProperties": false,
        "required": [
          "contactId",
          "data"
        ],
        "description": "Input parameters for updating one JobNimbus contact."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "contact": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw JobNimbus contact record returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The JobNimbus contact update response."
      }
    },
    {
      "id": "jobnimbus.update_job",
      "service": "jobnimbus",
      "name": "update_job",
      "description": "Update one JobNimbus job by ID from a raw job payload, with optional actor, bulk, and skip controls.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string",
            "minLength": 1,
            "description": "The JobNimbus record identifier."
          },
          "actor": {
            "type": "string",
            "minLength": 1,
            "description": "The optional JobNimbus actor email used to execute the request as a specific team member."
          },
          "bulk": {
            "type": "boolean",
            "description": "Whether to ask JobNimbus for optimistic bulk persistence on this write request."
          },
          "skip": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "One JobNimbus skip flag."
            },
            "description": "The JobNimbus automated steps to bypass, such as automation or notification.",
            "minItems": 1
          },
          "data": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw JobNimbus job payload to send to the API, including standard and custom fields."
          }
        },
        "additionalProperties": false,
        "required": [
          "jobId",
          "data"
        ],
        "description": "Input parameters for updating one JobNimbus job."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "job": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw JobNimbus job record returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "The JobNimbus job update response."
      }
    }
  ]
}
