{
  "name": "nuage",
  "version": "0.1.1",
  "keywords": [
    "pulumi",
    "aws",
    "nuage",
    "kind/component",
    "category/cloud"
  ],
  "license": "Apache-2.0",
  "pluginDownloadURL": "github://api.github.com/nuage-studio/pulumi-nuage",
  "meta": {
    "moduleFormat": "(.*)"
  },
  "language": {
    "csharp": {
      "packageReferences": {
        "Pulumi": "3.*",
        "Pulumi.Aws": "5.*",
        "Pulumi.Docker": "4.*",
        "Pulumi.Command": "4.6.0-alpha.*"
      }
    },
    "go": {
      "generateResourceContainerTypes": true,
      "importBasePath": "github.com/pulumi/pulumi-nuage/sdk/go/nuage",
      "respectSchemaVersion": true
    },
    "nodejs": {
      "dependencies": {
        "@pulumi/aws": "^5.0.0",
        "@pulumi/docker": "^4.0.0",
        "@pulumi/command": "^0.7.0"
      },
      "devDependencies": {
        "@types/node": "^17.0.21",
        "typescript": "^3.7.0"
      },
      "respectSchemaVersion": true
    },
    "python": {
      "requires": {
        "pulumi": ">=3.0.0,<4.0.0",
        "pulumi-aws": ">=5.0.0,<6.0.0",
        "pulumi_docker": ">=4.0.0",
        "pulumi-random": ">4.8.0",
        "pulumi-command": ">=0.7.0"
      },
      "respectSchemaVersion": true
    }
  },
  "config": {},
  "types": {
    "nuage:aws:ArchitectureType": {
      "description": "Architecture, either 'X86_64' or 'arm64'.",
      "type": "string",
      "enum": [
        {
          "description": "X86_64 architecture.",
          "value": "X86_64"
        },
        {
          "description": "ARM64 architecture.",
          "value": "ARM64"
        }
      ]
    },
    "nuage:aws:BastionConfig": {
      "properties": {
        "enabled": {
          "type": "boolean",
          "description": "Enable data api. Defaults to `false`"
        },
        "subnetId": {
          "type": "string",
          "description": "Public subnet id for the bastion host. You may use`awsx.ec2.Vpc.public_subnet_ids[0]`"
        }
      },
      "type": "object",
      "required": [
        "enabled"
      ]
    },
    "nuage:aws:FunctionSchedule": {
      "properties": {
        "scheduleExpression": {
          "type": "string",
          "description": "Expression for creating a cloudwatch event rule."
        },
        "scheduleInput": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Input for cloudwatch event target."
        }
      },
      "type": "object",
      "required": [
        "scheduleExpression"
      ]
    },
    "nuage:aws:FunctionUrl": {
      "properties": {
        "corsConfiguration": {
          "$ref": "/aws/v5.30.0/schema.json#/types/aws:lambda%2FFunctionUrlCors:FunctionUrlCors",
          "description": "CORS Configuration."
        },
        "urlEnabled": {
          "type": "boolean",
          "description": "Use Lambda URL. Defaults to `false`"
        }
      },
      "type": "object"
    }
  },
  "provider": {
    "type": "object"
  },
  "resources": {
    "nuage:aws:Bastion": {
      "description": "Pulumi Nuage's Bastion resource enables the creation of a bastion host through the submission of provided VPC information. The resource creates a private key, security group, and an AWS EC2 `t4g.nano` instance that can serve as the bastion host. This allows secure connectivity to sensitive resources within the VPC, while maintaining isolation from the public internet. You can leverage the outputted private key to establish a connection to the bastion host.\r\n\r\n{{% examples %}}\r\n## Example Usage\r\n{{% example %}}\r\n### Basic Example\r\n\r\n```python\r\nimport pulumi_nuage as nuage\r\n\r\ndb = nuage.aws.Bastion(\r\n    \"foo\",\r\n    name=\"bastion-host\",\r\n    vpc_id=vpc.id,\r\n    subnet_id=vpc.public_subnet_ids[0]\r\n)\r\n```\r\n{{% /example %}}",
      "properties": {
        "private_key_pem": {
          "type": "string"
        },
        "public_ip": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "private_key_pem",
        "public_ip"
      ],
      "inputProperties": {
        "sshPort": {
          "type": "number",
          "description": "Ssh port for bastion host. Defaults to 22"
        },
        "subnetId": {
          "type": "string",
          "description": "Public subnet id of the Vpc."
        },
        "vpcId": {
          "type": "string",
          "description": "Vpc id."
        }
      },
      "requiredInputs": [
        "subnetId",
        "vpcId"
      ],
      "isComponent": true
    },
    "nuage:aws:ContainerFunction": {
      "description": "Provides an AWS Lambda Function with additional necesary resources. It bundles several resources such as `Lambda Functions`, `Function URLs`, `CloudWatch keep-warm rules`, `Log Group with a Retention Policy`, `Role to run Lambda and Write Logs`. It also has a feature for schedule (cron) definitions and automated X-Ray tracing.\r\n\r\n{{% examples %}}\r\n## Example Usage\r\n{{% example %}}\r\n### Basic Example\r\n\r\n```python\r\nimport pulumi_nuage as nuage\r\n\r\nrepository = nuage.aws.Repository(\r\n    \"foo\",\r\n    name=\"repository\",\r\n    expire_in_days=30,\r\n)\r\n\r\nimage = nuage.aws.Image(\r\n    \"foo\",\r\n    build_args=nuage.aws.DockerBuildArgs(\r\n        dockerfile=\"../api/Dockerfile\",\r\n        context=\"../\"\r\n    ),\r\n    repository_url=repository.url,\r\n)\r\n\r\ncontainer_function = nuage.aws.ContainerFunction(\"foo\",\r\n    name=\"lambda-function\",\r\n    description=\"Nuage AWS ContainerFunction resource.\",\r\n    image_uri=image.uri,\r\n    architecture=\"X86_64\",\r\n    memory_size=512,\r\n    timeout=30,\r\n    environment={\"bar\":\"baz\"},\r\n    keep_warm=True,\r\n    url=True,\r\n    log_retention_in_days=90,\r\n    schedule_config=nuage.aws.FunctionScheduleArgs(\r\n        schedule_expression=\"rate(5 minutes)\"\r\n    ),\r\n)\r\n```\r\n{{% /example %}}\r\n\r\n{{% example %}}\r\n### Custom Policy Document Example\r\n\r\n```python\r\nimport pulumi_nuage as nuage\r\n\r\npolicy_doc = aws.iam.get_policy_document(\r\n    version=\"2012-10-17\",\r\n    statements=[\r\n        aws.iam.GetPolicyDocumentStatementArgs(\r\n            effect=\"Allow\",\r\n            actions=[\"s3:*\"],\r\n            resources=[\r\n                bucket.arn\r\n            ],\r\n        ),\r\n    ],\r\n).json\r\n\r\ncontainer_function = nuage.aws.ContainerFunction(\"foo\",\r\n    name=\"lambda-function\",\r\n    description=\"Nuage AWS ContainerFunction resource.\",\r\n    image_uri=image.uri,\r\n    architecture=\"X86_64\",\r\n    memory_size=512,\r\n    timeout=30,\r\n    environment={\"bar\":\"baz\"},\r\n    keep_warm=True,\r\n    url=True,\r\n    log_retention_in_days=90,\r\n    schedule_config=nuage.aws.FunctionScheduleArgs(\r\n        schedule_expression=\"rate(5 minutes)\"\r\n    ),\r\n    policy_document=policy_doc\r\n)\r\n```\r\n{{% /example %}}",
      "properties": {
        "arn": {
          "type": "string",
          "description": "ARN (Amazon Resource Name) of the Lambda Function."
        },
        "name": {
          "type": "string",
          "description": "Name of the Lambda Function."
        },
        "url": {
          "type": "string",
          "description": "Lambda Function URL (Only valid if `urlEnabled` is used)."
        }
      },
      "type": "object",
      "required": [
        "arn",
        "name"
      ],
      "inputProperties": {
        "architecture": {
          "type": "string",
          "description": "Architecture, either `X86_64` or `ARM64`. Defaults to `X86_64`"
        },
        "description": {
          "type": "string",
          "description": "Description of the function."
        },
        "environment": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Environment Variables"
        },
        "imageUri": {
          "type": "string",
          "description": "Image uri of the docker image."
        },
        "keepWarm": {
          "type": "boolean",
          "description": "Keep warm by refreshing the lambda function every 5 minutes. Defaults to `false`"
        },
        "logRetentionInDays": {
          "type": "integer",
          "description": "Number of days for log retention to pass in cloudwatch log group. Defaults to `90`"
        },
        "memorySize": {
          "type": "integer",
          "description": "Amount of memory in MB your Lambda Function can use at runtime. Defaults to `512`."
        },
        "name": {
          "type": "string",
          "description": "Name of the resource."
        },
        "namePrefix": {
          "type": "string",
          "description": "Name prefix as an alternative to name and adds random suffix at the end."
        },
        "policyDocument": {
          "type": "string",
          "description": "Policy Document for lambda."
        },
        "scheduleConfig": {
          "$ref": "#/types/nuage:aws:FunctionSchedule",
          "description": "Configure the function's cloudwatch event rule schedule."
        },
        "timeout": {
          "type": "integer",
          "description": "Amount of time your Lambda Function has to run in seconds. Defaults to `3`"
        },
        "urlConfig": {
          "$ref": "#/types/nuage:aws:FunctionUrl",
          "description": "Configure lambda function url."
        }
      },
      "requiredInputs": [
        "imageUri"
      ],
      "isComponent": true
    },
    "nuage:aws:Image": {
      "description": "Provides a resource to manage build and deployment of Docker builds. It automatically builds the Docker image and pushes it to the specified repository.\r\n\r\n{{% examples %}}\r\n## Example Usage\r\n{{% example %}}\r\n### Basic Example\r\n\r\n```python\r\nimport pulumi_nuage as nuage\r\n\r\nrepository = nuage.aws.Repository(\r\n    \"foo\",\r\n    name=\"repository\",\r\n    expire_in_days=30,\r\n)\r\n\r\nimage = nuage.aws.Image(\r\n    \"foo\",\r\n    dockerfile=\"../api/Dockerfile\",\r\n    context=\"../\",\r\n    repository_url=repository.url,\r\n)\r\n```\r\n{{% /example %}}",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the docker image."
        },
        "uri": {
          "type": "string",
          "description": "Image uri of the docker image."
        }
      },
      "type": "object",
      "required": [
        "name",
        "uri"
      ],
      "inputProperties": {
        "architecture": {
          "type": "string",
          "description": "Architecture, either `X86_64` or `ARM64`. Defaults to `X86_64`"
        },
        "context": {
          "type": "string",
          "description": "The path to the build context to use."
        },
        "dockerfile": {
          "type": "string",
          "description": "The path to the Dockerfile to use."
        },
        "repositoryUrl": {
          "type": "string",
          "description": "Url of the repository."
        },
        "target": {
          "type": "string",
          "description": "The target of the Dockerfile to build"
        }
      },
      "requiredInputs": [
        "dockerfile",
        "repositoryUrl"
      ],
      "isComponent": true
    },
    "nuage:aws:Repository": {
      "description": "Creates ECR Repository with a lifecycle policy. `url` output of this component can be used within container function to push your images.\r\n\r\n{{% examples %}}\r\n## Example Usage\r\n{{% example %}}\r\n### Basic Example\r\n\r\n```python\r\nimport pulumi_nuage as nuage\r\n\r\nrepository = nuage.aws.Repository(\r\n    \"foo\",\r\n    name=\"repository\",\r\n    expire_in_days=30,\r\n)\r\n```\r\n{{% /example %}}",
      "properties": {
        "arn": {
          "type": "string",
          "description": "ARN (Amazon Resource Name) of the repository"
        },
        "id": {
          "type": "string",
          "description": "Id of the repository"
        },
        "name": {
          "type": "string",
          "description": "Name of the repository"
        },
        "registry_id": {
          "type": "string",
          "description": "Registry id of the repository"
        },
        "url": {
          "type": "string",
          "description": "URL of the repository"
        }
      },
      "type": "object",
      "required": [
        "arn",
        "id",
        "name",
        "registry_id",
        "url"
      ],
      "inputProperties": {
        "expireInDays": {
          "type": "integer",
          "description": "Number of days for expiring images using LifecyclePolicy."
        },
        "name": {
          "type": "string",
          "description": "Name of the resource."
        },
        "namePrefix": {
          "type": "string",
          "description": "Name prefix as an alternative to name and adds random suffix at the end."
        }
      },
      "isComponent": true
    },
    "nuage:aws:ServerlessDatabase": {
      "description": "The ServerlessDatabase component is a convenient and efficient solution for creating serverless databases using Amazon RDS Aurora. It automatically creates components such as subnet group, security group, security group rules, and RDS cluster, and securely manages the DB credentials. With support for both MySQL and PostgreSQL, it provides a fully configured serverless database resource for your serverless database needs.\r\n\r\n{{% examples %}}\r\n## Example Usage\r\n{{% example %}}\r\n### Basic Example\r\n\r\n```python\r\nimport pulumi_nuage as nuage\r\nimport pulumi_awsx as awsx\r\n\r\n\r\ndb = nuage.aws.ServerlessDatabase(\r\n    \"foo\",\r\n    name=\"serverless-db\",\r\n    vpc_id=vpc.id,\r\n    subnet_ids=vpc.private_subnet_ids,\r\n    database_type=\"mysql\",\r\n    database_name=\"bar\",\r\n    master_username=\"root\",\r\n    ip_whitelist=[\"0.0.0.0/0\"],\r\n    skip_final_snapshot=True,\r\n    bastion=nuage.aws.BastionConfigArgs(\r\n        enabled=True,\r\n        subnet_id=vpc.public_subnet_ids[0]\r\n    ),    \r\n)\r\n```\r\n{{% /example %}}",
      "properties": {
        "bastion_ip": {
          "type": "string",
          "description": "IP address of the bastion host. Exists only if bastion is enabled"
        },
        "bastion_private_key": {
          "type": "string",
          "description": "Private key to connect bastion host over SSH. Exists only if bastion is enabled."
        },
        "cluster_arn": {
          "type": "string",
          "description": "ARN (Amazon Resource Name) of the RDS cluster."
        },
        "database_name": {
          "type": "string",
          "description": "Name of the database"
        },
        "host": {
          "type": "string",
          "description": "Host address of DB server"
        },
        "password": {
          "type": "string",
          "description": "Password of DB credentials"
        },
        "port": {
          "type": "number",
          "description": "Port number of DB"
        },
        "uri": {
          "type": "string",
          "description": "Database URI for connection."
        },
        "user": {
          "type": "string",
          "description": "Username of DB credentials."
        }
      },
      "type": "object",
      "required": [
        "cluster_arn",
        "database_name",
        "host",
        "port",
        "uri",
        "user"
      ],
      "inputProperties": {
        "bastion": {
          "$ref": "#/types/nuage:aws:BastionConfig",
          "description": "Configure the bastion host for connecting the db."
        },
        "databaseName": {
          "type": "string",
          "description": "Name of the database."
        },
        "databaseType": {
          "type": "string",
          "description": "Database type. `mysql` or `postgresql`"
        },
        "ipWhitelist": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of whitelisted IP addresses. If not specified, it will be public 0.0.0.0/0"
        },
        "masterUserName": {
          "type": "string",
          "description": "Master user name of the db."
        },
        "skipFinalSnapshot": {
          "type": "boolean",
          "description": "Determines whether a final DB snapshot is created before the DB instance is deleted. Defaults to `false`"
        },
        "subnetIds": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of subnet ip addresses. If you want your database will be accessible from the internet, it should be public (`vpc.public_subnet_ids`). Otherwise, you can use private subnets (`vpc.private_subnet_ids`)."
        },
        "vpcId": {
          "type": "string",
          "description": "Vpc id."
        }
      },
      "requiredInputs": [
        "databaseName",
        "databaseType",
        "masterUserName",
        "subnetIds",
        "vpcId"
      ],
      "isComponent": true
    }
  }
}
