Amazon AppFlow · JSON Structure

Appflow Create Flow Request Structure

CreateFlowRequest schema from Amazon AppFlow API

Type: object Properties: 10 Required: 5
ConnectorsData FlowData IntegrationETLIntegrationSaaSData Transfer

Appflow Create Flow Request Structure is a JSON Structure definition published by Amazon AppFlow, describing 10 properties, of which 5 are required. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.

Properties

flowName clientToken description kmsArn metadataCatalogConfig triggerConfig sourceFlowConfig destinationFlowConfigList tasks tags

Meta-schema: https://json-structure.org/meta/core/v0/#

JSON Structure

Raw ↑
{
  "type": "object",
  "description": "CreateFlowRequest schema from Amazon AppFlow API",
  "properties": {
    "flowName": {
      "type": "string",
      "description": "The specified name of the flow. Spaces are not allowed. Use underscores or hyphens only.",
      "pattern": "[a-zA-Z0-9][\\w!@#.-]+",
      "maxLength": 256,
      "example": "my-salesforce-to-s3-flow"
    },
    "clientToken": {
      "type": "string",
      "description": "Idempotency token to ensure CreateFlow completes only once.",
      "minLength": 1,
      "maxLength": 256,
      "example": "client-token-500123"
    },
    "description": {
      "type": "string",
      "description": "A description of the flow you want to create.",
      "maxLength": 2048,
      "example": "Transfer Salesforce accounts to S3 daily"
    },
    "kmsArn": {
      "type": "string",
      "description": "The ARN of the KMS key for encryption.",
      "minLength": 20,
      "maxLength": 2048,
      "example": "arn:aws:kms:us-east-1:123456789012:key/mrk-1234abcd"
    },
    "metadataCatalogConfig": {
      "type": "object",
      "properties": {
        "glueDataCatalog": {
          "type": "object",
          "description": "Specifies the configuration that Amazon AppFlow uses when it catalogs data with the Glue Data Catalog.",
          "properties": {
            "roleArn": {
              "type": "string",
              "description": "The ARN of an IAM role that grants AppFlow the permissions it needs to create Data Catalog tables, databases, and partitions.",
              "example": "arn:aws:iam::123456789012:role/AppFlowGlueRole"
            },
            "databaseName": {
              "type": "string",
              "description": "The name of an existing Glue Data Catalog database.",
              "example": "appflow-catalog-db"
            },
            "tablePrefix": {
              "type": "string",
              "description": "A naming prefix for each Data Catalog table that Amazon AppFlow creates.",
              "example": "sf_"
            }
          }
        }
      }
    },
    "triggerConfig": {
      "type": "object",
      "properties": {
        "triggerType": {
          "type": "string",
          "description": "Specifies the type of flow trigger. It can be OnDemand, Scheduled, or Event.",
          "enum": [
            "Scheduled",
            "Event",
            "OnDemand"
          ],
          "example": "Scheduled"
        },
        "triggerProperties": {
          "type": "object",
          "description": "Specifies the configuration details of a schedule-triggered flow as defined by the user.",
          "properties": {
            "Scheduled": {}
          }
        }
      },
      "required": [
        "triggerType"
      ]
    },
    "sourceFlowConfig": {
      "type": "object",
      "properties": {
        "connectorType": {
          "type": "string",
          "description": "The type of connector used as a source.",
          "example": "Salesforce"
        },
        "apiVersion": {
          "type": "string",
          "description": "The API version of the connector used in the source.",
          "example": "v55.0"
        },
        "connectorProfileName": {
          "type": "string",
          "description": "The name of the connector profile. Required for all connectors except Amplitude, Datadog, Dynatrace, GoogleAnalytics, Marketo, SAPOData, Salesforce, ServiceNow, Singular, Slack, Trendmicro, and Veeva.",
          "example": "my-salesforce-profile"
        },
        "sourceConnectorProperties": {
          "type": "object",
          "description": "Specifies the information that is required to query a particular source connector.",
          "example": {
            "Salesforce": {
              "object": "Account"
            }
          }
        },
        "incrementalPullConfig": {
          "type": "object",
          "description": "Defines the configuration for a scheduled incremental data pull. If a valid configuration is provided, the fields specified in the configuration are used when querying for the incremental data pull.",
          "properties": {
            "datetimeTypeFieldName": {
              "type": "string",
              "description": "A field that specifies the date time or timestamp field as the criteria to use when importing incremental records from the source.",
              "example": "LastModifiedDate"
            }
          }
        }
      },
      "required": [
        "connectorType",
        "sourceConnectorProperties"
      ]
    },
    "destinationFlowConfigList": {
      "type": "array",
      "description": "The configuration that controls how Amazon AppFlow places data in the destination connector.",
      "items": {}
    },
    "tasks": {
      "type": "array",
      "description": "A list of tasks that Amazon AppFlow performs while transferring data in the flow run.",
      "items": {}
    },
    "tags": {
      "type": "object",
      "description": "The tags used to organize, track, or control access for your flow.",
      "additionalProperties": {
        "type": "string"
      },
      "example": {
        "environment": "production"
      }
    }
  },
  "required": [
    "flowName",
    "triggerConfig",
    "sourceFlowConfig",
    "destinationFlowConfigList",
    "tasks"
  ],
  "$schema": "https://json-structure.org/meta/core/v0/#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/amazon-appflow/refs/heads/main/json-structure/appflow-create-flow-request-structure.json"
}