{
  "description": "Pipe is the Schema for the Pipes API",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "PipeSpec defines the desired state of Pipe. \n An object that represents a pipe. Amazon EventBridgePipes connect event sources to targets and reduces the need for specialized knowledge and integration code.",
      "properties": {
        "description": {
          "description": "A description of the pipe.",
          "type": "string"
        },
        "desiredState": {
          "description": "The state the pipe should be in.",
          "type": "string"
        },
        "enrichment": {
          "description": "The ARN of the enrichment resource.",
          "type": "string"
        },
        "enrichmentParameters": {
          "description": "The parameters required to set up enrichment on your pipe.",
          "properties": {
            "httpParameters": {
              "description": "These are custom parameter to be used when the target is an API Gateway REST APIs or EventBridge ApiDestinations. In the latter case, these are merged with any InvocationParameters specified on the Connection, with any values from the Connection taking precedence.",
              "properties": {
                "headerParameters": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "type": "object"
                },
                "pathParameterValues": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "queryStringParameters": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "type": "object"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "inputTemplate": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "name": {
          "description": "The name of the pipe.",
          "type": "string"
        },
        "roleARN": {
          "description": "The ARN of the role that allows the pipe to send data to the target.",
          "type": "string"
        },
        "source": {
          "description": "The ARN of the source resource.",
          "type": "string"
        },
        "sourceParameters": {
          "description": "The parameters required to set up a source for your pipe.",
          "properties": {
            "activeMQBrokerParameters": {
              "description": "The parameters for using an Active MQ broker as a source.",
              "properties": {
                "batchSize": {
                  "format": "int64",
                  "type": "integer"
                },
                "credentials": {
                  "description": "The Secrets Manager secret that stores your broker credentials.",
                  "properties": {
                    "basicAuth": {
                      "description": "// Optional SecretManager ARN which stores the database credentials",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "maximumBatchingWindowInSeconds": {
                  "format": "int64",
                  "type": "integer"
                },
                "queueName": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "dynamoDBStreamParameters": {
              "description": "The parameters for using a DynamoDB stream as a source.",
              "properties": {
                "batchSize": {
                  "format": "int64",
                  "type": "integer"
                },
                "deadLetterConfig": {
                  "description": "A DeadLetterConfig object that contains information about a dead-letter queue configuration.",
                  "properties": {
                    "arn": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "maximumBatchingWindowInSeconds": {
                  "format": "int64",
                  "type": "integer"
                },
                "maximumRecordAgeInSeconds": {
                  "format": "int64",
                  "type": "integer"
                },
                "maximumRetryAttempts": {
                  "format": "int64",
                  "type": "integer"
                },
                "onPartialBatchItemFailure": {
                  "type": "string"
                },
                "parallelizationFactor": {
                  "format": "int64",
                  "type": "integer"
                },
                "startingPosition": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "filterCriteria": {
              "description": "The collection of event patterns used to filter events. For more information, see Events and Event Patterns (https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the Amazon EventBridge User Guide.",
              "properties": {
                "filters": {
                  "items": {
                    "description": "Filter events using an event pattern. For more information, see Events and Event Patterns (https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html) in the Amazon EventBridge User Guide.",
                    "properties": {
                      "pattern": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "kinesisStreamParameters": {
              "description": "The parameters for using a Kinesis stream as a source.",
              "properties": {
                "batchSize": {
                  "format": "int64",
                  "type": "integer"
                },
                "deadLetterConfig": {
                  "description": "A DeadLetterConfig object that contains information about a dead-letter queue configuration.",
                  "properties": {
                    "arn": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "maximumBatchingWindowInSeconds": {
                  "format": "int64",
                  "type": "integer"
                },
                "maximumRecordAgeInSeconds": {
                  "format": "int64",
                  "type": "integer"
                },
                "maximumRetryAttempts": {
                  "format": "int64",
                  "type": "integer"
                },
                "onPartialBatchItemFailure": {
                  "type": "string"
                },
                "parallelizationFactor": {
                  "format": "int64",
                  "type": "integer"
                },
                "startingPosition": {
                  "type": "string"
                },
                "startingPositionTimestamp": {
                  "format": "date-time",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "managedStreamingKafkaParameters": {
              "description": "The parameters for using an MSK stream as a source.",
              "properties": {
                "batchSize": {
                  "format": "int64",
                  "type": "integer"
                },
                "consumerGroupID": {
                  "type": "string"
                },
                "credentials": {
                  "description": "The Secrets Manager secret that stores your stream credentials.",
                  "properties": {
                    "clientCertificateTLSAuth": {
                      "description": "// Optional SecretManager ARN which stores the database credentials",
                      "type": "string"
                    },
                    "saslSCRAM512Auth": {
                      "description": "// Optional SecretManager ARN which stores the database credentials",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "maximumBatchingWindowInSeconds": {
                  "format": "int64",
                  "type": "integer"
                },
                "startingPosition": {
                  "type": "string"
                },
                "topicName": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "rabbitMQBrokerParameters": {
              "description": "The parameters for using a Rabbit MQ broker as a source.",
              "properties": {
                "batchSize": {
                  "format": "int64",
                  "type": "integer"
                },
                "credentials": {
                  "description": "The Secrets Manager secret that stores your broker credentials.",
                  "properties": {
                    "basicAuth": {
                      "description": "// Optional SecretManager ARN which stores the database credentials",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "maximumBatchingWindowInSeconds": {
                  "format": "int64",
                  "type": "integer"
                },
                "queueName": {
                  "type": "string"
                },
                "virtualHost": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "selfManagedKafkaParameters": {
              "description": "The parameters for using a self-managed Apache Kafka stream as a source.",
              "properties": {
                "additionalBootstrapServers": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "batchSize": {
                  "format": "int64",
                  "type": "integer"
                },
                "consumerGroupID": {
                  "type": "string"
                },
                "credentials": {
                  "description": "The Secrets Manager secret that stores your stream credentials.",
                  "properties": {
                    "basicAuth": {
                      "description": "// Optional SecretManager ARN which stores the database credentials",
                      "type": "string"
                    },
                    "clientCertificateTLSAuth": {
                      "description": "// Optional SecretManager ARN which stores the database credentials",
                      "type": "string"
                    },
                    "saslSCRAM256Auth": {
                      "description": "// Optional SecretManager ARN which stores the database credentials",
                      "type": "string"
                    },
                    "saslSCRAM512Auth": {
                      "description": "// Optional SecretManager ARN which stores the database credentials",
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "maximumBatchingWindowInSeconds": {
                  "format": "int64",
                  "type": "integer"
                },
                "serverRootCaCertificate": {
                  "description": "// Optional SecretManager ARN which stores the database credentials",
                  "type": "string"
                },
                "startingPosition": {
                  "type": "string"
                },
                "topicName": {
                  "type": "string"
                },
                "vpc": {
                  "description": "This structure specifies the VPC subnets and security groups for the stream, and whether a public IP address is to be used.",
                  "properties": {
                    "securityGroup": {
                      "description": "List of SecurityGroupId.",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "subnets": {
                      "description": "List of SubnetId.",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "sqsQueueParameters": {
              "description": "The parameters for using a Amazon SQS stream as a source.",
              "properties": {
                "batchSize": {
                  "format": "int64",
                  "type": "integer"
                },
                "maximumBatchingWindowInSeconds": {
                  "format": "int64",
                  "type": "integer"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "tags": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "The list of key-value pairs to associate with the pipe.",
          "type": "object"
        },
        "target": {
          "description": "The ARN of the target resource.",
          "type": "string"
        },
        "targetParameters": {
          "description": "The parameters required to set up a target for your pipe.",
          "properties": {
            "batchJobParameters": {
              "description": "The parameters for using an Batch job as a target.",
              "properties": {
                "arrayProperties": {
                  "description": "The array properties for the submitted job, such as the size of the array. The array size can be between 2 and 10,000. If you specify array properties for a job, it becomes an array job. This parameter is used only if the target is an Batch job.",
                  "properties": {
                    "size": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "containerOverrides": {
                  "description": "The overrides that are sent to a container.",
                  "properties": {
                    "command": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "environment": {
                      "items": {
                        "description": "The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. \n Environment variables cannot start with \"Batch\". This naming convention is reserved for variables that Batch sets.",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "value": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    },
                    "instanceType": {
                      "type": "string"
                    },
                    "resourceRequirements": {
                      "items": {
                        "description": "The type and amount of a resource to assign to a container. The supported resources include GPU, MEMORY, and VCPU.",
                        "properties": {
                          "type_": {
                            "type": "string"
                          },
                          "value": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "dependsOn": {
                  "items": {
                    "description": "An object that represents an Batch job dependency.",
                    "properties": {
                      "jobID": {
                        "type": "string"
                      },
                      "type_": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "jobDefinition": {
                  "type": "string"
                },
                "jobName": {
                  "type": "string"
                },
                "parameters": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "type": "object"
                },
                "retryStrategy": {
                  "description": "The retry strategy that's associated with a job. For more information, see Automated job retries (https://docs.aws.amazon.com/batch/latest/userguide/job_retries.html) in the Batch User Guide.",
                  "properties": {
                    "attempts": {
                      "format": "int64",
                      "type": "integer"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "cloudWatchLogsParameters": {
              "description": "The parameters for using an CloudWatch Logs log stream as a target.",
              "properties": {
                "logStreamName": {
                  "type": "string"
                },
                "timestamp": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "ecsTaskParameters": {
              "description": "The parameters for using an Amazon ECS task as a target.",
              "properties": {
                "capacityProviderStrategy": {
                  "items": {
                    "description": "The details of a capacity provider strategy. To learn more, see CapacityProviderStrategyItem (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CapacityProviderStrategyItem.html) in the Amazon ECS API Reference.",
                    "properties": {
                      "base": {
                        "format": "int64",
                        "type": "integer"
                      },
                      "capacityProvider": {
                        "type": "string"
                      },
                      "weight": {
                        "format": "int64",
                        "type": "integer"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "enableECSManagedTags": {
                  "type": "boolean"
                },
                "enableExecuteCommand": {
                  "type": "boolean"
                },
                "group": {
                  "type": "string"
                },
                "launchType": {
                  "type": "string"
                },
                "networkConfiguration": {
                  "description": "This structure specifies the network configuration for an Amazon ECS task.",
                  "properties": {
                    "awsVPCConfiguration": {
                      "description": "This structure specifies the VPC subnets and security groups for the task, and whether a public IP address is to be used. This structure is relevant only for ECS tasks that use the awsvpc network mode.",
                      "properties": {
                        "assignPublicIP": {
                          "type": "string"
                        },
                        "securityGroups": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "subnets": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "overrides": {
                  "description": "The overrides that are associated with a task.",
                  "properties": {
                    "containerOverrides": {
                      "items": {
                        "description": "The overrides that are sent to a container. An empty container override can be passed in. An example of an empty container override is {\"containerOverrides\": [ ] }. If a non-empty container override is specified, the name parameter must be included.",
                        "properties": {
                          "command": {
                            "items": {
                              "type": "string"
                            },
                            "type": "array"
                          },
                          "cpu": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "environment": {
                            "items": {
                              "description": "The environment variables to send to the container. You can add new environment variables, which are added to the container at launch, or you can override the existing environment variables from the Docker image or the task definition. You must also specify a container name.",
                              "properties": {
                                "name": {
                                  "type": "string"
                                },
                                "value": {
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "array"
                          },
                          "environmentFiles": {
                            "items": {
                              "description": "A list of files containing the environment variables to pass to a container. You can specify up to ten environment files. The file must have a .env file extension. Each line in an environment file should contain an environment variable in VARIABLE=VALUE format. Lines beginning with # are treated as comments and are ignored. For more information about the environment variable file syntax, see Declare default environment variables in file (https://docs.docker.com/compose/env-file/). \n If there are environment variables specified using the environment parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend that you use unique variable names. For more information, see Specifying environment variables (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/taskdef-envfiles.html) in the Amazon Elastic Container Service Developer Guide. \n This parameter is only supported for tasks hosted on Fargate using the following platform versions: \n - Linux platform version 1.4.0 or later. \n - Windows platform version 1.0.0 or later.",
                              "properties": {
                                "type_": {
                                  "type": "string"
                                },
                                "value": {
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "array"
                          },
                          "memory": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "memoryReservation": {
                            "format": "int64",
                            "type": "integer"
                          },
                          "name": {
                            "type": "string"
                          },
                          "resourceRequirements": {
                            "items": {
                              "description": "The type and amount of a resource to assign to a container. The supported resource types are GPUs and Elastic Inference accelerators. For more information, see Working with GPUs on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-gpu.html) or Working with Amazon Elastic Inference on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-inference.html) in the Amazon Elastic Container Service Developer Guide",
                              "properties": {
                                "type_": {
                                  "type": "string"
                                },
                                "value": {
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "array"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    },
                    "cpu": {
                      "type": "string"
                    },
                    "ephemeralStorage": {
                      "description": "The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on Fargate. For more information, see Fargate task storage (https://docs.aws.amazon.com/AmazonECS/latest/userguide/using_data_volumes.html) in the Amazon ECS User Guide for Fargate. \n This parameter is only supported for tasks hosted on Fargate using Linux platform version 1.4.0 or later. This parameter is not supported for Windows containers on Fargate.",
                      "properties": {
                        "sizeInGiB": {
                          "format": "int64",
                          "type": "integer"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "executionRoleARN": {
                      "type": "string"
                    },
                    "inferenceAcceleratorOverrides": {
                      "items": {
                        "description": "Details on an Elastic Inference accelerator task override. This parameter is used to override the Elastic Inference accelerator specified in the task definition. For more information, see Working with Amazon Elastic Inference on Amazon ECS (https://docs.aws.amazon.com/AmazonECS/latest/userguide/ecs-inference.html) in the Amazon Elastic Container Service Developer Guide.",
                        "properties": {
                          "deviceName": {
                            "type": "string"
                          },
                          "deviceType": {
                            "type": "string"
                          }
                        },
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    },
                    "memory": {
                      "type": "string"
                    },
                    "taskRoleARN": {
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "placementConstraints": {
                  "items": {
                    "description": "An object representing a constraint on task placement. To learn more, see Task Placement Constraints (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html) in the Amazon Elastic Container Service Developer Guide.",
                    "properties": {
                      "expression": {
                        "type": "string"
                      },
                      "type_": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "placementStrategy": {
                  "items": {
                    "description": "The task placement strategy for a task or service. To learn more, see Task Placement Strategies (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html) in the Amazon Elastic Container Service Service Developer Guide.",
                    "properties": {
                      "field": {
                        "type": "string"
                      },
                      "type_": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "platformVersion": {
                  "type": "string"
                },
                "propagateTags": {
                  "type": "string"
                },
                "referenceID": {
                  "type": "string"
                },
                "tags": {
                  "items": {
                    "description": "A key-value pair associated with an Amazon Web Services resource. In EventBridge, rules and event buses support tagging.",
                    "properties": {
                      "key": {
                        "type": "string"
                      },
                      "value": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "taskCount": {
                  "format": "int64",
                  "type": "integer"
                },
                "taskDefinitionARN": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "eventBridgeEventBusParameters": {
              "description": "The parameters for using an EventBridge event bus as a target.",
              "properties": {
                "detailType": {
                  "type": "string"
                },
                "endpointID": {
                  "type": "string"
                },
                "resources": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "source": {
                  "type": "string"
                },
                "time": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "httpParameters": {
              "description": "These are custom parameter to be used when the target is an API Gateway REST APIs or EventBridge ApiDestinations.",
              "properties": {
                "headerParameters": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "type": "object"
                },
                "pathParameterValues": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "queryStringParameters": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "type": "object"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "inputTemplate": {
              "type": "string"
            },
            "kinesisStreamParameters": {
              "description": "The parameters for using a Kinesis stream as a source.",
              "properties": {
                "partitionKey": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "lambdaFunctionParameters": {
              "description": "The parameters for using a Lambda function as a target.",
              "properties": {
                "invocationType": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "redshiftDataParameters": {
              "description": "These are custom parameters to be used when the target is a Amazon Redshift cluster to invoke the Amazon Redshift Data API ExecuteStatement.",
              "properties": {
                "database": {
                  "description": "// Redshift Database",
                  "type": "string"
                },
                "dbUser": {
                  "description": "// Database user name",
                  "type": "string"
                },
                "secretManagerARN": {
                  "description": "// For targets, can either specify an ARN or a jsonpath pointing to the ARN.",
                  "type": "string"
                },
                "sqls": {
                  "description": "// A list of SQLs.",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "statementName": {
                  "description": "// A name for Redshift DataAPI statement which can be used as filter of // ListStatement.",
                  "type": "string"
                },
                "withEvent": {
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "sageMakerPipelineParameters": {
              "description": "The parameters for using a SageMaker pipeline as a target.",
              "properties": {
                "pipelineParameterList": {
                  "items": {
                    "description": "Name/Value pair of a parameter to start execution of a SageMaker Model Building Pipeline.",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "value": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "sqsQueueParameters": {
              "description": "The parameters for using a Amazon SQS stream as a source.",
              "properties": {
                "messageDeduplicationID": {
                  "type": "string"
                },
                "messageGroupID": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "stepFunctionStateMachineParameters": {
              "description": "The parameters for using a Step Functions state machine as a target.",
              "properties": {
                "invocationType": {
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "type": "object",
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "roleARN",
        "source",
        "target"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "PipeStatus defines the observed state of Pipe",
      "properties": {
        "ackResourceMetadata": {
          "description": "All CRs managed by ACK have a common `Status.ACKResourceMetadata` member that is used to contain resource sync state, account ownership, constructed ARN for the resource",
          "properties": {
            "arn": {
              "description": "ARN is the Amazon Resource Name for the resource. This is a globally-unique identifier and is set only by the ACK service controller once the controller has orchestrated the creation of the resource OR when it has verified that an \"adopted\" resource (a resource where the ARN annotation was set by the Kubernetes user on the CR) exists and matches the supplied CR's Spec field values. TODO(vijat@): Find a better strategy for resources that do not have ARN in CreateOutputResponse https://github.com/aws/aws-controllers-k8s/issues/270",
              "type": "string"
            },
            "ownerAccountID": {
              "description": "OwnerAccountID is the AWS Account ID of the account that owns the backend AWS service API resource.",
              "type": "string"
            },
            "region": {
              "description": "Region is the AWS region in which the resource exists or will exist.",
              "type": "string"
            }
          },
          "required": [
            "ownerAccountID",
            "region"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "conditions": {
          "description": "All CRS managed by ACK have a common `Status.Conditions` member that contains a collection of `ackv1alpha1.Condition` objects that describe the various terminal states of the CR and its backend AWS service API resource",
          "items": {
            "description": "Condition is the common struct used by all CRDs managed by ACK service controllers to indicate terminal states  of the CR and its backend AWS service API resource",
            "properties": {
              "lastTransitionTime": {
                "description": "Last time the condition transitioned from one status to another.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "A human readable message indicating details about the transition.",
                "type": "string"
              },
              "reason": {
                "description": "The reason for the condition's last transition.",
                "type": "string"
              },
              "status": {
                "description": "Status of the condition, one of True, False, Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type is the type of the Condition",
                "type": "string"
              }
            },
            "required": [
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "creationTime": {
          "description": "The time the pipe was created.",
          "format": "date-time",
          "type": "string"
        },
        "currentState": {
          "description": "The state the pipe is in.",
          "type": "string"
        },
        "lastModifiedTime": {
          "description": "When the pipe was last updated, in ISO-8601 format (https://www.w3.org/TR/NOTE-datetime) (YYYY-MM-DDThh:mm:ss.sTZD).",
          "format": "date-time",
          "type": "string"
        },
        "stateReason": {
          "description": "The reason the pipe is in its current state.",
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
