{
  "description": "Target is the Schema for the Targets API. Provides an EventBridge Target resource.",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore 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.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "TargetSpec defines the desired state of Target",
      "properties": {
        "deletionPolicy": {
          "default": "Delete",
          "description": "DeletionPolicy specifies what will happen to the underlying external\nwhen this managed resource is deleted - either \"Delete\" or \"Orphan\" the\nexternal resource.\nThis field is planned to be deprecated in favor of the ManagementPolicies\nfield in a future release. Currently, both could be set independently and\nnon-default values would be honored if the feature flag is enabled.\nSee the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223",
          "enum": [
            "Orphan",
            "Delete"
          ],
          "type": "string"
        },
        "forProvider": {
          "properties": {
            "appsyncTarget": {
              "description": "Parameters used when you are using the rule to invoke an AppSync GraphQL API mutation. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "graphqlOperation": {
                  "description": "Contains the GraphQL mutation to be parsed and executed.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "arn": {
              "description": "The Amazon Resource Name (ARN) of the target.",
              "type": "string"
            },
            "batchTarget": {
              "description": "Parameters used when you are using the rule to invoke an Amazon Batch Job. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "arraySize": {
                  "description": "The size of the array, if this is an array batch job. Valid values are integers between 2 and 10,000.",
                  "type": "number"
                },
                "jobAttempts": {
                  "description": "The number of times to attempt to retry, if the job fails. Valid values are 1 to 10.",
                  "type": "number"
                },
                "jobDefinition": {
                  "description": "The ARN or name of the job definition to use if the event target is an AWS Batch job. This job definition must already exist.",
                  "type": "string"
                },
                "jobName": {
                  "description": "The name to use for this execution of the job, if the target is an AWS Batch job.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "deadLetterConfig": {
              "description": "Parameters used when you are providing a dead letter config. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "arn": {
                  "description": "- ARN of the SQS queue specified as the target for the dead-letter queue.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "ecsTarget": {
              "description": "Parameters used when you are using the rule to invoke Amazon ECS Task. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "capacityProviderStrategy": {
                  "description": "The capacity provider strategy to use for the task. If a capacity_provider_strategy specified, the launch_type parameter must be omitted. If no capacity_provider_strategy or launch_type is specified, the default capacity provider strategy for the cluster is used. Can be one or more. See below.",
                  "items": {
                    "properties": {
                      "base": {
                        "description": "The base value designates how many tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. Defaults to 0.",
                        "type": "number"
                      },
                      "capacityProvider": {
                        "description": "Short name of the capacity provider.",
                        "type": "string"
                      },
                      "weight": {
                        "description": "The weight value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The weight value is taken into consideration after the base value, if defined, is satisfied.",
                        "type": "number"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "enableEcsManagedTags": {
                  "description": "Specifies whether to enable Amazon ECS managed tags for the task.",
                  "type": "boolean"
                },
                "enableExecuteCommand": {
                  "description": "Whether or not to enable the execute command functionality for the containers in this task. If true, this enables execute command functionality on all containers in the task.",
                  "type": "boolean"
                },
                "group": {
                  "description": "Specifies an ECS task group for the task. The maximum length is 255 characters.",
                  "type": "string"
                },
                "launchType": {
                  "description": "Specifies the launch type on which your task is running. The launch type that you specify here must match one of the launch type (compatibilities) of the target task. Valid values include: EC2, EXTERNAL, or FARGATE.",
                  "type": "string"
                },
                "networkConfiguration": {
                  "description": "Use this if the ECS task uses the awsvpc network mode. This specifies the VPC subnets and security groups associated with the task, and whether a public IP address is to be used. Required if launch_type is FARGATE because the awsvpc mode is required for Fargate tasks.",
                  "properties": {
                    "assignPublicIp": {
                      "description": "Assign a public IP address to the ENI (Fargate launch type only). Valid values are true or false. Defaults to false.",
                      "type": "boolean"
                    },
                    "securityGroups": {
                      "description": "The security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used.",
                      "items": {
                        "type": "string"
                      },
                      "type": "array",
                      "x-kubernetes-list-type": "set"
                    },
                    "subnets": {
                      "description": "The subnets associated with the task or service.",
                      "items": {
                        "type": "string"
                      },
                      "type": "array",
                      "x-kubernetes-list-type": "set"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "orderedPlacementStrategy": {
                  "description": "An array of placement strategy objects to use for the task. You can specify a maximum of five strategy rules per task.",
                  "items": {
                    "properties": {
                      "field": {
                        "description": "The field to apply the placement strategy against. For the spread placement strategy, valid values are instanceId (or host, which has the same effect), or any platform or custom attribute that is applied to a container instance, such as attribute:ecs.availability-zone. For the binpack placement strategy, valid values are cpu and memory. For the random placement strategy, this field is not used. For more information, see Amazon ECS task placement strategies.",
                        "type": "string"
                      },
                      "type": {
                        "description": "Type of placement strategy. The only valid values at this time are binpack, random and spread.",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "placementConstraint": {
                  "description": "An array of placement constraint objects to use for the task. You can specify up to 10 constraints per task (including constraints in the task definition and those specified at runtime). See Below.",
                  "items": {
                    "properties": {
                      "expression": {
                        "description": "Cluster Query Language expression to apply to the constraint. Does not need to be specified for the distinctInstance type. For more information, see Cluster Query Language in the Amazon EC2 Container Service Developer Guide.",
                        "type": "string"
                      },
                      "type": {
                        "description": "Type of constraint. The only valid values at this time are memberOf and distinctInstance.",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "platformVersion": {
                  "description": "Specifies the platform version for the task. Specify only the numeric portion of the platform version, such as 1.1.0. This is used only if LaunchType is FARGATE. For more information about valid platform versions, see AWS Fargate Platform Versions.",
                  "type": "string"
                },
                "propagateTags": {
                  "description": "Specifies whether to propagate the tags from the task definition to the task. If no value is specified, the tags are not propagated. Tags can only be propagated to the task during task creation. The only valid value is: TASK_DEFINITION.",
                  "type": "string"
                },
                "tags": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "A map of tags to assign to ecs resources.",
                  "type": "object",
                  "x-kubernetes-map-type": "granular"
                },
                "taskCount": {
                  "description": "The number of tasks to create based on the TaskDefinition. Defaults to 1.",
                  "type": "number"
                },
                "taskDefinitionArn": {
                  "description": "The ARN of the task definition to use if the event target is an Amazon ECS cluster.",
                  "type": "string"
                },
                "taskDefinitionArnRef": {
                  "description": "Reference to a TaskDefinition in ecs to populate taskDefinitionArn.",
                  "properties": {
                    "name": {
                      "description": "Name of the referenced object.",
                      "type": "string"
                    },
                    "policy": {
                      "description": "Policies for referencing.",
                      "properties": {
                        "resolution": {
                          "default": "Required",
                          "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                          "enum": [
                            "Required",
                            "Optional"
                          ],
                          "type": "string"
                        },
                        "resolve": {
                          "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                          "enum": [
                            "Always",
                            "IfNotPresent"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "taskDefinitionArnSelector": {
                  "description": "Selector for a TaskDefinition in ecs to populate taskDefinitionArn.",
                  "properties": {
                    "matchControllerRef": {
                      "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                      "type": "boolean"
                    },
                    "matchLabels": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "MatchLabels ensures an object with matching labels is selected.",
                      "type": "object"
                    },
                    "policy": {
                      "description": "Policies for selection.",
                      "properties": {
                        "resolution": {
                          "default": "Required",
                          "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                          "enum": [
                            "Required",
                            "Optional"
                          ],
                          "type": "string"
                        },
                        "resolve": {
                          "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                          "enum": [
                            "Always",
                            "IfNotPresent"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "eventBusName": {
              "description": "The name or ARN of the event bus to associate with the rule.\nIf you omit this, the default event bus is used.",
              "type": "string"
            },
            "eventBusNameRef": {
              "description": "Reference to a Bus in cloudwatchevents to populate eventBusName.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "eventBusNameSelector": {
              "description": "Selector for a Bus in cloudwatchevents to populate eventBusName.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "forceDestroy": {
              "description": "Used to delete managed rules created by AWS. Defaults to false.",
              "type": "boolean"
            },
            "httpTarget": {
              "description": "Parameters used when you are using the rule to invoke an API Gateway REST endpoint. Documented below. A maximum of 1 is allowed.",
              "properties": {
                "headerParameters": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Enables you to specify HTTP headers to add to the request.",
                  "type": "object",
                  "x-kubernetes-map-type": "granular"
                },
                "pathParameterValues": {
                  "description": "The list of values that correspond sequentially to any path variables in your endpoint ARN (for example arn:aws:execute-api:us-east-1:123456:myapi/*/POST/pets/*).",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "queryStringParameters": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Represents keys/values of query string parameters that are appended to the invoked endpoint.",
                  "type": "object",
                  "x-kubernetes-map-type": "granular"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "input": {
              "description": "Valid JSON text passed to the target. Conflicts with input_path and input_transformer.",
              "type": "string"
            },
            "inputPath": {
              "description": "The value of the JSONPath that is used for extracting part of the matched event when passing it to the target. Conflicts with input and input_transformer.",
              "type": "string"
            },
            "inputTransformer": {
              "description": "Parameters used when you are providing a custom input to a target based on certain event data. Conflicts with input and input_path.",
              "properties": {
                "inputPaths": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Key value pairs specified in the form of JSONPath (for example, time = $.time)",
                  "type": "object",
                  "x-kubernetes-map-type": "granular"
                },
                "inputTemplate": {
                  "description": "Template to customize data sent to the target. Must be valid JSON. To send a string value, the string value must include double quotes.g., \"\\\"Your string goes here.\\\\nA new line.\\\"\"",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "kinesisTarget": {
              "description": "Parameters used when you are using the rule to invoke an Amazon Kinesis Stream. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "partitionKeyPath": {
                  "description": "The JSON path to be extracted from the event and used as the partition key.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "redshiftTarget": {
              "description": "Parameters used when you are using the rule to invoke an Amazon Redshift Statement. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "database": {
                  "description": "The name of the database.",
                  "type": "string"
                },
                "dbUser": {
                  "description": "The database user name.",
                  "type": "string"
                },
                "secretsManagerArn": {
                  "description": "The name or ARN of the secret that enables access to the database.",
                  "type": "string"
                },
                "sql": {
                  "description": "The SQL statement text to run.",
                  "type": "string"
                },
                "statementName": {
                  "description": "The name of the SQL statement.",
                  "type": "string"
                },
                "withEvent": {
                  "description": "Indicates whether to send an event back to EventBridge after the SQL statement runs.",
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "region": {
              "description": "Region where this resource will be managed. Defaults to the Region set in the provider configuration.\nRegion is the region you'd like your resource to be created in.",
              "type": "string"
            },
            "retryPolicy": {
              "description": "Parameters used when you are providing retry policies. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "maximumEventAgeInSeconds": {
                  "description": "The age in seconds to continue to make retry attempts.",
                  "type": "number"
                },
                "maximumRetryAttempts": {
                  "description": "maximum number of retry attempts to make before the request fails",
                  "type": "number"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "roleArn": {
              "description": "The Amazon Resource Name (ARN) of the IAM role to be used for this target when the rule is triggered. Required if ecs_target is used or target in arn is EC2 instance, Kinesis data stream, Step Functions state machine, or Event Bus in different account or region.",
              "type": "string"
            },
            "roleArnRef": {
              "description": "Reference to a Role in iam to populate roleArn.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "roleArnSelector": {
              "description": "Selector for a Role in iam to populate roleArn.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "rule": {
              "description": "The name of the rule you want to add targets to.",
              "type": "string"
            },
            "ruleRef": {
              "description": "Reference to a Rule in cloudwatchevents to populate rule.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "ruleSelector": {
              "description": "Selector for a Rule in cloudwatchevents to populate rule.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "runCommandTargets": {
              "description": "Parameters used when you are using the rule to invoke Amazon EC2 Run Command. Documented below. A maximum of 5 are allowed.",
              "items": {
                "properties": {
                  "key": {
                    "description": "Can be either tag:tag-key or InstanceIds.",
                    "type": "string"
                  },
                  "values": {
                    "description": "If Key is tag:tag-key, Values is a list of tag values. If Key is InstanceIds, Values is a list of Amazon EC2 instance IDs.",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "sagemakerPipelineTarget": {
              "description": "Parameters used when you are using the rule to invoke an Amazon SageMaker AI Pipeline. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "pipelineParameterList": {
                  "description": "List of Parameter names and values for SageMaker AI Model Building Pipeline execution.",
                  "items": {
                    "properties": {
                      "name": {
                        "description": "Name of parameter to start execution of a SageMaker AI Model Building Pipeline.",
                        "type": "string"
                      },
                      "value": {
                        "description": "Value of parameter to start execution of a SageMaker AI Model Building Pipeline.",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "sqsTarget": {
              "description": "Parameters used when you are using the rule to invoke an Amazon SQS Queue. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "messageGroupId": {
                  "description": "The FIFO message group ID to use as the target.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "targetId": {
              "description": "The unique target assignment ID. If missing, will generate a random, unique id.",
              "type": "string"
            }
          },
          "required": [
            "region"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "initProvider": {
          "description": "THIS IS A BETA FIELD. It will be honored\nunless the Management Policies feature flag is disabled.\nInitProvider holds the same fields as ForProvider, with the exception\nof Identifier and other resource reference fields. The fields that are\nin InitProvider are merged into ForProvider when the resource is created.\nThe same fields are also added to the terraform ignore_changes hook, to\navoid updating them after creation. This is useful for fields that are\nrequired on creation, but we do not desire to update them after creation,\nfor example because of an external controller is managing them, like an\nautoscaler.",
          "properties": {
            "appsyncTarget": {
              "description": "Parameters used when you are using the rule to invoke an AppSync GraphQL API mutation. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "graphqlOperation": {
                  "description": "Contains the GraphQL mutation to be parsed and executed.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "arn": {
              "description": "The Amazon Resource Name (ARN) of the target.",
              "type": "string"
            },
            "batchTarget": {
              "description": "Parameters used when you are using the rule to invoke an Amazon Batch Job. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "arraySize": {
                  "description": "The size of the array, if this is an array batch job. Valid values are integers between 2 and 10,000.",
                  "type": "number"
                },
                "jobAttempts": {
                  "description": "The number of times to attempt to retry, if the job fails. Valid values are 1 to 10.",
                  "type": "number"
                },
                "jobDefinition": {
                  "description": "The ARN or name of the job definition to use if the event target is an AWS Batch job. This job definition must already exist.",
                  "type": "string"
                },
                "jobName": {
                  "description": "The name to use for this execution of the job, if the target is an AWS Batch job.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "deadLetterConfig": {
              "description": "Parameters used when you are providing a dead letter config. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "arn": {
                  "description": "- ARN of the SQS queue specified as the target for the dead-letter queue.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "ecsTarget": {
              "description": "Parameters used when you are using the rule to invoke Amazon ECS Task. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "capacityProviderStrategy": {
                  "description": "The capacity provider strategy to use for the task. If a capacity_provider_strategy specified, the launch_type parameter must be omitted. If no capacity_provider_strategy or launch_type is specified, the default capacity provider strategy for the cluster is used. Can be one or more. See below.",
                  "items": {
                    "properties": {
                      "base": {
                        "description": "The base value designates how many tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. Defaults to 0.",
                        "type": "number"
                      },
                      "capacityProvider": {
                        "description": "Short name of the capacity provider.",
                        "type": "string"
                      },
                      "weight": {
                        "description": "The weight value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The weight value is taken into consideration after the base value, if defined, is satisfied.",
                        "type": "number"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "enableEcsManagedTags": {
                  "description": "Specifies whether to enable Amazon ECS managed tags for the task.",
                  "type": "boolean"
                },
                "enableExecuteCommand": {
                  "description": "Whether or not to enable the execute command functionality for the containers in this task. If true, this enables execute command functionality on all containers in the task.",
                  "type": "boolean"
                },
                "group": {
                  "description": "Specifies an ECS task group for the task. The maximum length is 255 characters.",
                  "type": "string"
                },
                "launchType": {
                  "description": "Specifies the launch type on which your task is running. The launch type that you specify here must match one of the launch type (compatibilities) of the target task. Valid values include: EC2, EXTERNAL, or FARGATE.",
                  "type": "string"
                },
                "networkConfiguration": {
                  "description": "Use this if the ECS task uses the awsvpc network mode. This specifies the VPC subnets and security groups associated with the task, and whether a public IP address is to be used. Required if launch_type is FARGATE because the awsvpc mode is required for Fargate tasks.",
                  "properties": {
                    "assignPublicIp": {
                      "description": "Assign a public IP address to the ENI (Fargate launch type only). Valid values are true or false. Defaults to false.",
                      "type": "boolean"
                    },
                    "securityGroups": {
                      "description": "The security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used.",
                      "items": {
                        "type": "string"
                      },
                      "type": "array",
                      "x-kubernetes-list-type": "set"
                    },
                    "subnets": {
                      "description": "The subnets associated with the task or service.",
                      "items": {
                        "type": "string"
                      },
                      "type": "array",
                      "x-kubernetes-list-type": "set"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "orderedPlacementStrategy": {
                  "description": "An array of placement strategy objects to use for the task. You can specify a maximum of five strategy rules per task.",
                  "items": {
                    "properties": {
                      "field": {
                        "description": "The field to apply the placement strategy against. For the spread placement strategy, valid values are instanceId (or host, which has the same effect), or any platform or custom attribute that is applied to a container instance, such as attribute:ecs.availability-zone. For the binpack placement strategy, valid values are cpu and memory. For the random placement strategy, this field is not used. For more information, see Amazon ECS task placement strategies.",
                        "type": "string"
                      },
                      "type": {
                        "description": "Type of placement strategy. The only valid values at this time are binpack, random and spread.",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "placementConstraint": {
                  "description": "An array of placement constraint objects to use for the task. You can specify up to 10 constraints per task (including constraints in the task definition and those specified at runtime). See Below.",
                  "items": {
                    "properties": {
                      "expression": {
                        "description": "Cluster Query Language expression to apply to the constraint. Does not need to be specified for the distinctInstance type. For more information, see Cluster Query Language in the Amazon EC2 Container Service Developer Guide.",
                        "type": "string"
                      },
                      "type": {
                        "description": "Type of constraint. The only valid values at this time are memberOf and distinctInstance.",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "platformVersion": {
                  "description": "Specifies the platform version for the task. Specify only the numeric portion of the platform version, such as 1.1.0. This is used only if LaunchType is FARGATE. For more information about valid platform versions, see AWS Fargate Platform Versions.",
                  "type": "string"
                },
                "propagateTags": {
                  "description": "Specifies whether to propagate the tags from the task definition to the task. If no value is specified, the tags are not propagated. Tags can only be propagated to the task during task creation. The only valid value is: TASK_DEFINITION.",
                  "type": "string"
                },
                "tags": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "A map of tags to assign to ecs resources.",
                  "type": "object",
                  "x-kubernetes-map-type": "granular"
                },
                "taskCount": {
                  "description": "The number of tasks to create based on the TaskDefinition. Defaults to 1.",
                  "type": "number"
                },
                "taskDefinitionArn": {
                  "description": "The ARN of the task definition to use if the event target is an Amazon ECS cluster.",
                  "type": "string"
                },
                "taskDefinitionArnRef": {
                  "description": "Reference to a TaskDefinition in ecs to populate taskDefinitionArn.",
                  "properties": {
                    "name": {
                      "description": "Name of the referenced object.",
                      "type": "string"
                    },
                    "policy": {
                      "description": "Policies for referencing.",
                      "properties": {
                        "resolution": {
                          "default": "Required",
                          "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                          "enum": [
                            "Required",
                            "Optional"
                          ],
                          "type": "string"
                        },
                        "resolve": {
                          "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                          "enum": [
                            "Always",
                            "IfNotPresent"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "taskDefinitionArnSelector": {
                  "description": "Selector for a TaskDefinition in ecs to populate taskDefinitionArn.",
                  "properties": {
                    "matchControllerRef": {
                      "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                      "type": "boolean"
                    },
                    "matchLabels": {
                      "additionalProperties": {
                        "type": "string"
                      },
                      "description": "MatchLabels ensures an object with matching labels is selected.",
                      "type": "object"
                    },
                    "policy": {
                      "description": "Policies for selection.",
                      "properties": {
                        "resolution": {
                          "default": "Required",
                          "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                          "enum": [
                            "Required",
                            "Optional"
                          ],
                          "type": "string"
                        },
                        "resolve": {
                          "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                          "enum": [
                            "Always",
                            "IfNotPresent"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "eventBusName": {
              "description": "The name or ARN of the event bus to associate with the rule.\nIf you omit this, the default event bus is used.",
              "type": "string"
            },
            "eventBusNameRef": {
              "description": "Reference to a Bus in cloudwatchevents to populate eventBusName.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "eventBusNameSelector": {
              "description": "Selector for a Bus in cloudwatchevents to populate eventBusName.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "forceDestroy": {
              "description": "Used to delete managed rules created by AWS. Defaults to false.",
              "type": "boolean"
            },
            "httpTarget": {
              "description": "Parameters used when you are using the rule to invoke an API Gateway REST endpoint. Documented below. A maximum of 1 is allowed.",
              "properties": {
                "headerParameters": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Enables you to specify HTTP headers to add to the request.",
                  "type": "object",
                  "x-kubernetes-map-type": "granular"
                },
                "pathParameterValues": {
                  "description": "The list of values that correspond sequentially to any path variables in your endpoint ARN (for example arn:aws:execute-api:us-east-1:123456:myapi/*/POST/pets/*).",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "queryStringParameters": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Represents keys/values of query string parameters that are appended to the invoked endpoint.",
                  "type": "object",
                  "x-kubernetes-map-type": "granular"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "input": {
              "description": "Valid JSON text passed to the target. Conflicts with input_path and input_transformer.",
              "type": "string"
            },
            "inputPath": {
              "description": "The value of the JSONPath that is used for extracting part of the matched event when passing it to the target. Conflicts with input and input_transformer.",
              "type": "string"
            },
            "inputTransformer": {
              "description": "Parameters used when you are providing a custom input to a target based on certain event data. Conflicts with input and input_path.",
              "properties": {
                "inputPaths": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Key value pairs specified in the form of JSONPath (for example, time = $.time)",
                  "type": "object",
                  "x-kubernetes-map-type": "granular"
                },
                "inputTemplate": {
                  "description": "Template to customize data sent to the target. Must be valid JSON. To send a string value, the string value must include double quotes.g., \"\\\"Your string goes here.\\\\nA new line.\\\"\"",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "kinesisTarget": {
              "description": "Parameters used when you are using the rule to invoke an Amazon Kinesis Stream. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "partitionKeyPath": {
                  "description": "The JSON path to be extracted from the event and used as the partition key.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "redshiftTarget": {
              "description": "Parameters used when you are using the rule to invoke an Amazon Redshift Statement. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "database": {
                  "description": "The name of the database.",
                  "type": "string"
                },
                "dbUser": {
                  "description": "The database user name.",
                  "type": "string"
                },
                "secretsManagerArn": {
                  "description": "The name or ARN of the secret that enables access to the database.",
                  "type": "string"
                },
                "sql": {
                  "description": "The SQL statement text to run.",
                  "type": "string"
                },
                "statementName": {
                  "description": "The name of the SQL statement.",
                  "type": "string"
                },
                "withEvent": {
                  "description": "Indicates whether to send an event back to EventBridge after the SQL statement runs.",
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "retryPolicy": {
              "description": "Parameters used when you are providing retry policies. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "maximumEventAgeInSeconds": {
                  "description": "The age in seconds to continue to make retry attempts.",
                  "type": "number"
                },
                "maximumRetryAttempts": {
                  "description": "maximum number of retry attempts to make before the request fails",
                  "type": "number"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "roleArn": {
              "description": "The Amazon Resource Name (ARN) of the IAM role to be used for this target when the rule is triggered. Required if ecs_target is used or target in arn is EC2 instance, Kinesis data stream, Step Functions state machine, or Event Bus in different account or region.",
              "type": "string"
            },
            "roleArnRef": {
              "description": "Reference to a Role in iam to populate roleArn.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "roleArnSelector": {
              "description": "Selector for a Role in iam to populate roleArn.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "rule": {
              "description": "The name of the rule you want to add targets to.",
              "type": "string"
            },
            "ruleRef": {
              "description": "Reference to a Rule in cloudwatchevents to populate rule.",
              "properties": {
                "name": {
                  "description": "Name of the referenced object.",
                  "type": "string"
                },
                "policy": {
                  "description": "Policies for referencing.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "required": [
                "name"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "ruleSelector": {
              "description": "Selector for a Rule in cloudwatchevents to populate rule.",
              "properties": {
                "matchControllerRef": {
                  "description": "MatchControllerRef ensures an object with the same controller reference\nas the selecting object is selected.",
                  "type": "boolean"
                },
                "matchLabels": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "MatchLabels ensures an object with matching labels is selected.",
                  "type": "object"
                },
                "policy": {
                  "description": "Policies for selection.",
                  "properties": {
                    "resolution": {
                      "default": "Required",
                      "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                      "enum": [
                        "Required",
                        "Optional"
                      ],
                      "type": "string"
                    },
                    "resolve": {
                      "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                      "enum": [
                        "Always",
                        "IfNotPresent"
                      ],
                      "type": "string"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "runCommandTargets": {
              "description": "Parameters used when you are using the rule to invoke Amazon EC2 Run Command. Documented below. A maximum of 5 are allowed.",
              "items": {
                "properties": {
                  "key": {
                    "description": "Can be either tag:tag-key or InstanceIds.",
                    "type": "string"
                  },
                  "values": {
                    "description": "If Key is tag:tag-key, Values is a list of tag values. If Key is InstanceIds, Values is a list of Amazon EC2 instance IDs.",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "sagemakerPipelineTarget": {
              "description": "Parameters used when you are using the rule to invoke an Amazon SageMaker AI Pipeline. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "pipelineParameterList": {
                  "description": "List of Parameter names and values for SageMaker AI Model Building Pipeline execution.",
                  "items": {
                    "properties": {
                      "name": {
                        "description": "Name of parameter to start execution of a SageMaker AI Model Building Pipeline.",
                        "type": "string"
                      },
                      "value": {
                        "description": "Value of parameter to start execution of a SageMaker AI Model Building Pipeline.",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "sqsTarget": {
              "description": "Parameters used when you are using the rule to invoke an Amazon SQS Queue. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "messageGroupId": {
                  "description": "The FIFO message group ID to use as the target.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "targetId": {
              "description": "The unique target assignment ID. If missing, will generate a random, unique id.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "managementPolicies": {
          "default": [
            "*"
          ],
          "description": "THIS IS A BETA FIELD. It is on by default but can be opted out\nthrough a Crossplane feature flag.\nManagementPolicies specify the array of actions Crossplane is allowed to\ntake on the managed and external resources.\nThis field is planned to replace the DeletionPolicy field in a future\nrelease. Currently, both could be set independently and non-default\nvalues would be honored if the feature flag is enabled. If both are\ncustom, the DeletionPolicy field will be ignored.\nSee the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223\nand this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md",
          "items": {
            "description": "A ManagementAction represents an action that the Crossplane controllers\ncan take on an external resource.",
            "enum": [
              "Observe",
              "Create",
              "Update",
              "Delete",
              "LateInitialize",
              "*"
            ],
            "type": "string"
          },
          "type": "array"
        },
        "providerConfigRef": {
          "default": {
            "name": "default"
          },
          "description": "ProviderConfigReference specifies how the provider that will be used to\ncreate, observe, update, and delete this managed resource should be\nconfigured.",
          "properties": {
            "name": {
              "description": "Name of the referenced object.",
              "type": "string"
            },
            "policy": {
              "description": "Policies for referencing.",
              "properties": {
                "resolution": {
                  "default": "Required",
                  "description": "Resolution specifies whether resolution of this reference is required.\nThe default is 'Required', which means the reconcile will fail if the\nreference cannot be resolved. 'Optional' means this reference will be\na no-op if it cannot be resolved.",
                  "enum": [
                    "Required",
                    "Optional"
                  ],
                  "type": "string"
                },
                "resolve": {
                  "description": "Resolve specifies when this reference should be resolved. The default\nis 'IfNotPresent', which will attempt to resolve the reference only when\nthe corresponding field is not present. Use 'Always' to resolve the\nreference on every reconcile.",
                  "enum": [
                    "Always",
                    "IfNotPresent"
                  ],
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            }
          },
          "required": [
            "name"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "writeConnectionSecretToRef": {
          "description": "WriteConnectionSecretToReference specifies the namespace and name of a\nSecret to which any connection details for this managed resource should\nbe written. Connection details frequently include the endpoint, username,\nand password required to connect to the managed resource.",
          "properties": {
            "name": {
              "description": "Name of the secret.",
              "type": "string"
            },
            "namespace": {
              "description": "Namespace of the secret.",
              "type": "string"
            }
          },
          "required": [
            "name",
            "namespace"
          ],
          "type": "object",
          "additionalProperties": false
        }
      },
      "required": [
        "forProvider"
      ],
      "type": "object",
      "x-kubernetes-validations": [
        {
          "message": "spec.forProvider.arn is a required parameter",
          "rule": "!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.arn) || (has(self.initProvider) && has(self.initProvider.arn))"
        }
      ],
      "additionalProperties": false
    },
    "status": {
      "description": "TargetStatus defines the observed state of Target.",
      "properties": {
        "atProvider": {
          "properties": {
            "appsyncTarget": {
              "description": "Parameters used when you are using the rule to invoke an AppSync GraphQL API mutation. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "graphqlOperation": {
                  "description": "Contains the GraphQL mutation to be parsed and executed.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "arn": {
              "description": "The Amazon Resource Name (ARN) of the target.",
              "type": "string"
            },
            "batchTarget": {
              "description": "Parameters used when you are using the rule to invoke an Amazon Batch Job. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "arraySize": {
                  "description": "The size of the array, if this is an array batch job. Valid values are integers between 2 and 10,000.",
                  "type": "number"
                },
                "jobAttempts": {
                  "description": "The number of times to attempt to retry, if the job fails. Valid values are 1 to 10.",
                  "type": "number"
                },
                "jobDefinition": {
                  "description": "The ARN or name of the job definition to use if the event target is an AWS Batch job. This job definition must already exist.",
                  "type": "string"
                },
                "jobName": {
                  "description": "The name to use for this execution of the job, if the target is an AWS Batch job.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "deadLetterConfig": {
              "description": "Parameters used when you are providing a dead letter config. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "arn": {
                  "description": "- ARN of the SQS queue specified as the target for the dead-letter queue.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "ecsTarget": {
              "description": "Parameters used when you are using the rule to invoke Amazon ECS Task. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "capacityProviderStrategy": {
                  "description": "The capacity provider strategy to use for the task. If a capacity_provider_strategy specified, the launch_type parameter must be omitted. If no capacity_provider_strategy or launch_type is specified, the default capacity provider strategy for the cluster is used. Can be one or more. See below.",
                  "items": {
                    "properties": {
                      "base": {
                        "description": "The base value designates how many tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a base defined. Defaults to 0.",
                        "type": "number"
                      },
                      "capacityProvider": {
                        "description": "Short name of the capacity provider.",
                        "type": "string"
                      },
                      "weight": {
                        "description": "The weight value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The weight value is taken into consideration after the base value, if defined, is satisfied.",
                        "type": "number"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "enableEcsManagedTags": {
                  "description": "Specifies whether to enable Amazon ECS managed tags for the task.",
                  "type": "boolean"
                },
                "enableExecuteCommand": {
                  "description": "Whether or not to enable the execute command functionality for the containers in this task. If true, this enables execute command functionality on all containers in the task.",
                  "type": "boolean"
                },
                "group": {
                  "description": "Specifies an ECS task group for the task. The maximum length is 255 characters.",
                  "type": "string"
                },
                "launchType": {
                  "description": "Specifies the launch type on which your task is running. The launch type that you specify here must match one of the launch type (compatibilities) of the target task. Valid values include: EC2, EXTERNAL, or FARGATE.",
                  "type": "string"
                },
                "networkConfiguration": {
                  "description": "Use this if the ECS task uses the awsvpc network mode. This specifies the VPC subnets and security groups associated with the task, and whether a public IP address is to be used. Required if launch_type is FARGATE because the awsvpc mode is required for Fargate tasks.",
                  "properties": {
                    "assignPublicIp": {
                      "description": "Assign a public IP address to the ENI (Fargate launch type only). Valid values are true or false. Defaults to false.",
                      "type": "boolean"
                    },
                    "securityGroups": {
                      "description": "The security groups associated with the task or service. If you do not specify a security group, the default security group for the VPC is used.",
                      "items": {
                        "type": "string"
                      },
                      "type": "array",
                      "x-kubernetes-list-type": "set"
                    },
                    "subnets": {
                      "description": "The subnets associated with the task or service.",
                      "items": {
                        "type": "string"
                      },
                      "type": "array",
                      "x-kubernetes-list-type": "set"
                    }
                  },
                  "type": "object",
                  "additionalProperties": false
                },
                "orderedPlacementStrategy": {
                  "description": "An array of placement strategy objects to use for the task. You can specify a maximum of five strategy rules per task.",
                  "items": {
                    "properties": {
                      "field": {
                        "description": "The field to apply the placement strategy against. For the spread placement strategy, valid values are instanceId (or host, which has the same effect), or any platform or custom attribute that is applied to a container instance, such as attribute:ecs.availability-zone. For the binpack placement strategy, valid values are cpu and memory. For the random placement strategy, this field is not used. For more information, see Amazon ECS task placement strategies.",
                        "type": "string"
                      },
                      "type": {
                        "description": "Type of placement strategy. The only valid values at this time are binpack, random and spread.",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "placementConstraint": {
                  "description": "An array of placement constraint objects to use for the task. You can specify up to 10 constraints per task (including constraints in the task definition and those specified at runtime). See Below.",
                  "items": {
                    "properties": {
                      "expression": {
                        "description": "Cluster Query Language expression to apply to the constraint. Does not need to be specified for the distinctInstance type. For more information, see Cluster Query Language in the Amazon EC2 Container Service Developer Guide.",
                        "type": "string"
                      },
                      "type": {
                        "description": "Type of constraint. The only valid values at this time are memberOf and distinctInstance.",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "platformVersion": {
                  "description": "Specifies the platform version for the task. Specify only the numeric portion of the platform version, such as 1.1.0. This is used only if LaunchType is FARGATE. For more information about valid platform versions, see AWS Fargate Platform Versions.",
                  "type": "string"
                },
                "propagateTags": {
                  "description": "Specifies whether to propagate the tags from the task definition to the task. If no value is specified, the tags are not propagated. Tags can only be propagated to the task during task creation. The only valid value is: TASK_DEFINITION.",
                  "type": "string"
                },
                "tags": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "A map of tags to assign to ecs resources.",
                  "type": "object",
                  "x-kubernetes-map-type": "granular"
                },
                "taskCount": {
                  "description": "The number of tasks to create based on the TaskDefinition. Defaults to 1.",
                  "type": "number"
                },
                "taskDefinitionArn": {
                  "description": "The ARN of the task definition to use if the event target is an Amazon ECS cluster.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "eventBusName": {
              "description": "The name or ARN of the event bus to associate with the rule.\nIf you omit this, the default event bus is used.",
              "type": "string"
            },
            "forceDestroy": {
              "description": "Used to delete managed rules created by AWS. Defaults to false.",
              "type": "boolean"
            },
            "httpTarget": {
              "description": "Parameters used when you are using the rule to invoke an API Gateway REST endpoint. Documented below. A maximum of 1 is allowed.",
              "properties": {
                "headerParameters": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Enables you to specify HTTP headers to add to the request.",
                  "type": "object",
                  "x-kubernetes-map-type": "granular"
                },
                "pathParameterValues": {
                  "description": "The list of values that correspond sequentially to any path variables in your endpoint ARN (for example arn:aws:execute-api:us-east-1:123456:myapi/*/POST/pets/*).",
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "queryStringParameters": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Represents keys/values of query string parameters that are appended to the invoked endpoint.",
                  "type": "object",
                  "x-kubernetes-map-type": "granular"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "id": {
              "type": "string"
            },
            "input": {
              "description": "Valid JSON text passed to the target. Conflicts with input_path and input_transformer.",
              "type": "string"
            },
            "inputPath": {
              "description": "The value of the JSONPath that is used for extracting part of the matched event when passing it to the target. Conflicts with input and input_transformer.",
              "type": "string"
            },
            "inputTransformer": {
              "description": "Parameters used when you are providing a custom input to a target based on certain event data. Conflicts with input and input_path.",
              "properties": {
                "inputPaths": {
                  "additionalProperties": {
                    "type": "string"
                  },
                  "description": "Key value pairs specified in the form of JSONPath (for example, time = $.time)",
                  "type": "object",
                  "x-kubernetes-map-type": "granular"
                },
                "inputTemplate": {
                  "description": "Template to customize data sent to the target. Must be valid JSON. To send a string value, the string value must include double quotes.g., \"\\\"Your string goes here.\\\\nA new line.\\\"\"",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "kinesisTarget": {
              "description": "Parameters used when you are using the rule to invoke an Amazon Kinesis Stream. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "partitionKeyPath": {
                  "description": "The JSON path to be extracted from the event and used as the partition key.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "redshiftTarget": {
              "description": "Parameters used when you are using the rule to invoke an Amazon Redshift Statement. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "database": {
                  "description": "The name of the database.",
                  "type": "string"
                },
                "dbUser": {
                  "description": "The database user name.",
                  "type": "string"
                },
                "secretsManagerArn": {
                  "description": "The name or ARN of the secret that enables access to the database.",
                  "type": "string"
                },
                "sql": {
                  "description": "The SQL statement text to run.",
                  "type": "string"
                },
                "statementName": {
                  "description": "The name of the SQL statement.",
                  "type": "string"
                },
                "withEvent": {
                  "description": "Indicates whether to send an event back to EventBridge after the SQL statement runs.",
                  "type": "boolean"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "region": {
              "description": "Region where this resource will be managed. Defaults to the Region set in the provider configuration.\nRegion is the region you'd like your resource to be created in.",
              "type": "string"
            },
            "retryPolicy": {
              "description": "Parameters used when you are providing retry policies. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "maximumEventAgeInSeconds": {
                  "description": "The age in seconds to continue to make retry attempts.",
                  "type": "number"
                },
                "maximumRetryAttempts": {
                  "description": "maximum number of retry attempts to make before the request fails",
                  "type": "number"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "roleArn": {
              "description": "The Amazon Resource Name (ARN) of the IAM role to be used for this target when the rule is triggered. Required if ecs_target is used or target in arn is EC2 instance, Kinesis data stream, Step Functions state machine, or Event Bus in different account or region.",
              "type": "string"
            },
            "rule": {
              "description": "The name of the rule you want to add targets to.",
              "type": "string"
            },
            "runCommandTargets": {
              "description": "Parameters used when you are using the rule to invoke Amazon EC2 Run Command. Documented below. A maximum of 5 are allowed.",
              "items": {
                "properties": {
                  "key": {
                    "description": "Can be either tag:tag-key or InstanceIds.",
                    "type": "string"
                  },
                  "values": {
                    "description": "If Key is tag:tag-key, Values is a list of tag values. If Key is InstanceIds, Values is a list of Amazon EC2 instance IDs.",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "sagemakerPipelineTarget": {
              "description": "Parameters used when you are using the rule to invoke an Amazon SageMaker AI Pipeline. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "pipelineParameterList": {
                  "description": "List of Parameter names and values for SageMaker AI Model Building Pipeline execution.",
                  "items": {
                    "properties": {
                      "name": {
                        "description": "Name of parameter to start execution of a SageMaker AI Model Building Pipeline.",
                        "type": "string"
                      },
                      "value": {
                        "description": "Value of parameter to start execution of a SageMaker AI Model Building Pipeline.",
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "sqsTarget": {
              "description": "Parameters used when you are using the rule to invoke an Amazon SQS Queue. Documented below. A maximum of 1 are allowed.",
              "properties": {
                "messageGroupId": {
                  "description": "The FIFO message group ID to use as the target.",
                  "type": "string"
                }
              },
              "type": "object",
              "additionalProperties": false
            },
            "targetId": {
              "description": "The unique target assignment ID. If missing, will generate a random, unique id.",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "conditions": {
          "description": "Conditions of the resource.",
          "items": {
            "description": "A Condition that may apply to a resource.",
            "properties": {
              "lastTransitionTime": {
                "description": "LastTransitionTime is the last time this condition transitioned from one\nstatus to another.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "A Message containing details about this condition's last transition from\none status to another, if any.",
                "type": "string"
              },
              "observedGeneration": {
                "description": "ObservedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance.",
                "format": "int64",
                "type": "integer"
              },
              "reason": {
                "description": "A Reason for this condition's last transition from one status to another.",
                "type": "string"
              },
              "status": {
                "description": "Status of this condition; is it currently True, False, or Unknown?",
                "type": "string"
              },
              "type": {
                "description": "Type of this condition. At most one of each condition type may apply to\na resource at any point in time.",
                "type": "string"
              }
            },
            "required": [
              "lastTransitionTime",
              "reason",
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array",
          "x-kubernetes-list-map-keys": [
            "type"
          ],
          "x-kubernetes-list-type": "map"
        },
        "observedGeneration": {
          "description": "ObservedGeneration is the latest metadata.generation\nwhich resulted in either a ready state, or stalled due to error\nit can not recover from without human intervention.",
          "format": "int64",
          "type": "integer"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "required": [
    "spec"
  ],
  "type": "object"
}
