{
  "name": "defang-aws",
  "displayName": "Defang AWS",
  "description": "Deploy Compose projects to AWS with Pulumi. Part of the Defang multi-cloud provider family — also available for GCP (defang-gcp) and Azure (defang-azure).",
  "keywords": [
    "category/cloud",
    "category/infrastructure",
    "kind/native",
    "defang",
    "docker",
    "cloud",
    "aws",
    "ecs",
    "fargate"
  ],
  "homepage": "https://github.com/DefangLabs/pulumi-defang",
  "license": "Apache-2.0",
  "repository": "https://github.com/DefangLabs/pulumi-defang",
  "logoUrl": "https://raw.githubusercontent.com/DefangLabs/pulumi-defang/refs/heads/main/docs/logo.png",
  "pluginDownloadURL": "github://api.github.com/DefangLabs/pulumi-defang",
  "publisher": "Defang",
  "language": {
    "csharp": {
      "rootNamespace": "DefangLabs"
    },
    "nodejs": {
      "packageName": "@defang-io/pulumi-defang-aws"
    },
    "python": {
      "pyproject": {}
    }
  },
  "config": {},
  "types": {
    "defang-aws:aws:SharedInfra": {
      "properties": {
        "clusterArn": {
          "type": "string"
        },
        "executionRoleArn": {
          "type": "string"
        },
        "logGroupName": {
          "type": "string"
        },
        "privateSgID": {
          "type": "string"
        },
        "privateSubnetIDs": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "privateZoneID": {
          "type": "string"
        },
        "publicSubnetIDs": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "vpcID": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "vpcID"
      ]
    },
    "defang-aws:compose:BuildConfig": {
      "properties": {
        "args": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "cacheFrom": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "cacheTo": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "context": {
          "type": "string"
        },
        "dockerfile": {
          "type": "string"
        },
        "platforms": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "shmSize": {
          "type": "string"
        },
        "target": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "context"
      ]
    },
    "defang-aws:compose:DeployConfig": {
      "properties": {
        "replicas": {
          "type": "integer"
        },
        "resources": {
          "$ref": "#/types/defang-aws:compose:Resources"
        }
      },
      "type": "object"
    },
    "defang-aws:compose:HealthCheckConfig": {
      "properties": {
        "intervalSeconds": {
          "type": "integer"
        },
        "retries": {
          "type": "integer"
        },
        "startPeriodSeconds": {
          "type": "integer"
        },
        "test": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "timeoutSeconds": {
          "type": "integer"
        }
      },
      "type": "object"
    },
    "defang-aws:compose:LlmConfig": {
      "type": "object"
    },
    "defang-aws:compose:NetworkConfig": {
      "properties": {
        "internal": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "defang-aws:compose:PostgresConfig": {
      "properties": {
        "allowDowntime": {
          "type": "boolean"
        },
        "fromSnapshot": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "defang-aws:compose:RedisConfig": {
      "properties": {
        "allowDowntime": {
          "type": "boolean"
        },
        "fromSnapshot": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "defang-aws:compose:ResourceConfig": {
      "properties": {
        "cpus": {
          "type": "number"
        },
        "memory": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "defang-aws:compose:Resources": {
      "properties": {
        "reservations": {
          "$ref": "#/types/defang-aws:compose:ResourceConfig"
        }
      },
      "type": "object"
    },
    "defang-aws:compose:ServiceConfig": {
      "properties": {
        "autoscaling": {
          "type": "boolean"
        },
        "build": {
          "$ref": "#/types/defang-aws:compose:BuildConfig"
        },
        "command": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "containerName": {
          "type": "string"
        },
        "dependsOn": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/types/defang-aws:compose:ServiceDependency"
          }
        },
        "deploy": {
          "$ref": "#/types/defang-aws:compose:DeployConfig"
        },
        "domainName": {
          "type": "string"
        },
        "entrypoint": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "environment": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "healthCheck": {
          "$ref": "#/types/defang-aws:compose:HealthCheckConfig"
        },
        "image": {
          "type": "string"
        },
        "llm": {
          "$ref": "#/types/defang-aws:compose:LlmConfig"
        },
        "networkMode": {
          "type": "string"
        },
        "networks": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/types/defang-aws:compose:ServiceNetworkConfig"
          }
        },
        "platform": {
          "type": "string"
        },
        "policies": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "ports": {
          "type": "array",
          "items": {
            "$ref": "#/types/defang-aws:compose:ServicePortConfig"
          }
        },
        "postgres": {
          "$ref": "#/types/defang-aws:compose:PostgresConfig"
        },
        "redis": {
          "$ref": "#/types/defang-aws:compose:RedisConfig"
        },
        "restart": {
          "type": "string"
        },
        "stopGracePeriod": {
          "type": "string"
        },
        "volumes": {
          "type": "array",
          "items": {
            "$ref": "#/types/defang-aws:compose:ServiceVolumeConfig"
          }
        },
        "volumesFrom": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "workingDir": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "defang-aws:compose:ServiceDependency": {
      "properties": {
        "condition": {
          "type": "string"
        },
        "required": {
          "type": "boolean"
        }
      },
      "type": "object"
    },
    "defang-aws:compose:ServiceNetworkConfig": {
      "properties": {
        "aliases": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "type": "object"
    },
    "defang-aws:compose:ServicePortConfig": {
      "properties": {
        "appProtocol": {
          "type": "string"
        },
        "listener": {
          "type": "string"
        },
        "mode": {
          "type": "string"
        },
        "protocol": {
          "type": "string"
        },
        "target": {
          "type": "integer"
        }
      },
      "type": "object",
      "required": [
        "target"
      ]
    },
    "defang-aws:compose:ServiceVolumeConfig": {
      "properties": {
        "readOnly": {
          "type": "boolean"
        },
        "source": {
          "type": "string"
        },
        "target": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "source",
        "target"
      ]
    },
    "defang-aws:index:AWSConfig": {
      "properties": {
        "albCertificateArn": {
          "type": "string"
        },
        "dnsRoleArn": {
          "type": "string"
        },
        "privateSubnetIDs": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "projectDomain": {
          "type": "string"
        },
        "publicSubnetIDs": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "publicZoneId": {
          "type": "string"
        },
        "vpcID": {
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "provider": {},
  "resources": {
    "defang-aws:index:Build": {
      "properties": {
        "buildId": {
          "type": "string"
        },
        "destination": {
          "type": "string"
        },
        "image": {
          "type": "string"
        },
        "maxWaitTime": {
          "type": "integer"
        },
        "projectName": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "triggers": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "projectName",
        "buildId",
        "image"
      ],
      "inputProperties": {
        "destination": {
          "type": "string"
        },
        "maxWaitTime": {
          "type": "integer"
        },
        "projectName": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "triggers": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "requiredInputs": [
        "projectName"
      ]
    },
    "defang-aws:index:Postgres": {
      "properties": {
        "endpoint": {
          "type": "string"
        },
        "instanceIdentifier": {
          "type": "string"
        }
      },
      "required": [
        "endpoint",
        "instanceIdentifier"
      ],
      "inputProperties": {
        "aws": {
          "$ref": "#/types/defang-aws:aws:SharedInfra"
        },
        "deploy": {
          "$ref": "#/types/defang-aws:compose:DeployConfig"
        },
        "environment": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "image": {
          "type": "string",
          "plain": true
        },
        "postgres": {
          "$ref": "#/types/defang-aws:compose:PostgresConfig"
        },
        "projectName": {
          "type": "string",
          "plain": true
        }
      },
      "requiredInputs": [
        "projectName"
      ],
      "isComponent": true
    },
    "defang-aws:index:Project": {
      "properties": {
        "clusterName": {
          "type": "string"
        },
        "endpoints": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "plain": true
          }
        },
        "loadBalancerArn": {
          "type": "string"
        },
        "loadBalancerDns": {
          "type": "string"
        },
        "logGroupName": {
          "type": "string"
        },
        "serviceNames": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "plain": true
          }
        },
        "taskRoleArns": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "plain": true
          }
        }
      },
      "required": [
        "endpoints",
        "clusterName",
        "logGroupName",
        "serviceNames",
        "taskRoleArns"
      ],
      "inputProperties": {
        "aws": {
          "$ref": "#/types/defang-aws:index:AWSConfig"
        },
        "etag": {
          "type": "string",
          "plain": true
        },
        "networks": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/types/defang-aws:compose:NetworkConfig"
          }
        },
        "services": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/types/defang-aws:compose:ServiceConfig"
          }
        },
        "waitForSteadyState": {
          "type": "boolean",
          "plain": true
        }
      },
      "requiredInputs": [
        "services"
      ],
      "isComponent": true
    },
    "defang-aws:index:Redis": {
      "properties": {
        "endpoint": {
          "type": "string"
        }
      },
      "required": [
        "endpoint"
      ],
      "inputProperties": {
        "aws": {
          "$ref": "#/types/defang-aws:aws:SharedInfra"
        },
        "deploy": {
          "$ref": "#/types/defang-aws:compose:DeployConfig"
        },
        "environment": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "image": {
          "type": "string",
          "plain": true
        },
        "ports": {
          "type": "array",
          "items": {
            "$ref": "#/types/defang-aws:compose:ServicePortConfig"
          }
        },
        "projectName": {
          "type": "string",
          "plain": true
        },
        "redis": {
          "$ref": "#/types/defang-aws:compose:RedisConfig"
        }
      },
      "requiredInputs": [
        "projectName"
      ],
      "isComponent": true
    },
    "defang-aws:index:Service": {
      "properties": {
        "clusterName": {
          "type": "string"
        },
        "endpoint": {
          "type": "string"
        },
        "serviceName": {
          "type": "string"
        },
        "taskRoleArn": {
          "type": "string"
        }
      },
      "required": [
        "endpoint",
        "serviceName",
        "clusterName",
        "taskRoleArn"
      ],
      "inputProperties": {
        "autoscaling": {
          "type": "boolean",
          "plain": true
        },
        "aws": {
          "$ref": "#/types/defang-aws:aws:SharedInfra"
        },
        "command": {
          "type": "array",
          "items": {
            "type": "string",
            "plain": true
          }
        },
        "containerName": {
          "type": "string",
          "plain": true
        },
        "dependsOn": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/types/defang-aws:compose:ServiceDependency"
          }
        },
        "deploy": {
          "$ref": "#/types/defang-aws:compose:DeployConfig"
        },
        "domainName": {
          "type": "string",
          "plain": true
        },
        "entrypoint": {
          "type": "array",
          "items": {
            "type": "string",
            "plain": true
          }
        },
        "environment": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "plain": true
          }
        },
        "healthCheck": {
          "$ref": "#/types/defang-aws:compose:HealthCheckConfig"
        },
        "image": {
          "type": "string"
        },
        "platform": {
          "type": "string",
          "plain": true
        },
        "policies": {
          "type": "array",
          "items": {
            "type": "string",
            "plain": true
          }
        },
        "ports": {
          "type": "array",
          "items": {
            "$ref": "#/types/defang-aws:compose:ServicePortConfig"
          }
        },
        "projectName": {
          "type": "string",
          "plain": true
        },
        "secrets": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "plain": true
          }
        },
        "securityGroupIds": {
          "type": "array",
          "items": {
            "type": "string",
            "plain": true
          }
        },
        "sidecars": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/types/defang-aws:compose:ServiceConfig"
          }
        },
        "stopGracePeriod": {
          "type": "string",
          "plain": true
        },
        "taskRoleArn": {
          "type": "string"
        },
        "triggers": {
          "type": "object",
          "additionalProperties": {
            "type": "string",
            "plain": true
          }
        },
        "volumes": {
          "type": "array",
          "items": {
            "$ref": "#/types/defang-aws:compose:ServiceVolumeConfig"
          }
        },
        "volumesFrom": {
          "type": "array",
          "items": {
            "type": "string",
            "plain": true
          }
        },
        "waitForSteadyState": {
          "type": "boolean",
          "plain": true
        },
        "workingDir": {
          "type": "string",
          "plain": true
        }
      },
      "requiredInputs": [
        "image",
        "projectName"
      ],
      "isComponent": true
    }
  }
}
