{
  "name": "civo",
  "version": "1.1.7",
  "description": "A Pulumi provider dynamically bridged from civo.",
  "attribution": "This Pulumi package is based on the [`civo` Terraform Provider](https://github.com/civo/terraform-provider-civo).",
  "repository": "https://github.com/civo/terraform-provider-civo",
  "publisher": "civo",
  "meta": {
    "moduleFormat": "(.*)(?:/[^/]*)"
  },
  "language": {
    "csharp": {
      "compatibility": "tfbridge20",
      "liftSingleValueMethodReturns": true,
      "respectSchemaVersion": true
    },
    "go": {
      "generateExtraInputTypes": true,
      "importBasePath": "github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo",
      "liftSingleValueMethodReturns": true,
      "respectSchemaVersion": true,
      "rootPackageName": "civo"
    },
    "java": {
      "basePackage": "",
      "buildFiles": "",
      "gradleNexusPublishPluginVersion": "",
      "gradleTest": ""
    },
    "nodejs": {
      "compatibility": "tfbridge20",
      "disableUnionOutputTypes": true,
      "liftSingleValueMethodReturns": true,
      "packageDescription": "A Pulumi provider dynamically bridged from civo.",
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/civo/terraform-provider-civo)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> please consult the source [`terraform-provider-civo` repo](https://github.com/civo/terraform-provider-civo/issues).",
      "respectSchemaVersion": true
    },
    "python": {
      "compatibility": "tfbridge20",
      "pyproject": {
        "enabled": true
      },
      "readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/civo/terraform-provider-civo)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> please consult the source [`terraform-provider-civo` repo](https://github.com/civo/terraform-provider-civo/issues).",
      "respectSchemaVersion": true
    }
  },
  "config": {
    "variables": {
      "apiEndpoint": {
        "type": "string",
        "description": "The Base URL to use for CIVO API.\n"
      },
      "credentialsFile": {
        "type": "string",
        "description": "Path to the Civo credentials file. Can be specified using CIVO_CREDENTIAL_FILE environment variable.\n"
      },
      "region": {
        "type": "string",
        "description": "If region is not set, then no region will be used and them you need expensify in every resource even if you expensify\nhere you can overwrite in a resource.\n"
      },
      "token": {
        "type": "string",
        "description": "This is the Civo API token. Alternatively, this can also be specified using `CIVO_TOKEN` environment variable.\n"
      }
    }
  },
  "types": {
    "civo:index/DatabaseTimeouts:DatabaseTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "civo:index/FirewallEgressRule:FirewallEgressRule": {
      "properties": {
        "action": {
          "type": "string",
          "description": "The action of the rule can be allow or deny. When we set the `action = 'allow'`, this is going to add a rule to allow traffic. Similarly, setting `action = 'deny'` will deny the traffic.\n"
        },
        "cidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The CIDR notation of the other end to affect, or a valid network CIDR (e.g. 0.0.0.0/0 to open for everyone or 1.2.3.4/32 to open just for a specific IP address)\n"
        },
        "id": {
          "type": "string",
          "description": "(String) The ID of this resource.\n"
        },
        "label": {
          "type": "string",
          "description": "A string that will be the displayed name/reference for this rule\n"
        },
        "portRange": {
          "type": "string",
          "description": "The port or port range to open, can be a single port or a range separated by a dash (`-`), e.g. `80` or `80-443`\n"
        },
        "protocol": {
          "type": "string",
          "description": "The protocol choice from `tcp`, `udp` or `icmp` (the default if unspecified is `tcp`)\n"
        }
      },
      "type": "object",
      "required": [
        "action",
        "cidrs"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "action",
            "cidrs",
            "id"
          ]
        }
      }
    },
    "civo:index/FirewallIngressRule:FirewallIngressRule": {
      "properties": {
        "action": {
          "type": "string",
          "description": "The action of the rule can be allow or deny. When we set the `action = 'allow'`, this is going to add a rule to allow traffic. Similarly, setting `action = 'deny'` will deny the traffic.\n"
        },
        "cidrs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The CIDR notation of the other end to affect, or a valid network CIDR (e.g. 0.0.0.0/0 to open for everyone or 1.2.3.4/32 to open just for a specific IP address)\n"
        },
        "id": {
          "type": "string",
          "description": "(String) The ID of this resource.\n"
        },
        "label": {
          "type": "string",
          "description": "A string that will be the displayed name/reference for this rule\n"
        },
        "portRange": {
          "type": "string",
          "description": "The port or port range to open, can be a single port or a range separated by a dash (`-`), e.g. `80` or `80-443`\n"
        },
        "protocol": {
          "type": "string",
          "description": "The protocol choice from `tcp`, `udp` or `icmp` (the default if unspecified is `tcp`)\n"
        }
      },
      "type": "object",
      "required": [
        "action",
        "cidrs"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "action",
            "cidrs",
            "id"
          ]
        }
      }
    },
    "civo:index/FirewallTimeouts:FirewallTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "civo:index/InstanceReservedIpAssignmentTimeouts:InstanceReservedIpAssignmentTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "civo:index/InstanceTimeouts:InstanceTimeouts": {
      "properties": {
        "create": {
          "type": "string",
          "description": "sets timeout for cluster creation - default 30 minutes\n"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "civo:index/KubernetesClusterInstalledApplication:KubernetesClusterInstalledApplication": {
      "properties": {
        "application": {
          "type": "string",
          "description": "(String) name of the application\n"
        },
        "category": {
          "type": "string",
          "description": "(String) category of the application\n"
        },
        "installed": {
          "type": "boolean",
          "description": "(Boolean) whether application is installed or not\n"
        },
        "version": {
          "type": "string",
          "description": "(String) version of the application\n"
        }
      },
      "type": "object",
      "required": [
        "application",
        "category",
        "installed",
        "version"
      ]
    },
    "civo:index/KubernetesClusterPools:KubernetesClusterPools": {
      "properties": {
        "instanceNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Instance names in the nodepool\n"
        },
        "label": {
          "type": "string",
          "description": "Node pool label, if you don't provide one, we will generate one for you\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "nodeCount": {
          "type": "number",
          "description": "Number of nodes in the nodepool\n"
        },
        "publicIpNodePool": {
          "type": "boolean",
          "description": "Node pool belongs to the public ip node pool\n"
        },
        "size": {
          "type": "string",
          "description": "Size of the nodes in the nodepool\n"
        },
        "taints": {
          "type": "array",
          "items": {
            "$ref": "#/types/civo:index%2FKubernetesClusterPoolsTaint:KubernetesClusterPoolsTaint"
          },
          "description": "(see below for nested schema)\n\nRead-Only Output:\n"
        }
      },
      "type": "object",
      "required": [
        "nodeCount",
        "size"
      ],
      "language": {
        "nodejs": {
          "requiredOutputs": [
            "instanceNames",
            "label",
            "nodeCount",
            "publicIpNodePool",
            "size"
          ]
        }
      }
    },
    "civo:index/KubernetesClusterPoolsTaint:KubernetesClusterPoolsTaint": {
      "properties": {
        "effect": {
          "type": "string"
        },
        "key": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "effect",
        "key",
        "value"
      ]
    },
    "civo:index/KubernetesClusterTimeouts:KubernetesClusterTimeouts": {
      "properties": {
        "create": {
          "type": "string",
          "description": "sets timeout for cluster creation - default 30 minutes\n"
        },
        "delete": {
          "type": "string",
          "description": "sets timeout for cluster deletion - default 30 minutes\n"
        },
        "update": {
          "type": "string",
          "description": "sets timeout for cluster update - default 30 minutes\n"
        }
      },
      "type": "object"
    },
    "civo:index/KubernetesNodePoolTaint:KubernetesNodePoolTaint": {
      "properties": {
        "effect": {
          "type": "string"
        },
        "key": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "effect",
        "key",
        "value"
      ]
    },
    "civo:index/KubernetesNodePoolTimeouts:KubernetesNodePoolTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "civo:index/NetworkTimeouts:NetworkTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        },
        "delete": {
          "type": "string"
        },
        "update": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "civo:index/ObjectStoreCredentialTimeouts:ObjectStoreCredentialTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "civo:index/ObjectStoreTimeouts:ObjectStoreTimeouts": {
      "properties": {
        "create": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "civo:index/getDatabaseVersionFilter:getDatabaseVersionFilter": {
      "properties": {
        "all": {
          "type": "boolean",
          "description": "Set to `true` to require that a field match all of the `values` instead of just one or more of them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure that all of the `values` are present in the list or set.\n"
        },
        "key": {
          "type": "string",
          "description": "Filter versions by this key. This may be one of `default`, `engine`, `version`.\n"
        },
        "matchBy": {
          "type": "string",
          "description": "One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as substrings to find within the string field.\n"
        },
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Only retrieves `versions` which keys has value that matches one of the values provided here\n"
        }
      },
      "type": "object",
      "required": [
        "key",
        "values"
      ]
    },
    "civo:index/getDatabaseVersionSort:getDatabaseVersionSort": {
      "properties": {
        "direction": {
          "type": "string",
          "description": "The sort direction. This may be either `asc` or `desc`.\n"
        },
        "key": {
          "type": "string",
          "description": "Sort versions by this key. This may be one of `default`, `engine`, `version`.\n"
        }
      },
      "type": "object",
      "required": [
        "key"
      ]
    },
    "civo:index/getDatabaseVersionVersion:getDatabaseVersionVersion": {
      "properties": {
        "default": {
          "type": "boolean"
        },
        "engine": {
          "type": "string"
        },
        "version": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "default",
        "engine",
        "version"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "civo:index/getDiskImageDiskimage:getDiskImageDiskimage": {
      "properties": {
        "id": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "version": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "id",
        "label",
        "name",
        "version"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "civo:index/getDiskImageFilter:getDiskImageFilter": {
      "properties": {
        "all": {
          "type": "boolean",
          "description": "Set to `true` to require that a field match all of the `values` instead of just one or more of them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure that all of the `values` are present in the list or set.\n"
        },
        "key": {
          "type": "string",
          "description": "Filter diskimages by this key. This may be one of `id`, `label`, `name`, `version`.\n"
        },
        "matchBy": {
          "type": "string",
          "description": "One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as substrings to find within the string field.\n"
        },
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Only retrieves `diskimages` which keys has value that matches one of the values provided here\n"
        }
      },
      "type": "object",
      "required": [
        "key",
        "values"
      ]
    },
    "civo:index/getDiskImageSort:getDiskImageSort": {
      "properties": {
        "direction": {
          "type": "string",
          "description": "The sort direction. This may be either `asc` or `desc`.\n"
        },
        "key": {
          "type": "string",
          "description": "Sort diskimages by this key. This may be one of `id`, `label`, `name`, `version`.\n"
        }
      },
      "type": "object",
      "required": [
        "key"
      ]
    },
    "civo:index/getInstancesFilter:getInstancesFilter": {
      "properties": {
        "all": {
          "type": "boolean",
          "description": "Set to `true` to require that a field match all of the `values` instead of just one or more of them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure that all of the `values` are present in the list or set.\n"
        },
        "key": {
          "type": "string",
          "description": "Filter instances by this key. This may be one of `cpu_cores`, `created_at`, `disk_gb`, `firewall_id`, `hostname`, `id`, `initial_password`, `initial_user`, `network_id`, `notes`, `private_ip`, `pseudo_ip`, `public_ip`, `ram_mb`, `region`, `reverse_dns`, `script`, `size`, `sshkey_id`, `status`, `tags`, `template`.\n"
        },
        "matchBy": {
          "type": "string",
          "description": "One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as substrings to find within the string field.\n"
        },
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Only retrieves `instances` which keys has value that matches one of the values provided here\n"
        }
      },
      "type": "object",
      "required": [
        "key",
        "values"
      ]
    },
    "civo:index/getInstancesInstance:getInstancesInstance": {
      "properties": {
        "cpuCores": {
          "type": "number"
        },
        "createdAt": {
          "type": "string"
        },
        "diskGb": {
          "type": "number"
        },
        "firewallId": {
          "type": "string"
        },
        "hostname": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "initialPassword": {
          "type": "string"
        },
        "initialUser": {
          "type": "string"
        },
        "networkId": {
          "type": "string"
        },
        "notes": {
          "type": "string"
        },
        "privateIp": {
          "type": "string"
        },
        "pseudoIp": {
          "type": "string"
        },
        "publicIp": {
          "type": "string"
        },
        "ramMb": {
          "type": "number"
        },
        "region": {
          "type": "string"
        },
        "reverseDns": {
          "type": "string"
        },
        "script": {
          "type": "string"
        },
        "size": {
          "type": "string"
        },
        "sshkeyId": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "template": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "cpuCores",
        "createdAt",
        "diskGb",
        "firewallId",
        "hostname",
        "id",
        "initialPassword",
        "initialUser",
        "networkId",
        "notes",
        "privateIp",
        "pseudoIp",
        "publicIp",
        "ramMb",
        "region",
        "reverseDns",
        "script",
        "size",
        "sshkeyId",
        "status",
        "tags",
        "template"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "civo:index/getInstancesSort:getInstancesSort": {
      "properties": {
        "direction": {
          "type": "string",
          "description": "The sort direction. This may be either `asc` or `desc`.\n"
        },
        "key": {
          "type": "string",
          "description": "Sort instances by this key. This may be one of `cpu_cores`, `created_at`, `disk_gb`, `firewall_id`, `hostname`, `id`, `initial_password`, `initial_user`, `network_id`, `notes`, `private_ip`, `pseudo_ip`, `public_ip`, `ram_mb`, `region`, `reverse_dns`, `script`, `size`, `sshkey_id`, `status`, `template`.\n"
        }
      },
      "type": "object",
      "required": [
        "key"
      ]
    },
    "civo:index/getKubernetesClusterInstalledApplication:getKubernetesClusterInstalledApplication": {
      "properties": {
        "application": {
          "type": "string"
        },
        "category": {
          "type": "string"
        },
        "installed": {
          "type": "boolean"
        },
        "version": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "application",
        "category",
        "installed",
        "version"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "civo:index/getKubernetesClusterPool:getKubernetesClusterPool": {
      "properties": {
        "instanceNames": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "label": {
          "type": "string"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "nodeCount": {
          "type": "number"
        },
        "publicIpNodePool": {
          "type": "boolean"
        },
        "size": {
          "type": "string"
        },
        "taints": {
          "type": "array",
          "items": {
            "$ref": "#/types/civo:index%2FgetKubernetesClusterPoolTaint:getKubernetesClusterPoolTaint"
          }
        }
      },
      "type": "object",
      "required": [
        "instanceNames",
        "label",
        "labels",
        "nodeCount",
        "publicIpNodePool",
        "size",
        "taints"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "civo:index/getKubernetesClusterPoolTaint:getKubernetesClusterPoolTaint": {
      "properties": {
        "effect": {
          "type": "string"
        },
        "key": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "effect",
        "key",
        "value"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "civo:index/getKubernetesVersionFilter:getKubernetesVersionFilter": {
      "properties": {
        "all": {
          "type": "boolean",
          "description": "Set to `true` to require that a field match all of the `values` instead of just one or more of them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure that all of the `values` are present in the list or set.\n"
        },
        "key": {
          "type": "string",
          "description": "Filter versions by this key. This may be one of `default`, `label`, `type`, `version`.\n"
        },
        "matchBy": {
          "type": "string",
          "description": "One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as substrings to find within the string field.\n"
        },
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Only retrieves `versions` which keys has value that matches one of the values provided here\n"
        }
      },
      "type": "object",
      "required": [
        "key",
        "values"
      ]
    },
    "civo:index/getKubernetesVersionSort:getKubernetesVersionSort": {
      "properties": {
        "direction": {
          "type": "string",
          "description": "The sort direction. This may be either `asc` or `desc`.\n"
        },
        "key": {
          "type": "string",
          "description": "Sort versions by this key. This may be one of `default`, `label`, `type`, `version`.\n"
        }
      },
      "type": "object",
      "required": [
        "key"
      ]
    },
    "civo:index/getKubernetesVersionVersion:getKubernetesVersionVersion": {
      "properties": {
        "default": {
          "type": "boolean"
        },
        "label": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "version": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "default",
        "label",
        "type",
        "version"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "civo:index/getLoadbalancerBackend:getLoadbalancerBackend": {
      "properties": {
        "healthCheckPort": {
          "type": "number"
        },
        "ip": {
          "type": "string"
        },
        "protocol": {
          "type": "string"
        },
        "sourcePort": {
          "type": "number"
        },
        "targetPort": {
          "type": "number"
        }
      },
      "type": "object",
      "required": [
        "healthCheckPort",
        "ip",
        "protocol",
        "sourcePort",
        "targetPort"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "civo:index/getRegionFilter:getRegionFilter": {
      "properties": {
        "all": {
          "type": "boolean",
          "description": "Set to `true` to require that a field match all of the `values` instead of just one or more of them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure that all of the `values` are present in the list or set.\n"
        },
        "key": {
          "type": "string",
          "description": "Filter regions by this key. This may be one of `code`, `country`, `default`, `name`.\n"
        },
        "matchBy": {
          "type": "string",
          "description": "One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as substrings to find within the string field.\n"
        },
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Only retrieves `regions` which keys has value that matches one of the values provided here\n"
        }
      },
      "type": "object",
      "required": [
        "key",
        "values"
      ]
    },
    "civo:index/getRegionRegion:getRegionRegion": {
      "properties": {
        "code": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "default": {
          "type": "boolean"
        },
        "name": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "code",
        "country",
        "default",
        "name"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "civo:index/getRegionSort:getRegionSort": {
      "properties": {
        "direction": {
          "type": "string",
          "description": "The sort direction. This may be either `asc` or `desc`.\n"
        },
        "key": {
          "type": "string",
          "description": "Sort regions by this key. This may be one of `code`, `country`, `default`, `name`.\n"
        }
      },
      "type": "object",
      "required": [
        "key"
      ]
    },
    "civo:index/getSizeFilter:getSizeFilter": {
      "properties": {
        "all": {
          "type": "boolean",
          "description": "Set to `true` to require that a field match all of the `values` instead of just one or more of them. This is useful when matching against multi-valued fields such as lists or sets where you want to ensure that all of the `values` are present in the list or set.\n"
        },
        "key": {
          "type": "string",
          "description": "Filter sizes by this key. This may be one of `cpu`, `description`, `disk`, `gpu_type`, `gpu`, `name`, `ram`, `selectable`, `type`.\n"
        },
        "matchBy": {
          "type": "string",
          "description": "One of `exact` (default), `re`, or `substring`. For string-typed fields, specify `re` to match by using the `values` as regular expressions, or specify `substring` to match by treating the `values` as substrings to find within the string field.\n"
        },
        "values": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Only retrieves `sizes` which keys has value that matches one of the values provided here\n"
        }
      },
      "type": "object",
      "required": [
        "key",
        "values"
      ]
    },
    "civo:index/getSizeSize:getSizeSize": {
      "properties": {
        "cpu": {
          "type": "number"
        },
        "description": {
          "type": "string"
        },
        "disk": {
          "type": "number"
        },
        "gpu": {
          "type": "number"
        },
        "gpuType": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "ram": {
          "type": "number"
        },
        "selectable": {
          "type": "boolean"
        },
        "type": {
          "type": "string"
        }
      },
      "type": "object",
      "required": [
        "cpu",
        "description",
        "disk",
        "gpu",
        "gpuType",
        "name",
        "ram",
        "selectable",
        "type"
      ],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      }
    },
    "civo:index/getSizeSort:getSizeSort": {
      "properties": {
        "direction": {
          "type": "string",
          "description": "The sort direction. This may be either `asc` or `desc`.\n"
        },
        "key": {
          "type": "string",
          "description": "Sort sizes by this key. This may be one of `cpu`, `description`, `disk`, `gpu_type`, `gpu`, `name`, `ram`, `selectable`, `type`.\n"
        }
      },
      "type": "object",
      "required": [
        "key"
      ]
    }
  },
  "provider": {
    "description": "The provider type for the civo package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n",
    "properties": {
      "apiEndpoint": {
        "type": "string",
        "description": "The Base URL to use for CIVO API.\n"
      },
      "credentialsFile": {
        "type": "string",
        "description": "Path to the Civo credentials file. Can be specified using CIVO_CREDENTIAL_FILE environment variable.\n"
      },
      "region": {
        "type": "string",
        "description": "If region is not set, then no region will be used and them you need expensify in every resource even if you expensify\nhere you can overwrite in a resource.\n"
      },
      "token": {
        "type": "string",
        "description": "This is the Civo API token. Alternatively, this can also be specified using `CIVO_TOKEN` environment variable.\n"
      }
    },
    "type": "object",
    "inputProperties": {
      "apiEndpoint": {
        "type": "string",
        "description": "The Base URL to use for CIVO API.\n"
      },
      "credentialsFile": {
        "type": "string",
        "description": "Path to the Civo credentials file. Can be specified using CIVO_CREDENTIAL_FILE environment variable.\n"
      },
      "region": {
        "type": "string",
        "description": "If region is not set, then no region will be used and them you need expensify in every resource even if you expensify\nhere you can overwrite in a resource.\n"
      },
      "token": {
        "type": "string",
        "description": "This is the Civo API token. Alternatively, this can also be specified using `CIVO_TOKEN` environment variable.\n"
      }
    }
  },
  "resources": {
    "civo:index/database:Database": {
      "description": "## Example Usage\n\n## Import\n\nusing ID\n\n```sh\n$ pulumi import civo:index/database:Database mydb 29fcd1c4-fb61-44c7-b49c-dc7b98e9927e\n```\n\n",
      "properties": {
        "databaseId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "dnsEndpoint": {
          "type": "string",
          "description": "The DNS endpoint of the database\n"
        },
        "endpoint": {
          "type": "string",
          "description": "The endpoint of the database\n"
        },
        "engine": {
          "type": "string",
          "description": "The engine of the database\n"
        },
        "firewallId": {
          "type": "string",
          "description": "The ID of the firewall to use, from the current list. If left blank or not sent, the default firewall will be used (open to all)\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the database\n"
        },
        "networkId": {
          "type": "string",
          "description": "The id of the associated network\n"
        },
        "nodes": {
          "type": "number",
          "description": "Count of nodes\n"
        },
        "password": {
          "type": "string",
          "description": "The password of the database\n"
        },
        "port": {
          "type": "number",
          "description": "The port of the database\n"
        },
        "privateIpv4": {
          "type": "string",
          "description": "The private IP assigned to the database\n"
        },
        "region": {
          "type": "string",
          "description": "The region where the database will be created.\n"
        },
        "size": {
          "type": "string",
          "description": "Size of the database\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the database\n"
        },
        "timeouts": {
          "$ref": "#/types/civo:index%2FDatabaseTimeouts:DatabaseTimeouts"
        },
        "username": {
          "type": "string",
          "description": "The username of the database\n"
        },
        "version": {
          "type": "string",
          "description": "The version of the database\n"
        }
      },
      "type": "object",
      "required": [
        "databaseId",
        "dnsEndpoint",
        "endpoint",
        "engine",
        "firewallId",
        "name",
        "networkId",
        "nodes",
        "password",
        "port",
        "privateIpv4",
        "region",
        "size",
        "status",
        "username",
        "version"
      ],
      "inputProperties": {
        "databaseId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "engine": {
          "type": "string",
          "description": "The engine of the database\n"
        },
        "firewallId": {
          "type": "string",
          "description": "The ID of the firewall to use, from the current list. If left blank or not sent, the default firewall will be used (open to all)\n"
        },
        "name": {
          "type": "string",
          "description": "Name of the database\n"
        },
        "networkId": {
          "type": "string",
          "description": "The id of the associated network\n"
        },
        "nodes": {
          "type": "number",
          "description": "Count of nodes\n"
        },
        "region": {
          "type": "string",
          "description": "The region where the database will be created.\n"
        },
        "size": {
          "type": "string",
          "description": "Size of the database\n"
        },
        "timeouts": {
          "$ref": "#/types/civo:index%2FDatabaseTimeouts:DatabaseTimeouts"
        },
        "version": {
          "type": "string",
          "description": "The version of the database\n"
        }
      },
      "requiredInputs": [
        "engine",
        "nodes",
        "size",
        "version"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Database resources.\n",
        "properties": {
          "databaseId": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "dnsEndpoint": {
            "type": "string",
            "description": "The DNS endpoint of the database\n"
          },
          "endpoint": {
            "type": "string",
            "description": "The endpoint of the database\n"
          },
          "engine": {
            "type": "string",
            "description": "The engine of the database\n"
          },
          "firewallId": {
            "type": "string",
            "description": "The ID of the firewall to use, from the current list. If left blank or not sent, the default firewall will be used (open to all)\n"
          },
          "name": {
            "type": "string",
            "description": "Name of the database\n"
          },
          "networkId": {
            "type": "string",
            "description": "The id of the associated network\n"
          },
          "nodes": {
            "type": "number",
            "description": "Count of nodes\n"
          },
          "password": {
            "type": "string",
            "description": "The password of the database\n"
          },
          "port": {
            "type": "number",
            "description": "The port of the database\n"
          },
          "privateIpv4": {
            "type": "string",
            "description": "The private IP assigned to the database\n"
          },
          "region": {
            "type": "string",
            "description": "The region where the database will be created.\n"
          },
          "size": {
            "type": "string",
            "description": "Size of the database\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the database\n"
          },
          "timeouts": {
            "$ref": "#/types/civo:index%2FDatabaseTimeouts:DatabaseTimeouts"
          },
          "username": {
            "type": "string",
            "description": "The username of the database\n"
          },
          "version": {
            "type": "string",
            "description": "The version of the database\n"
          }
        },
        "type": "object"
      }
    },
    "civo:index/dnsDomainName:DnsDomainName": {
      "description": "Provides a Civo DNS domain name resource.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\n// Create a new domain name\nconst main = new civo.DnsDomainName(\"main\", {});\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\n# Create a new domain name\nmain = civo.DnsDomainName(\"main\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Create a new domain name\n    var main = new Civo.DnsDomainName(\"main\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Create a new domain name\n\t\t_, err := civo.NewDnsDomainName(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.DnsDomainName;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Create a new domain name\n        var main = new DnsDomainName(\"main\");\n\n    }\n}\n```\n```yaml\nresources:\n  # Create a new domain name\n  main:\n    type: civo:DnsDomainName\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nusing domain name\n\n```sh\n$ pulumi import civo:index/dnsDomainName:DnsDomainName main mydomain.com\n```\n\n",
      "properties": {
        "accountId": {
          "type": "string",
          "description": "The account ID of the domain\n"
        },
        "dnsDomainNameId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the domain\n"
        }
      },
      "type": "object",
      "required": [
        "accountId",
        "dnsDomainNameId",
        "name"
      ],
      "inputProperties": {
        "dnsDomainNameId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the domain\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DnsDomainName resources.\n",
        "properties": {
          "accountId": {
            "type": "string",
            "description": "The account ID of the domain\n"
          },
          "dnsDomainNameId": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the domain\n"
          }
        },
        "type": "object"
      }
    },
    "civo:index/dnsDomainRecord:DnsDomainRecord": {
      "description": "Provides a Civo DNS domain record resource.\n\n## Import\n\nusing domain_id:domain_record_id\n\n```sh\n$ pulumi import civo:index/dnsDomainRecord:DnsDomainRecord www a3cd6832-9577-4017-afd7-17d239fc0bf0:c9a39d14-ee1b-4870-8fb0-a2d4f465e822\n```\n\n",
      "properties": {
        "accountId": {
          "type": "string",
          "description": "The account ID of this resource\n"
        },
        "createdAt": {
          "type": "string",
          "description": "Timestamp when this resource was created\n"
        },
        "dnsDomainRecordId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "domainId": {
          "type": "string",
          "description": "ID from domain name\n"
        },
        "name": {
          "type": "string",
          "description": "The portion before the domain name (e.g. www) or an @ for the apex/root domain (you cannot use an A record with an amex/root domain)\n"
        },
        "priority": {
          "type": "number",
          "description": "Useful for MX records only, the priority mail should be attempted it (defaults to 10)\n"
        },
        "ttl": {
          "type": "number",
          "description": "How long caching DNS servers should cache this record for, in seconds (the minimum is 600 and the default if unspecified is 600)\n"
        },
        "type": {
          "type": "string",
          "description": "The choice of RR type from a, cname, mx or txt\n"
        },
        "updatedAt": {
          "type": "string",
          "description": "Timestamp when this resource was updated\n"
        },
        "value": {
          "type": "string",
          "description": "The IP address (A or MX), hostname (CNAME or MX) or text value (TXT) to serve for this record\n"
        }
      },
      "type": "object",
      "required": [
        "accountId",
        "createdAt",
        "dnsDomainRecordId",
        "domainId",
        "name",
        "ttl",
        "type",
        "updatedAt",
        "value"
      ],
      "inputProperties": {
        "dnsDomainRecordId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "domainId": {
          "type": "string",
          "description": "ID from domain name\n"
        },
        "name": {
          "type": "string",
          "description": "The portion before the domain name (e.g. www) or an @ for the apex/root domain (you cannot use an A record with an amex/root domain)\n"
        },
        "priority": {
          "type": "number",
          "description": "Useful for MX records only, the priority mail should be attempted it (defaults to 10)\n"
        },
        "ttl": {
          "type": "number",
          "description": "How long caching DNS servers should cache this record for, in seconds (the minimum is 600 and the default if unspecified is 600)\n"
        },
        "type": {
          "type": "string",
          "description": "The choice of RR type from a, cname, mx or txt\n"
        },
        "value": {
          "type": "string",
          "description": "The IP address (A or MX), hostname (CNAME or MX) or text value (TXT) to serve for this record\n"
        }
      },
      "requiredInputs": [
        "domainId",
        "ttl",
        "type",
        "value"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering DnsDomainRecord resources.\n",
        "properties": {
          "accountId": {
            "type": "string",
            "description": "The account ID of this resource\n"
          },
          "createdAt": {
            "type": "string",
            "description": "Timestamp when this resource was created\n"
          },
          "dnsDomainRecordId": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "domainId": {
            "type": "string",
            "description": "ID from domain name\n"
          },
          "name": {
            "type": "string",
            "description": "The portion before the domain name (e.g. www) or an @ for the apex/root domain (you cannot use an A record with an amex/root domain)\n"
          },
          "priority": {
            "type": "number",
            "description": "Useful for MX records only, the priority mail should be attempted it (defaults to 10)\n"
          },
          "ttl": {
            "type": "number",
            "description": "How long caching DNS servers should cache this record for, in seconds (the minimum is 600 and the default if unspecified is 600)\n"
          },
          "type": {
            "type": "string",
            "description": "The choice of RR type from a, cname, mx or txt\n"
          },
          "updatedAt": {
            "type": "string",
            "description": "Timestamp when this resource was updated\n"
          },
          "value": {
            "type": "string",
            "description": "The IP address (A or MX), hostname (CNAME or MX) or text value (TXT) to serve for this record\n"
          }
        },
        "type": "object"
      }
    },
    "civo:index/firewall:Firewall": {
      "description": "Provides a Civo firewall resource. This can be used to create, modify, and delete firewalls.\n\n## Example Usage\n\n* View firewalls after creation on the [CLI](https://www.civo.com/docs/overview/civo-cli):\n```\ncivo firewall ls\n```\n* View firewalls after creation on the [Dashboard](https://dashboard.civo.com/firewalls)\n* View firewall rules on [CLI](https://www.civo.com/docs/overview/civo-cli):\n```\ncivo firewall rule ls example-firewall\n```\n\n### Custom ingress and egress rules firewall\n\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\nconst exampleNetwork = new civo.Network(\"exampleNetwork\", {label: \"example-network\"});\nconst exampleFirewall = new civo.Firewall(\"exampleFirewall\", {\n    networkId: exampleNetwork.networkId,\n    createDefaultRules: false,\n    ingressRules: [\n        {\n            label: \"http\",\n            protocol: \"tcp\",\n            portRange: \"80\",\n            cidrs: [\"0.0.0.0\"],\n            action: \"allow\",\n        },\n        {\n            label: \"https\",\n            protocol: \"tcp\",\n            portRange: \"443\",\n            cidrs: [\"0.0.0.0\"],\n            action: \"allow\",\n        },\n        {\n            label: \"ssh\",\n            protocol: \"tcp\",\n            portRange: \"22\",\n            cidrs: [\n                \"192.168.1.1/32\",\n                \"192.168.10.4/32\",\n                \"192.168.10.10/32\",\n            ],\n            action: \"allow\",\n        },\n    ],\n    egressRules: [{\n        label: \"all\",\n        protocol: \"tcp\",\n        portRange: \"1-65535\",\n        cidrs: [\"0.0.0.0/0\"],\n        action: \"allow\",\n    }],\n});\nconst debian = civo.getDiskImage({\n    filters: [{\n        key: \"name\",\n        values: [\"debian-10\"],\n    }],\n});\n// Create a new instance\nconst exampleInstance = new civo.Instance(\"exampleInstance\", {\n    hostname: \"example\",\n    notes: \"This is an example instance\",\n    firewallId: exampleFirewall.firewallId,\n    networkId: exampleNetwork.networkId,\n    size: \"g3.xsmall\",\n    diskImage: debian.then(debian => debian.diskimages?.[0]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\nexample_network = civo.Network(\"exampleNetwork\", label=\"example-network\")\nexample_firewall = civo.Firewall(\"exampleFirewall\",\n    network_id=example_network.network_id,\n    create_default_rules=False,\n    ingress_rules=[\n        {\n            \"label\": \"http\",\n            \"protocol\": \"tcp\",\n            \"port_range\": \"80\",\n            \"cidrs\": [\"0.0.0.0\"],\n            \"action\": \"allow\",\n        },\n        {\n            \"label\": \"https\",\n            \"protocol\": \"tcp\",\n            \"port_range\": \"443\",\n            \"cidrs\": [\"0.0.0.0\"],\n            \"action\": \"allow\",\n        },\n        {\n            \"label\": \"ssh\",\n            \"protocol\": \"tcp\",\n            \"port_range\": \"22\",\n            \"cidrs\": [\n                \"192.168.1.1/32\",\n                \"192.168.10.4/32\",\n                \"192.168.10.10/32\",\n            ],\n            \"action\": \"allow\",\n        },\n    ],\n    egress_rules=[{\n        \"label\": \"all\",\n        \"protocol\": \"tcp\",\n        \"port_range\": \"1-65535\",\n        \"cidrs\": [\"0.0.0.0/0\"],\n        \"action\": \"allow\",\n    }])\ndebian = civo.get_disk_image(filters=[{\n    \"key\": \"name\",\n    \"values\": [\"debian-10\"],\n}])\n# Create a new instance\nexample_instance = civo.Instance(\"exampleInstance\",\n    hostname=\"example\",\n    notes=\"This is an example instance\",\n    firewall_id=example_firewall.firewall_id,\n    network_id=example_network.network_id,\n    size=\"g3.xsmall\",\n    disk_image=debian.diskimages[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleNetwork = new Civo.Network(\"exampleNetwork\", new()\n    {\n        Label = \"example-network\",\n    });\n\n    var exampleFirewall = new Civo.Firewall(\"exampleFirewall\", new()\n    {\n        NetworkId = exampleNetwork.NetworkId,\n        CreateDefaultRules = false,\n        IngressRules = new[]\n        {\n            new Civo.Inputs.FirewallIngressRuleArgs\n            {\n                Label = \"http\",\n                Protocol = \"tcp\",\n                PortRange = \"80\",\n                Cidrs = new[]\n                {\n                    \"0.0.0.0\",\n                },\n                Action = \"allow\",\n            },\n            new Civo.Inputs.FirewallIngressRuleArgs\n            {\n                Label = \"https\",\n                Protocol = \"tcp\",\n                PortRange = \"443\",\n                Cidrs = new[]\n                {\n                    \"0.0.0.0\",\n                },\n                Action = \"allow\",\n            },\n            new Civo.Inputs.FirewallIngressRuleArgs\n            {\n                Label = \"ssh\",\n                Protocol = \"tcp\",\n                PortRange = \"22\",\n                Cidrs = new[]\n                {\n                    \"192.168.1.1/32\",\n                    \"192.168.10.4/32\",\n                    \"192.168.10.10/32\",\n                },\n                Action = \"allow\",\n            },\n        },\n        EgressRules = new[]\n        {\n            new Civo.Inputs.FirewallEgressRuleArgs\n            {\n                Label = \"all\",\n                Protocol = \"tcp\",\n                PortRange = \"1-65535\",\n                Cidrs = new[]\n                {\n                    \"0.0.0.0/0\",\n                },\n                Action = \"allow\",\n            },\n        },\n    });\n\n    var debian = Civo.GetDiskImage.Invoke(new()\n    {\n        Filters = new[]\n        {\n            new Civo.Inputs.GetDiskImageFilterInputArgs\n            {\n                Key = \"name\",\n                Values = new[]\n                {\n                    \"debian-10\",\n                },\n            },\n        },\n    });\n\n    // Create a new instance\n    var exampleInstance = new Civo.Instance(\"exampleInstance\", new()\n    {\n        Hostname = \"example\",\n        Notes = \"This is an example instance\",\n        FirewallId = exampleFirewall.FirewallId,\n        NetworkId = exampleNetwork.NetworkId,\n        Size = \"g3.xsmall\",\n        DiskImage = debian.Apply(getDiskImageResult => getDiskImageResult.Diskimages[0]?.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleNetwork, err := civo.NewNetwork(ctx, \"exampleNetwork\", &civo.NetworkArgs{\n\t\t\tLabel: pulumi.String(\"example-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFirewall, err := civo.NewFirewall(ctx, \"exampleFirewall\", &civo.FirewallArgs{\n\t\t\tNetworkId:          exampleNetwork.NetworkId,\n\t\t\tCreateDefaultRules: pulumi.Bool(false),\n\t\t\tIngressRules: civo.FirewallIngressRuleArray{\n\t\t\t\t&civo.FirewallIngressRuleArgs{\n\t\t\t\t\tLabel:     pulumi.String(\"http\"),\n\t\t\t\t\tProtocol:  pulumi.String(\"tcp\"),\n\t\t\t\t\tPortRange: pulumi.String(\"80\"),\n\t\t\t\t\tCidrs: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"0.0.0.0\"),\n\t\t\t\t\t},\n\t\t\t\t\tAction: pulumi.String(\"allow\"),\n\t\t\t\t},\n\t\t\t\t&civo.FirewallIngressRuleArgs{\n\t\t\t\t\tLabel:     pulumi.String(\"https\"),\n\t\t\t\t\tProtocol:  pulumi.String(\"tcp\"),\n\t\t\t\t\tPortRange: pulumi.String(\"443\"),\n\t\t\t\t\tCidrs: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"0.0.0.0\"),\n\t\t\t\t\t},\n\t\t\t\t\tAction: pulumi.String(\"allow\"),\n\t\t\t\t},\n\t\t\t\t&civo.FirewallIngressRuleArgs{\n\t\t\t\t\tLabel:     pulumi.String(\"ssh\"),\n\t\t\t\t\tProtocol:  pulumi.String(\"tcp\"),\n\t\t\t\t\tPortRange: pulumi.String(\"22\"),\n\t\t\t\t\tCidrs: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"192.168.1.1/32\"),\n\t\t\t\t\t\tpulumi.String(\"192.168.10.4/32\"),\n\t\t\t\t\t\tpulumi.String(\"192.168.10.10/32\"),\n\t\t\t\t\t},\n\t\t\t\t\tAction: pulumi.String(\"allow\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tEgressRules: civo.FirewallEgressRuleArray{\n\t\t\t\t&civo.FirewallEgressRuleArgs{\n\t\t\t\t\tLabel:     pulumi.String(\"all\"),\n\t\t\t\t\tProtocol:  pulumi.String(\"tcp\"),\n\t\t\t\t\tPortRange: pulumi.String(\"1-65535\"),\n\t\t\t\t\tCidrs: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"0.0.0.0/0\"),\n\t\t\t\t\t},\n\t\t\t\t\tAction: pulumi.String(\"allow\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdebian, err := civo.GetDiskImage(ctx, &civo.GetDiskImageArgs{\n\t\t\tFilters: []civo.GetDiskImageFilter{\n\t\t\t\t{\n\t\t\t\t\tKey: \"name\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"debian-10\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a new instance\n\t\t_, err = civo.NewInstance(ctx, \"exampleInstance\", &civo.InstanceArgs{\n\t\t\tHostname:   pulumi.String(\"example\"),\n\t\t\tNotes:      pulumi.String(\"This is an example instance\"),\n\t\t\tFirewallId: exampleFirewall.FirewallId,\n\t\t\tNetworkId:  exampleNetwork.NetworkId,\n\t\t\tSize:       pulumi.String(\"g3.xsmall\"),\n\t\t\tDiskImage:  pulumi.String(debian.Diskimages[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.Network;\nimport com.pulumi.civo.NetworkArgs;\nimport com.pulumi.civo.Firewall;\nimport com.pulumi.civo.FirewallArgs;\nimport com.pulumi.civo.inputs.FirewallIngressRuleArgs;\nimport com.pulumi.civo.inputs.FirewallEgressRuleArgs;\nimport com.pulumi.civo.CivoFunctions;\nimport com.pulumi.civo.inputs.GetDiskImageArgs;\nimport com.pulumi.civo.Instance;\nimport com.pulumi.civo.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .label(\"example-network\")\n            .build());\n\n        var exampleFirewall = new Firewall(\"exampleFirewall\", FirewallArgs.builder()\n            .networkId(exampleNetwork.networkId())\n            .createDefaultRules(false)\n            .ingressRules(            \n                FirewallIngressRuleArgs.builder()\n                    .label(\"http\")\n                    .protocol(\"tcp\")\n                    .portRange(\"80\")\n                    .cidrs(\"0.0.0.0\")\n                    .action(\"allow\")\n                    .build(),\n                FirewallIngressRuleArgs.builder()\n                    .label(\"https\")\n                    .protocol(\"tcp\")\n                    .portRange(\"443\")\n                    .cidrs(\"0.0.0.0\")\n                    .action(\"allow\")\n                    .build(),\n                FirewallIngressRuleArgs.builder()\n                    .label(\"ssh\")\n                    .protocol(\"tcp\")\n                    .portRange(\"22\")\n                    .cidrs(                    \n                        \"192.168.1.1/32\",\n                        \"192.168.10.4/32\",\n                        \"192.168.10.10/32\")\n                    .action(\"allow\")\n                    .build())\n            .egressRules(FirewallEgressRuleArgs.builder()\n                .label(\"all\")\n                .protocol(\"tcp\")\n                .portRange(\"1-65535\")\n                .cidrs(\"0.0.0.0/0\")\n                .action(\"allow\")\n                .build())\n            .build());\n\n        final var debian = CivoFunctions.getDiskImage(GetDiskImageArgs.builder()\n            .filters(GetDiskImageFilterArgs.builder()\n                .key(\"name\")\n                .values(\"debian-10\")\n                .build())\n            .build());\n\n        // Create a new instance\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .hostname(\"example\")\n            .notes(\"This is an example instance\")\n            .firewallId(exampleFirewall.firewallId())\n            .networkId(exampleNetwork.networkId())\n            .size(\"g3.xsmall\")\n            .diskImage(debian.applyValue(getDiskImageResult -> getDiskImageResult.diskimages()[0].id()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleNetwork:\n    type: civo:Network\n    properties:\n      label: example-network\n  exampleFirewall:\n    type: civo:Firewall\n    properties:\n      networkId: ${exampleNetwork.networkId}\n      createDefaultRules: false\n      # Needs to be false when custom rules are applied.\n      ingressRules:\n        - label: http\n          protocol: tcp\n          portRange: '80'\n          cidrs:\n            - 0.0.0.0\n          action: allow\n        - label: https\n          protocol: tcp\n          portRange: '443'\n          cidrs:\n            - 0.0.0.0\n          action: allow\n        - label: ssh\n          protocol: tcp\n          portRange: '22'\n          cidrs:\n            - 192.168.1.1/32\n            - 192.168.10.4/32\n            - 192.168.10.10/32\n          action: allow\n      egressRules:\n        - label: all\n          protocol: tcp\n          portRange: 1-65535\n          cidrs:\n            - 0.0.0.0/0\n          action: allow\n  # Create a new instance\n  exampleInstance:\n    type: civo:Instance\n    properties:\n      hostname: example\n      notes: This is an example instance\n      firewallId: ${exampleFirewall.firewallId}\n      networkId: ${exampleNetwork.networkId}\n      size: g3.xsmall\n      diskImage: ${debian.diskimages[0].id}\nvariables:\n  debian:\n    fn::invoke:\n      function: civo:getDiskImage\n      arguments:\n        filters:\n          - key: name\n            values:\n              - debian-10\n```\n<!--End PulumiCodeChooser -->\n\n### Simple firewall \n\nThis the minimum amount of code to create a firewall with default rules:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\n// ...\nconst example = new civo.Firewall(\"example\", {networkId: civo_network.example.id});\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\n# ...\nexample = civo.Firewall(\"example\", network_id=civo_network[\"example\"][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() => \n{\n    // ...\n    var example = new Civo.Firewall(\"example\", new()\n    {\n        NetworkId = civo_network.Example.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// ...\n\t\t_, err := civo.NewFirewall(ctx, \"example\", &civo.FirewallArgs{\n\t\t\tNetworkId: pulumi.Any(civo_network.Example.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.Firewall;\nimport com.pulumi.civo.FirewallArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // ...\n        var example = new Firewall(\"example\", FirewallArgs.builder()\n            .networkId(civo_network.example().id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # ...\n  example:\n    type: civo:Firewall\n    properties:\n      networkId: ${civo_network.example.id}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nusing ID\n\n```sh\n$ pulumi import civo:index/firewall:Firewall www b8ecd2ab-2267-4a5e-8692-cbf1d32583e3\n```\n\n",
      "properties": {
        "createDefaultRules": {
          "type": "boolean",
          "description": "The create rules flag is used to create the default firewall rules, if is not defined will be set to true, and if you\nset to false you need to define at least one ingress or egress rule\n"
        },
        "egressRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/civo:index%2FFirewallEgressRule:FirewallEgressRule"
          },
          "description": "The egress rules, this is a list of rules that will be applied to the firewall\n"
        },
        "firewallId": {
          "type": "string",
          "description": "(String) The ID of this resource.\n"
        },
        "ingressRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/civo:index%2FFirewallIngressRule:FirewallIngressRule"
          },
          "description": "The ingress rules, this is a list of rules that will be applied to the firewall\n"
        },
        "name": {
          "type": "string",
          "description": "The firewall name\n"
        },
        "networkId": {
          "type": "string",
          "description": "The firewall network, if is not defined we use the default network\n"
        },
        "region": {
          "type": "string",
          "description": "The firewall region, if is not defined we use the global defined in the provider\n"
        },
        "timeouts": {
          "$ref": "#/types/civo:index%2FFirewallTimeouts:FirewallTimeouts"
        }
      },
      "type": "object",
      "required": [
        "firewallId",
        "name",
        "networkId",
        "region"
      ],
      "inputProperties": {
        "createDefaultRules": {
          "type": "boolean",
          "description": "The create rules flag is used to create the default firewall rules, if is not defined will be set to true, and if you\nset to false you need to define at least one ingress or egress rule\n"
        },
        "egressRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/civo:index%2FFirewallEgressRule:FirewallEgressRule"
          },
          "description": "The egress rules, this is a list of rules that will be applied to the firewall\n"
        },
        "firewallId": {
          "type": "string",
          "description": "(String) The ID of this resource.\n"
        },
        "ingressRules": {
          "type": "array",
          "items": {
            "$ref": "#/types/civo:index%2FFirewallIngressRule:FirewallIngressRule"
          },
          "description": "The ingress rules, this is a list of rules that will be applied to the firewall\n"
        },
        "name": {
          "type": "string",
          "description": "The firewall name\n"
        },
        "networkId": {
          "type": "string",
          "description": "The firewall network, if is not defined we use the default network\n"
        },
        "region": {
          "type": "string",
          "description": "The firewall region, if is not defined we use the global defined in the provider\n"
        },
        "timeouts": {
          "$ref": "#/types/civo:index%2FFirewallTimeouts:FirewallTimeouts"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Firewall resources.\n",
        "properties": {
          "createDefaultRules": {
            "type": "boolean",
            "description": "The create rules flag is used to create the default firewall rules, if is not defined will be set to true, and if you\nset to false you need to define at least one ingress or egress rule\n"
          },
          "egressRules": {
            "type": "array",
            "items": {
              "$ref": "#/types/civo:index%2FFirewallEgressRule:FirewallEgressRule"
            },
            "description": "The egress rules, this is a list of rules that will be applied to the firewall\n"
          },
          "firewallId": {
            "type": "string",
            "description": "(String) The ID of this resource.\n"
          },
          "ingressRules": {
            "type": "array",
            "items": {
              "$ref": "#/types/civo:index%2FFirewallIngressRule:FirewallIngressRule"
            },
            "description": "The ingress rules, this is a list of rules that will be applied to the firewall\n"
          },
          "name": {
            "type": "string",
            "description": "The firewall name\n"
          },
          "networkId": {
            "type": "string",
            "description": "The firewall network, if is not defined we use the default network\n"
          },
          "region": {
            "type": "string",
            "description": "The firewall region, if is not defined we use the global defined in the provider\n"
          },
          "timeouts": {
            "$ref": "#/types/civo:index%2FFirewallTimeouts:FirewallTimeouts"
          }
        },
        "type": "object"
      }
    },
    "civo:index/instance:Instance": {
      "description": "Provides a Civo instance resource. This can be used to create, modify, and delete instances.\n\n## Example Usage\n\n* View instances after creation on the [CLI](https://www.civo.com/docs/overview/civo-cli):\n```\ncivo instances ls\n```\n* View instances after creation on the [Dashboard](https://dashboard.civo.com/instances)\n* View node sizes on [CLI](https://www.civo.com/docs/overview/civo-cli):\n\n```\ncivo instances size\n```\n\n### Simple and smallest instance with its own network\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\nconst exampleNetwork = new civo.Network(\"exampleNetwork\", {label: \"example-network\"});\nconst exampleFirewall = new civo.Firewall(\"exampleFirewall\", {\n    createDefaultRules: true,\n    networkId: exampleNetwork.networkId,\n});\nconst debian = civo.getDiskImage({\n    filters: [{\n        key: \"name\",\n        values: [\"debian-10\"],\n    }],\n});\n// Create a new instance\nconst exampleInstance = new civo.Instance(\"exampleInstance\", {\n    hostname: \"example\",\n    tags: [\n        \"example\",\n        \"documentation\",\n    ],\n    notes: \"This is an example instance\",\n    firewallId: exampleFirewall.firewallId,\n    networkId: exampleNetwork.networkId,\n    size: \"g3.xsmall\",\n    diskImage: debian.then(debian => debian.diskimages?.[0]?.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\nexample_network = civo.Network(\"exampleNetwork\", label=\"example-network\")\nexample_firewall = civo.Firewall(\"exampleFirewall\",\n    create_default_rules=True,\n    network_id=example_network.network_id)\ndebian = civo.get_disk_image(filters=[{\n    \"key\": \"name\",\n    \"values\": [\"debian-10\"],\n}])\n# Create a new instance\nexample_instance = civo.Instance(\"exampleInstance\",\n    hostname=\"example\",\n    tags=[\n        \"example\",\n        \"documentation\",\n    ],\n    notes=\"This is an example instance\",\n    firewall_id=example_firewall.firewall_id,\n    network_id=example_network.network_id,\n    size=\"g3.xsmall\",\n    disk_image=debian.diskimages[0].id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleNetwork = new Civo.Network(\"exampleNetwork\", new()\n    {\n        Label = \"example-network\",\n    });\n\n    var exampleFirewall = new Civo.Firewall(\"exampleFirewall\", new()\n    {\n        CreateDefaultRules = true,\n        NetworkId = exampleNetwork.NetworkId,\n    });\n\n    var debian = Civo.GetDiskImage.Invoke(new()\n    {\n        Filters = new[]\n        {\n            new Civo.Inputs.GetDiskImageFilterInputArgs\n            {\n                Key = \"name\",\n                Values = new[]\n                {\n                    \"debian-10\",\n                },\n            },\n        },\n    });\n\n    // Create a new instance\n    var exampleInstance = new Civo.Instance(\"exampleInstance\", new()\n    {\n        Hostname = \"example\",\n        Tags = new[]\n        {\n            \"example\",\n            \"documentation\",\n        },\n        Notes = \"This is an example instance\",\n        FirewallId = exampleFirewall.FirewallId,\n        NetworkId = exampleNetwork.NetworkId,\n        Size = \"g3.xsmall\",\n        DiskImage = debian.Apply(getDiskImageResult => getDiskImageResult.Diskimages[0]?.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleNetwork, err := civo.NewNetwork(ctx, \"exampleNetwork\", &civo.NetworkArgs{\n\t\t\tLabel: pulumi.String(\"example-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFirewall, err := civo.NewFirewall(ctx, \"exampleFirewall\", &civo.FirewallArgs{\n\t\t\tCreateDefaultRules: pulumi.Bool(true),\n\t\t\tNetworkId:          exampleNetwork.NetworkId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdebian, err := civo.GetDiskImage(ctx, &civo.GetDiskImageArgs{\n\t\t\tFilters: []civo.GetDiskImageFilter{\n\t\t\t\t{\n\t\t\t\t\tKey: \"name\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"debian-10\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a new instance\n\t\t_, err = civo.NewInstance(ctx, \"exampleInstance\", &civo.InstanceArgs{\n\t\t\tHostname: pulumi.String(\"example\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"example\"),\n\t\t\t\tpulumi.String(\"documentation\"),\n\t\t\t},\n\t\t\tNotes:      pulumi.String(\"This is an example instance\"),\n\t\t\tFirewallId: exampleFirewall.FirewallId,\n\t\t\tNetworkId:  exampleNetwork.NetworkId,\n\t\t\tSize:       pulumi.String(\"g3.xsmall\"),\n\t\t\tDiskImage:  pulumi.String(debian.Diskimages[0].Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.Network;\nimport com.pulumi.civo.NetworkArgs;\nimport com.pulumi.civo.Firewall;\nimport com.pulumi.civo.FirewallArgs;\nimport com.pulumi.civo.CivoFunctions;\nimport com.pulumi.civo.inputs.GetDiskImageArgs;\nimport com.pulumi.civo.Instance;\nimport com.pulumi.civo.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .label(\"example-network\")\n            .build());\n\n        var exampleFirewall = new Firewall(\"exampleFirewall\", FirewallArgs.builder()\n            .createDefaultRules(true)\n            .networkId(exampleNetwork.networkId())\n            .build());\n\n        final var debian = CivoFunctions.getDiskImage(GetDiskImageArgs.builder()\n            .filters(GetDiskImageFilterArgs.builder()\n                .key(\"name\")\n                .values(\"debian-10\")\n                .build())\n            .build());\n\n        // Create a new instance\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .hostname(\"example\")\n            .tags(            \n                \"example\",\n                \"documentation\")\n            .notes(\"This is an example instance\")\n            .firewallId(exampleFirewall.firewallId())\n            .networkId(exampleNetwork.networkId())\n            .size(\"g3.xsmall\")\n            .diskImage(debian.applyValue(getDiskImageResult -> getDiskImageResult.diskimages()[0].id()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleFirewall:\n    type: civo:Firewall\n    properties:\n      createDefaultRules: true\n      networkId: ${exampleNetwork.networkId}\n  exampleNetwork:\n    type: civo:Network\n    properties:\n      label: example-network\n  # Create a new instance\n  exampleInstance:\n    type: civo:Instance\n    properties:\n      hostname: example\n      tags:\n        - example\n        - documentation\n      notes: This is an example instance\n      firewallId: ${exampleFirewall.firewallId}\n      networkId: ${exampleNetwork.networkId}\n      size: g3.xsmall\n      diskImage: ${debian.diskimages[0].id}\nvariables:\n  debian:\n    fn::invoke:\n      function: civo:getDiskImage\n      arguments:\n        filters:\n          - key: name\n            values:\n              - debian-10\n```\n<!--End PulumiCodeChooser -->\n\nWith this configuration, an initial password for the instance gets written to the state on output `initial_password` which you can use to access the instance.\n\nAlternative you can get the password with the [CLI](https://www.civo.com/docs/overview/civo-cli):\n\n```\ncivo instances show example\n```\n\n### Instance with ssh login\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\nimport * as fs from \"fs\";\n\nconst exampleNetwork = new civo.Network(\"exampleNetwork\", {label: \"example-network\"});\nconst exampleFirewall = new civo.Firewall(\"exampleFirewall\", {\n    createDefaultRules: true,\n    networkId: exampleNetwork.networkId,\n});\nconst debian = civo.getDiskImage({\n    filters: [{\n        key: \"name\",\n        values: [\"debian-10\"],\n    }],\n});\nconst exampleSshKey = new civo.SshKey(\"exampleSshKey\", {publicKey: fs.readFileSync(\"~/.ssh/example-tf.pub\", \"utf8\")});\n// Create a new instance\nconst exampleInstance = new civo.Instance(\"exampleInstance\", {\n    hostname: \"example\",\n    tags: [\n        \"example\",\n        \"documentation\",\n    ],\n    notes: \"This is an example instance\",\n    sshkeyId: exampleSshKey.sshKeyId,\n    firewallId: exampleFirewall.firewallId,\n    networkId: exampleNetwork.networkId,\n    size: \"g3.xsmall\",\n    diskImage: debian.then(debian => debian.diskimages?.[0]?.id),\n    volumeType: \"csi-s3\",\n});\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\nexample_network = civo.Network(\"exampleNetwork\", label=\"example-network\")\nexample_firewall = civo.Firewall(\"exampleFirewall\",\n    create_default_rules=True,\n    network_id=example_network.network_id)\ndebian = civo.get_disk_image(filters=[{\n    \"key\": \"name\",\n    \"values\": [\"debian-10\"],\n}])\nexample_ssh_key = civo.SshKey(\"exampleSshKey\", public_key=(lambda path: open(path).read())(\"~/.ssh/example-tf.pub\"))\n# Create a new instance\nexample_instance = civo.Instance(\"exampleInstance\",\n    hostname=\"example\",\n    tags=[\n        \"example\",\n        \"documentation\",\n    ],\n    notes=\"This is an example instance\",\n    sshkey_id=example_ssh_key.ssh_key_id,\n    firewall_id=example_firewall.firewall_id,\n    network_id=example_network.network_id,\n    size=\"g3.xsmall\",\n    disk_image=debian.diskimages[0].id,\n    volume_type=\"csi-s3\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() => \n{\n    var exampleNetwork = new Civo.Network(\"exampleNetwork\", new()\n    {\n        Label = \"example-network\",\n    });\n\n    var exampleFirewall = new Civo.Firewall(\"exampleFirewall\", new()\n    {\n        CreateDefaultRules = true,\n        NetworkId = exampleNetwork.NetworkId,\n    });\n\n    var debian = Civo.GetDiskImage.Invoke(new()\n    {\n        Filters = new[]\n        {\n            new Civo.Inputs.GetDiskImageFilterInputArgs\n            {\n                Key = \"name\",\n                Values = new[]\n                {\n                    \"debian-10\",\n                },\n            },\n        },\n    });\n\n    var exampleSshKey = new Civo.SshKey(\"exampleSshKey\", new()\n    {\n        PublicKey = File.ReadAllText(\"~/.ssh/example-tf.pub\"),\n    });\n\n    // Create a new instance\n    var exampleInstance = new Civo.Instance(\"exampleInstance\", new()\n    {\n        Hostname = \"example\",\n        Tags = new[]\n        {\n            \"example\",\n            \"documentation\",\n        },\n        Notes = \"This is an example instance\",\n        SshkeyId = exampleSshKey.SshKeyId,\n        FirewallId = exampleFirewall.FirewallId,\n        NetworkId = exampleNetwork.NetworkId,\n        Size = \"g3.xsmall\",\n        DiskImage = debian.Apply(getDiskImageResult => getDiskImageResult.Diskimages[0]?.Id),\n        VolumeType = \"csi-s3\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleNetwork, err := civo.NewNetwork(ctx, \"exampleNetwork\", &civo.NetworkArgs{\n\t\t\tLabel: pulumi.String(\"example-network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFirewall, err := civo.NewFirewall(ctx, \"exampleFirewall\", &civo.FirewallArgs{\n\t\t\tCreateDefaultRules: pulumi.Bool(true),\n\t\t\tNetworkId:          exampleNetwork.NetworkId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdebian, err := civo.GetDiskImage(ctx, &civo.GetDiskImageArgs{\n\t\t\tFilters: []civo.GetDiskImageFilter{\n\t\t\t\t{\n\t\t\t\t\tKey: \"name\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"debian-10\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSshKey, err := civo.NewSshKey(ctx, \"exampleSshKey\", &civo.SshKeyArgs{\n\t\t\tPublicKey: pulumi.String(readFileOrPanic(\"~/.ssh/example-tf.pub\")),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a new instance\n\t\t_, err = civo.NewInstance(ctx, \"exampleInstance\", &civo.InstanceArgs{\n\t\t\tHostname: pulumi.String(\"example\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"example\"),\n\t\t\t\tpulumi.String(\"documentation\"),\n\t\t\t},\n\t\t\tNotes:      pulumi.String(\"This is an example instance\"),\n\t\t\tSshkeyId:   exampleSshKey.SshKeyId,\n\t\t\tFirewallId: exampleFirewall.FirewallId,\n\t\t\tNetworkId:  exampleNetwork.NetworkId,\n\t\t\tSize:       pulumi.String(\"g3.xsmall\"),\n\t\t\tDiskImage:  pulumi.String(debian.Diskimages[0].Id),\n\t\t\tVolumeType: pulumi.String(\"csi-s3\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.Network;\nimport com.pulumi.civo.NetworkArgs;\nimport com.pulumi.civo.Firewall;\nimport com.pulumi.civo.FirewallArgs;\nimport com.pulumi.civo.CivoFunctions;\nimport com.pulumi.civo.inputs.GetDiskImageArgs;\nimport com.pulumi.civo.SshKey;\nimport com.pulumi.civo.SshKeyArgs;\nimport com.pulumi.civo.Instance;\nimport com.pulumi.civo.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleNetwork = new Network(\"exampleNetwork\", NetworkArgs.builder()\n            .label(\"example-network\")\n            .build());\n\n        var exampleFirewall = new Firewall(\"exampleFirewall\", FirewallArgs.builder()\n            .createDefaultRules(true)\n            .networkId(exampleNetwork.networkId())\n            .build());\n\n        final var debian = CivoFunctions.getDiskImage(GetDiskImageArgs.builder()\n            .filters(GetDiskImageFilterArgs.builder()\n                .key(\"name\")\n                .values(\"debian-10\")\n                .build())\n            .build());\n\n        var exampleSshKey = new SshKey(\"exampleSshKey\", SshKeyArgs.builder()\n            .publicKey(Files.readString(Paths.get(\"~/.ssh/example-tf.pub\")))\n            .build());\n\n        // Create a new instance\n        var exampleInstance = new Instance(\"exampleInstance\", InstanceArgs.builder()\n            .hostname(\"example\")\n            .tags(            \n                \"example\",\n                \"documentation\")\n            .notes(\"This is an example instance\")\n            .sshkeyId(exampleSshKey.sshKeyId())\n            .firewallId(exampleFirewall.firewallId())\n            .networkId(exampleNetwork.networkId())\n            .size(\"g3.xsmall\")\n            .diskImage(debian.applyValue(getDiskImageResult -> getDiskImageResult.diskimages()[0].id()))\n            .volumeType(\"csi-s3\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleFirewall:\n    type: civo:Firewall\n    properties:\n      createDefaultRules: true\n      networkId: ${exampleNetwork.networkId}\n  exampleNetwork:\n    type: civo:Network\n    properties:\n      label: example-network\n  exampleSshKey:\n    type: civo:SshKey\n    properties:\n      publicKey:\n        fn::readFile: ~/.ssh/example-tf.pub\n  # Create a new instance\n  exampleInstance:\n    type: civo:Instance\n    properties:\n      hostname: example\n      tags:\n        - example\n        - documentation\n      notes: This is an example instance\n      sshkeyId: ${exampleSshKey.sshKeyId}\n      firewallId: ${exampleFirewall.firewallId}\n      networkId: ${exampleNetwork.networkId}\n      size: g3.xsmall\n      diskImage: ${debian.diskimages[0].id}\n      volumeType: csi-s3\nvariables:\n  debian: # To create the example key, run this command:\n  # ssh-keygen -f ~/.ssh/example-tf -C \"terraform-example@localmachine\"\n    fn::invoke:\n      function: civo:getDiskImage\n      arguments:\n        filters:\n          - key: name\n            values:\n              - debian-10\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nusing ID\n\n```sh\n$ pulumi import civo:index/instance:Instance example 18bd98ad-1b6e-4f87-b48f-e690b4fd7413\n```\n\n",
      "properties": {
        "cpuCores": {
          "type": "number",
          "description": "(Number) Instance's CPU cores\n"
        },
        "createdAt": {
          "type": "string",
          "description": "(String) Timestamp when the instance was created\n"
        },
        "diskGb": {
          "type": "number",
          "description": "(Number) Instance's disk (GB)\n"
        },
        "diskImage": {
          "type": "string",
          "description": "The ID for the disk image to use to build the instance\n"
        },
        "firewallId": {
          "type": "string",
          "description": "The ID of the firewall to use, from the current list. If left blank or not sent, the default firewall will be used (open\nto all)\n"
        },
        "hostname": {
          "type": "string",
          "description": "A fully qualified domain name that should be set as the instance's hostname\n"
        },
        "initialPassword": {
          "type": "string",
          "description": "(String, Sensitive) Initial password for login\n",
          "secret": true
        },
        "initialUser": {
          "type": "string",
          "description": "The name of the initial user created on the server (optional; this will default to the template's default_username and\nfallback to civo)\n"
        },
        "instanceId": {
          "type": "string",
          "description": "(String) The ID of this resource.\n"
        },
        "networkId": {
          "type": "string",
          "description": "This must be the ID of the network from the network listing (optional; default network used when not specified)\n"
        },
        "notes": {
          "type": "string",
          "description": "Add some notes to the instance\n"
        },
        "privateIp": {
          "type": "string",
          "description": "(String) Instance's private IP address\n"
        },
        "privateIpv4": {
          "type": "string",
          "description": "The private IPv4 address for the instance (optional)\n"
        },
        "publicIp": {
          "type": "string",
          "description": "(String) Instance's public IP address\n"
        },
        "publicIpRequired": {
          "type": "string",
          "description": "This should be either 'none' or 'create' (default: 'create')\n"
        },
        "ramMb": {
          "type": "number",
          "description": "(Number) Instance's RAM (MB)\n"
        },
        "region": {
          "type": "string",
          "description": "The region for the instance, if not declare we use the region in declared in the provider\n"
        },
        "reservedIpv4": {
          "type": "string",
          "description": "Can be either the UUID, name, or the IP address of the reserved IP\n"
        },
        "reverseDns": {
          "type": "string",
          "description": "A fully qualified domain name that should be used as the instance's IP's reverse DNS (optional, uses the hostname if\nunspecified)\n"
        },
        "script": {
          "type": "string",
          "description": "The contents of a script that will be uploaded to /usr/local/bin/civo-user-init-script on your instance,\nread/write/executable only by root and then will be executed at the end of the cloud initialization\n"
        },
        "size": {
          "type": "string",
          "description": "The name of the size, from the current list, e.g. g3.xsmall\n"
        },
        "sourceId": {
          "type": "string",
          "description": "(String) Instance's source ID\n"
        },
        "sourceType": {
          "type": "string",
          "description": "(String) Instance's source type\n"
        },
        "sshkeyId": {
          "type": "string",
          "description": "The ID of an already uploaded SSH public key to use for login to the default user (optional; if one isn't provided a\nrandom password will be set and returned in the initial_password field)\n"
        },
        "status": {
          "type": "string",
          "description": "(String) Instance's status\n"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An optional list of tags, represented as a key, value pair\n"
        },
        "timeouts": {
          "$ref": "#/types/civo:index%2FInstanceTimeouts:InstanceTimeouts"
        },
        "volumeType": {
          "type": "string",
          "description": "The type of volume to use, either 'ssd' or 'bssd' (optional; default 'ssd')\n"
        },
        "writePassword": {
          "type": "boolean"
        }
      },
      "type": "object",
      "required": [
        "cpuCores",
        "createdAt",
        "diskGb",
        "diskImage",
        "firewallId",
        "hostname",
        "initialPassword",
        "instanceId",
        "networkId",
        "privateIp",
        "publicIp",
        "ramMb",
        "sourceId",
        "sourceType",
        "sshkeyId",
        "status"
      ],
      "inputProperties": {
        "diskImage": {
          "type": "string",
          "description": "The ID for the disk image to use to build the instance\n"
        },
        "firewallId": {
          "type": "string",
          "description": "The ID of the firewall to use, from the current list. If left blank or not sent, the default firewall will be used (open\nto all)\n"
        },
        "hostname": {
          "type": "string",
          "description": "A fully qualified domain name that should be set as the instance's hostname\n"
        },
        "initialUser": {
          "type": "string",
          "description": "The name of the initial user created on the server (optional; this will default to the template's default_username and\nfallback to civo)\n"
        },
        "instanceId": {
          "type": "string",
          "description": "(String) The ID of this resource.\n"
        },
        "networkId": {
          "type": "string",
          "description": "This must be the ID of the network from the network listing (optional; default network used when not specified)\n"
        },
        "notes": {
          "type": "string",
          "description": "Add some notes to the instance\n"
        },
        "privateIpv4": {
          "type": "string",
          "description": "The private IPv4 address for the instance (optional)\n"
        },
        "publicIpRequired": {
          "type": "string",
          "description": "This should be either 'none' or 'create' (default: 'create')\n"
        },
        "region": {
          "type": "string",
          "description": "The region for the instance, if not declare we use the region in declared in the provider\n"
        },
        "reservedIpv4": {
          "type": "string",
          "description": "Can be either the UUID, name, or the IP address of the reserved IP\n"
        },
        "reverseDns": {
          "type": "string",
          "description": "A fully qualified domain name that should be used as the instance's IP's reverse DNS (optional, uses the hostname if\nunspecified)\n"
        },
        "script": {
          "type": "string",
          "description": "The contents of a script that will be uploaded to /usr/local/bin/civo-user-init-script on your instance,\nread/write/executable only by root and then will be executed at the end of the cloud initialization\n"
        },
        "size": {
          "type": "string",
          "description": "The name of the size, from the current list, e.g. g3.xsmall\n"
        },
        "sshkeyId": {
          "type": "string",
          "description": "The ID of an already uploaded SSH public key to use for login to the default user (optional; if one isn't provided a\nrandom password will be set and returned in the initial_password field)\n"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An optional list of tags, represented as a key, value pair\n"
        },
        "timeouts": {
          "$ref": "#/types/civo:index%2FInstanceTimeouts:InstanceTimeouts"
        },
        "volumeType": {
          "type": "string",
          "description": "The type of volume to use, either 'ssd' or 'bssd' (optional; default 'ssd')\n"
        },
        "writePassword": {
          "type": "boolean"
        }
      },
      "requiredInputs": [
        "diskImage",
        "firewallId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Instance resources.\n",
        "properties": {
          "cpuCores": {
            "type": "number",
            "description": "(Number) Instance's CPU cores\n"
          },
          "createdAt": {
            "type": "string",
            "description": "(String) Timestamp when the instance was created\n"
          },
          "diskGb": {
            "type": "number",
            "description": "(Number) Instance's disk (GB)\n"
          },
          "diskImage": {
            "type": "string",
            "description": "The ID for the disk image to use to build the instance\n"
          },
          "firewallId": {
            "type": "string",
            "description": "The ID of the firewall to use, from the current list. If left blank or not sent, the default firewall will be used (open\nto all)\n"
          },
          "hostname": {
            "type": "string",
            "description": "A fully qualified domain name that should be set as the instance's hostname\n"
          },
          "initialPassword": {
            "type": "string",
            "description": "(String, Sensitive) Initial password for login\n",
            "secret": true
          },
          "initialUser": {
            "type": "string",
            "description": "The name of the initial user created on the server (optional; this will default to the template's default_username and\nfallback to civo)\n"
          },
          "instanceId": {
            "type": "string",
            "description": "(String) The ID of this resource.\n"
          },
          "networkId": {
            "type": "string",
            "description": "This must be the ID of the network from the network listing (optional; default network used when not specified)\n"
          },
          "notes": {
            "type": "string",
            "description": "Add some notes to the instance\n"
          },
          "privateIp": {
            "type": "string",
            "description": "(String) Instance's private IP address\n"
          },
          "privateIpv4": {
            "type": "string",
            "description": "The private IPv4 address for the instance (optional)\n"
          },
          "publicIp": {
            "type": "string",
            "description": "(String) Instance's public IP address\n"
          },
          "publicIpRequired": {
            "type": "string",
            "description": "This should be either 'none' or 'create' (default: 'create')\n"
          },
          "ramMb": {
            "type": "number",
            "description": "(Number) Instance's RAM (MB)\n"
          },
          "region": {
            "type": "string",
            "description": "The region for the instance, if not declare we use the region in declared in the provider\n"
          },
          "reservedIpv4": {
            "type": "string",
            "description": "Can be either the UUID, name, or the IP address of the reserved IP\n"
          },
          "reverseDns": {
            "type": "string",
            "description": "A fully qualified domain name that should be used as the instance's IP's reverse DNS (optional, uses the hostname if\nunspecified)\n"
          },
          "script": {
            "type": "string",
            "description": "The contents of a script that will be uploaded to /usr/local/bin/civo-user-init-script on your instance,\nread/write/executable only by root and then will be executed at the end of the cloud initialization\n"
          },
          "size": {
            "type": "string",
            "description": "The name of the size, from the current list, e.g. g3.xsmall\n"
          },
          "sourceId": {
            "type": "string",
            "description": "(String) Instance's source ID\n"
          },
          "sourceType": {
            "type": "string",
            "description": "(String) Instance's source type\n"
          },
          "sshkeyId": {
            "type": "string",
            "description": "The ID of an already uploaded SSH public key to use for login to the default user (optional; if one isn't provided a\nrandom password will be set and returned in the initial_password field)\n"
          },
          "status": {
            "type": "string",
            "description": "(String) Instance's status\n"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "An optional list of tags, represented as a key, value pair\n"
          },
          "timeouts": {
            "$ref": "#/types/civo:index%2FInstanceTimeouts:InstanceTimeouts"
          },
          "volumeType": {
            "type": "string",
            "description": "The type of volume to use, either 'ssd' or 'bssd' (optional; default 'ssd')\n"
          },
          "writePassword": {
            "type": "boolean"
          }
        },
        "type": "object"
      }
    },
    "civo:index/instanceReservedIpAssignment:InstanceReservedIpAssignment": {
      "description": "The instance reserved ip assignment resource schema definition. If you are using this resource to assign a reserved IP to an instance, instances `public_ip` attribute won't be updated until the next state refresh. If subsequent resources are relying instances public IP consider assigning the reserved ip address to the instance.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\n// Send to create a reserved IP\nconst www = new civo.ReservedIp(\"www\", {});\n// We assign the reserved IP to the instance\nconst webserver_www = new civo.InstanceReservedIpAssignment(\"webserver-www\", {\n    instanceId: civo_instance.www.id,\n    reservedIpId: civo_reserved_ip[\"web-server\"].id,\n});\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\n# Send to create a reserved IP\nwww = civo.ReservedIp(\"www\")\n# We assign the reserved IP to the instance\nwebserver_www = civo.InstanceReservedIpAssignment(\"webserver-www\",\n    instance_id=civo_instance[\"www\"][\"id\"],\n    reserved_ip_id=civo_reserved_ip[\"web-server\"][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() => \n{\n    // Send to create a reserved IP\n    var www = new Civo.ReservedIp(\"www\");\n\n    // We assign the reserved IP to the instance\n    var webserver_www = new Civo.InstanceReservedIpAssignment(\"webserver-www\", new()\n    {\n        InstanceId = civo_instance.Www.Id,\n        ReservedIpId = civo_reserved_ip.Web_server.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Send to create a reserved IP\n\t\t_, err := civo.NewReservedIp(ctx, \"www\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// We assign the reserved IP to the instance\n\t\t_, err = civo.NewInstanceReservedIpAssignment(ctx, \"webserver-www\", &civo.InstanceReservedIpAssignmentArgs{\n\t\t\tInstanceId:   pulumi.Any(civo_instance.Www.Id),\n\t\t\tReservedIpId: pulumi.Any(civo_reserved_ip.WebServer.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.ReservedIp;\nimport com.pulumi.civo.InstanceReservedIpAssignment;\nimport com.pulumi.civo.InstanceReservedIpAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Send to create a reserved IP\n        var www = new ReservedIp(\"www\");\n\n        // We assign the reserved IP to the instance\n        var webserver_www = new InstanceReservedIpAssignment(\"webserver-www\", InstanceReservedIpAssignmentArgs.builder()\n            .instanceId(civo_instance.www().id())\n            .reservedIpId(civo_reserved_ip.web-server().id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Send to create a reserved IP\n  www:\n    type: civo:ReservedIp\n  # We assign the reserved IP to the instance\n  webserver-www:\n    type: civo:InstanceReservedIpAssignment\n    properties:\n      instanceId: ${civo_instance.www.id}\n      reservedIpId: ${civo_reserved_ip\"web-server\"[%!s(MISSING)].id}\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "instanceId": {
          "type": "string",
          "description": "The instance id\n"
        },
        "instanceReservedIpAssignmentId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "region": {
          "type": "string",
          "description": "The region of the ip\n"
        },
        "reservedIpId": {
          "type": "string",
          "description": "The reserved ip id\n"
        },
        "timeouts": {
          "$ref": "#/types/civo:index%2FInstanceReservedIpAssignmentTimeouts:InstanceReservedIpAssignmentTimeouts"
        }
      },
      "type": "object",
      "required": [
        "instanceId",
        "instanceReservedIpAssignmentId",
        "region",
        "reservedIpId"
      ],
      "inputProperties": {
        "instanceId": {
          "type": "string",
          "description": "The instance id\n"
        },
        "instanceReservedIpAssignmentId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "region": {
          "type": "string",
          "description": "The region of the ip\n"
        },
        "reservedIpId": {
          "type": "string",
          "description": "The reserved ip id\n"
        },
        "timeouts": {
          "$ref": "#/types/civo:index%2FInstanceReservedIpAssignmentTimeouts:InstanceReservedIpAssignmentTimeouts"
        }
      },
      "requiredInputs": [
        "instanceId",
        "reservedIpId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering InstanceReservedIpAssignment resources.\n",
        "properties": {
          "instanceId": {
            "type": "string",
            "description": "The instance id\n"
          },
          "instanceReservedIpAssignmentId": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "region": {
            "type": "string",
            "description": "The region of the ip\n"
          },
          "reservedIpId": {
            "type": "string",
            "description": "The reserved ip id\n"
          },
          "timeouts": {
            "$ref": "#/types/civo:index%2FInstanceReservedIpAssignmentTimeouts:InstanceReservedIpAssignmentTimeouts"
          }
        },
        "type": "object"
      }
    },
    "civo:index/kubernetesCluster:KubernetesCluster": {
      "description": "\n\n## Import\n\nusing ID\n\n```sh\n$ pulumi import civo:index/kubernetesCluster:KubernetesCluster my-cluster 1b8b2100-0e9f-4e8f-ad78-9eb578c2a0af\n```\n\n",
      "properties": {
        "apiEndpoint": {
          "type": "string",
          "description": "(String) The API server endpoint of the cluster\n"
        },
        "applications": {
          "type": "string",
          "description": "Comma separated list of applications to install. Spaces within application names are fine, but shouldn't be either side\nof the comma. Application names are case-sensitive; the available applications can be listed with the Civo CLI: 'civo\nkubernetes applications ls'. If you want to remove a default installed application, prefix it with a '-', e.g. -Traefik.\nFor application that supports plans, you can use 'app_name:app_plan' format e.g. 'Linkerd:Linkerd & Jaeger' or\n'MariaDB:5GB'.\n"
        },
        "clusterType": {
          "type": "string",
          "description": "The type of cluster to create, valid options are `k3s` or `talos` the default is `k3s`\n"
        },
        "cni": {
          "type": "string",
          "description": "The cni for the k3s to install (the default is `flannel`) valid options are `cilium` or `flannel`\n"
        },
        "createdAt": {
          "type": "string",
          "description": "(String) The timestamp when the cluster was created\n"
        },
        "dnsEntry": {
          "type": "string",
          "description": "(String) The DNS name of the cluster\n"
        },
        "firewallId": {
          "type": "string",
          "description": "The existing firewall ID to use for this cluster\n"
        },
        "installedApplications": {
          "type": "array",
          "items": {
            "$ref": "#/types/civo:index%2FKubernetesClusterInstalledApplication:KubernetesClusterInstalledApplication"
          },
          "description": "(List of Object) (see below for nested schema)\n"
        },
        "kubeconfig": {
          "type": "string",
          "description": "(String, Sensitive) The kubeconfig of the cluster\n",
          "secret": true
        },
        "kubernetesClusterId": {
          "type": "string",
          "description": "(String) The ID of this resource.\n"
        },
        "kubernetesVersion": {
          "type": "string",
          "description": "The version of k3s to install (optional, the default is currently the latest stable available)\n"
        },
        "masterIp": {
          "type": "string",
          "description": "(String) The IP address of the master node\n"
        },
        "name": {
          "type": "string",
          "description": "Name for your cluster, must be unique within your account\n"
        },
        "networkId": {
          "type": "string",
          "description": "The network for the cluster, if not declare we use the default one\n"
        },
        "numTargetNodes": {
          "type": "number",
          "description": "The number of instances to create (optional, the default at the time of writing is 3)\n",
          "deprecationMessage": "Deprecated"
        },
        "pools": {
          "$ref": "#/types/civo:index%2FKubernetesClusterPools:KubernetesClusterPools"
        },
        "ready": {
          "type": "boolean",
          "description": "(Boolean) When cluster is ready, this will return `true`\n"
        },
        "region": {
          "type": "string",
          "description": "The region for the cluster, if not declare we use the region in declared in the provider\n"
        },
        "status": {
          "type": "string",
          "description": "(String) Status of the cluster\n"
        },
        "tags": {
          "type": "string",
          "description": "Space separated list of tags, to be used freely as required\n"
        },
        "targetNodesSize": {
          "type": "string",
          "description": "The size of each node (optional, the default is currently g4s.kube.medium)\n",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/civo:index%2FKubernetesClusterTimeouts:KubernetesClusterTimeouts"
        },
        "volumeType": {
          "type": "string",
          "description": "The volume type used for the kubernetes nodes\n"
        },
        "writeKubeconfig": {
          "type": "boolean",
          "description": "Whether to write the kubeconfig to state\n"
        }
      },
      "type": "object",
      "required": [
        "apiEndpoint",
        "clusterType",
        "cni",
        "createdAt",
        "dnsEntry",
        "firewallId",
        "installedApplications",
        "kubeconfig",
        "kubernetesClusterId",
        "kubernetesVersion",
        "masterIp",
        "name",
        "networkId",
        "numTargetNodes",
        "pools",
        "ready",
        "region",
        "status",
        "targetNodesSize"
      ],
      "inputProperties": {
        "applications": {
          "type": "string",
          "description": "Comma separated list of applications to install. Spaces within application names are fine, but shouldn't be either side\nof the comma. Application names are case-sensitive; the available applications can be listed with the Civo CLI: 'civo\nkubernetes applications ls'. If you want to remove a default installed application, prefix it with a '-', e.g. -Traefik.\nFor application that supports plans, you can use 'app_name:app_plan' format e.g. 'Linkerd:Linkerd & Jaeger' or\n'MariaDB:5GB'.\n"
        },
        "clusterType": {
          "type": "string",
          "description": "The type of cluster to create, valid options are `k3s` or `talos` the default is `k3s`\n"
        },
        "cni": {
          "type": "string",
          "description": "The cni for the k3s to install (the default is `flannel`) valid options are `cilium` or `flannel`\n"
        },
        "firewallId": {
          "type": "string",
          "description": "The existing firewall ID to use for this cluster\n"
        },
        "kubernetesClusterId": {
          "type": "string",
          "description": "(String) The ID of this resource.\n"
        },
        "kubernetesVersion": {
          "type": "string",
          "description": "The version of k3s to install (optional, the default is currently the latest stable available)\n"
        },
        "name": {
          "type": "string",
          "description": "Name for your cluster, must be unique within your account\n"
        },
        "networkId": {
          "type": "string",
          "description": "The network for the cluster, if not declare we use the default one\n"
        },
        "numTargetNodes": {
          "type": "number",
          "description": "The number of instances to create (optional, the default at the time of writing is 3)\n",
          "deprecationMessage": "Deprecated"
        },
        "pools": {
          "$ref": "#/types/civo:index%2FKubernetesClusterPools:KubernetesClusterPools"
        },
        "region": {
          "type": "string",
          "description": "The region for the cluster, if not declare we use the region in declared in the provider\n"
        },
        "tags": {
          "type": "string",
          "description": "Space separated list of tags, to be used freely as required\n"
        },
        "targetNodesSize": {
          "type": "string",
          "description": "The size of each node (optional, the default is currently g4s.kube.medium)\n",
          "deprecationMessage": "Deprecated"
        },
        "timeouts": {
          "$ref": "#/types/civo:index%2FKubernetesClusterTimeouts:KubernetesClusterTimeouts"
        },
        "volumeType": {
          "type": "string",
          "description": "The volume type used for the kubernetes nodes\n"
        },
        "writeKubeconfig": {
          "type": "boolean",
          "description": "Whether to write the kubeconfig to state\n"
        }
      },
      "requiredInputs": [
        "firewallId",
        "pools"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering KubernetesCluster resources.\n",
        "properties": {
          "apiEndpoint": {
            "type": "string",
            "description": "(String) The API server endpoint of the cluster\n"
          },
          "applications": {
            "type": "string",
            "description": "Comma separated list of applications to install. Spaces within application names are fine, but shouldn't be either side\nof the comma. Application names are case-sensitive; the available applications can be listed with the Civo CLI: 'civo\nkubernetes applications ls'. If you want to remove a default installed application, prefix it with a '-', e.g. -Traefik.\nFor application that supports plans, you can use 'app_name:app_plan' format e.g. 'Linkerd:Linkerd & Jaeger' or\n'MariaDB:5GB'.\n"
          },
          "clusterType": {
            "type": "string",
            "description": "The type of cluster to create, valid options are `k3s` or `talos` the default is `k3s`\n"
          },
          "cni": {
            "type": "string",
            "description": "The cni for the k3s to install (the default is `flannel`) valid options are `cilium` or `flannel`\n"
          },
          "createdAt": {
            "type": "string",
            "description": "(String) The timestamp when the cluster was created\n"
          },
          "dnsEntry": {
            "type": "string",
            "description": "(String) The DNS name of the cluster\n"
          },
          "firewallId": {
            "type": "string",
            "description": "The existing firewall ID to use for this cluster\n"
          },
          "installedApplications": {
            "type": "array",
            "items": {
              "$ref": "#/types/civo:index%2FKubernetesClusterInstalledApplication:KubernetesClusterInstalledApplication"
            },
            "description": "(List of Object) (see below for nested schema)\n"
          },
          "kubeconfig": {
            "type": "string",
            "description": "(String, Sensitive) The kubeconfig of the cluster\n",
            "secret": true
          },
          "kubernetesClusterId": {
            "type": "string",
            "description": "(String) The ID of this resource.\n"
          },
          "kubernetesVersion": {
            "type": "string",
            "description": "The version of k3s to install (optional, the default is currently the latest stable available)\n"
          },
          "masterIp": {
            "type": "string",
            "description": "(String) The IP address of the master node\n"
          },
          "name": {
            "type": "string",
            "description": "Name for your cluster, must be unique within your account\n"
          },
          "networkId": {
            "type": "string",
            "description": "The network for the cluster, if not declare we use the default one\n"
          },
          "numTargetNodes": {
            "type": "number",
            "description": "The number of instances to create (optional, the default at the time of writing is 3)\n",
            "deprecationMessage": "Deprecated"
          },
          "pools": {
            "$ref": "#/types/civo:index%2FKubernetesClusterPools:KubernetesClusterPools"
          },
          "ready": {
            "type": "boolean",
            "description": "(Boolean) When cluster is ready, this will return `true`\n"
          },
          "region": {
            "type": "string",
            "description": "The region for the cluster, if not declare we use the region in declared in the provider\n"
          },
          "status": {
            "type": "string",
            "description": "(String) Status of the cluster\n"
          },
          "tags": {
            "type": "string",
            "description": "Space separated list of tags, to be used freely as required\n"
          },
          "targetNodesSize": {
            "type": "string",
            "description": "The size of each node (optional, the default is currently g4s.kube.medium)\n",
            "deprecationMessage": "Deprecated"
          },
          "timeouts": {
            "$ref": "#/types/civo:index%2FKubernetesClusterTimeouts:KubernetesClusterTimeouts"
          },
          "volumeType": {
            "type": "string",
            "description": "The volume type used for the kubernetes nodes\n"
          },
          "writeKubeconfig": {
            "type": "boolean",
            "description": "Whether to write the kubeconfig to state\n"
          }
        },
        "type": "object"
      }
    },
    "civo:index/kubernetesNodePool:KubernetesNodePool": {
      "description": "\n\n## Import\n\n```sh\n$ pulumi import civo:index/kubernetesNodePool:KubernetesNodePool my-pool 1b8b2100-0e9f-4e8f-ad78-9eb578c2a0af:502c1130-cb9b-4a88-b6d2-307bd96d946a\n```\n\n",
      "properties": {
        "clusterId": {
          "type": "string",
          "description": "The ID of your cluster\n"
        },
        "instanceNames": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Instance names in the nodepool\n"
        },
        "kubernetesNodePoolId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "label": {
          "type": "string",
          "description": "Node pool label, if you don't provide one, we will generate one for you\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "nodeCount": {
          "type": "number",
          "description": "Number of nodes in the nodepool\n"
        },
        "publicIpNodePool": {
          "type": "boolean",
          "description": "Node pool belongs to the public ip node pool\n"
        },
        "size": {
          "type": "string",
          "description": "Size of the nodes in the nodepool\n"
        },
        "taints": {
          "type": "array",
          "items": {
            "$ref": "#/types/civo:index%2FKubernetesNodePoolTaint:KubernetesNodePoolTaint"
          }
        },
        "timeouts": {
          "$ref": "#/types/civo:index%2FKubernetesNodePoolTimeouts:KubernetesNodePoolTimeouts"
        }
      },
      "type": "object",
      "required": [
        "clusterId",
        "instanceNames",
        "kubernetesNodePoolId",
        "label",
        "nodeCount",
        "publicIpNodePool",
        "size"
      ],
      "inputProperties": {
        "clusterId": {
          "type": "string",
          "description": "The ID of your cluster\n"
        },
        "kubernetesNodePoolId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "label": {
          "type": "string",
          "description": "Node pool label, if you don't provide one, we will generate one for you\n"
        },
        "labels": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "nodeCount": {
          "type": "number",
          "description": "Number of nodes in the nodepool\n"
        },
        "publicIpNodePool": {
          "type": "boolean",
          "description": "Node pool belongs to the public ip node pool\n"
        },
        "size": {
          "type": "string",
          "description": "Size of the nodes in the nodepool\n"
        },
        "taints": {
          "type": "array",
          "items": {
            "$ref": "#/types/civo:index%2FKubernetesNodePoolTaint:KubernetesNodePoolTaint"
          }
        },
        "timeouts": {
          "$ref": "#/types/civo:index%2FKubernetesNodePoolTimeouts:KubernetesNodePoolTimeouts"
        }
      },
      "requiredInputs": [
        "clusterId",
        "nodeCount",
        "size"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering KubernetesNodePool resources.\n",
        "properties": {
          "clusterId": {
            "type": "string",
            "description": "The ID of your cluster\n"
          },
          "instanceNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Instance names in the nodepool\n"
          },
          "kubernetesNodePoolId": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "label": {
            "type": "string",
            "description": "Node pool label, if you don't provide one, we will generate one for you\n"
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "nodeCount": {
            "type": "number",
            "description": "Number of nodes in the nodepool\n"
          },
          "publicIpNodePool": {
            "type": "boolean",
            "description": "Node pool belongs to the public ip node pool\n"
          },
          "size": {
            "type": "string",
            "description": "Size of the nodes in the nodepool\n"
          },
          "taints": {
            "type": "array",
            "items": {
              "$ref": "#/types/civo:index%2FKubernetesNodePoolTaint:KubernetesNodePoolTaint"
            }
          },
          "timeouts": {
            "$ref": "#/types/civo:index%2FKubernetesNodePoolTimeouts:KubernetesNodePoolTimeouts"
          }
        },
        "type": "object"
      }
    },
    "civo:index/network:Network": {
      "description": "Provides a Civo network resource. This can be used to create, modify, and delete networks.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\nconst customNet = new civo.Network(\"customNet\", {label: \"test_network\"});\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\ncustom_net = civo.Network(\"customNet\", label=\"test_network\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() => \n{\n    var customNet = new Civo.Network(\"customNet\", new()\n    {\n        Label = \"test_network\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := civo.NewNetwork(ctx, \"customNet\", &civo.NetworkArgs{\n\t\t\tLabel: pulumi.String(\"test_network\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.Network;\nimport com.pulumi.civo.NetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var customNet = new Network(\"customNet\", NetworkArgs.builder()\n            .label(\"test_network\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  customNet:\n    type: civo:Network\n    properties:\n      label: test_network\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nusing ID\n\n```sh\n$ pulumi import civo:index/network:Network custom_net b8ecd2ab-2267-4a5e-8692-cbf1d32583e3\n```\n\n",
      "properties": {
        "cidrV4": {
          "type": "string",
          "description": "The CIDR block for the network\n"
        },
        "default": {
          "type": "boolean",
          "description": "If the network is default, this will be `true`\n"
        },
        "label": {
          "type": "string",
          "description": "Name for the network\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the network\n"
        },
        "nameserversV4s": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of nameservers for the network\n"
        },
        "networkId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "region": {
          "type": "string",
          "description": "The region of the network\n"
        },
        "timeouts": {
          "$ref": "#/types/civo:index%2FNetworkTimeouts:NetworkTimeouts"
        },
        "vlanAllocationPoolV4End": {
          "type": "string",
          "description": "End of the IPv4 allocation pool for VLAN\n"
        },
        "vlanAllocationPoolV4Start": {
          "type": "string",
          "description": "Start of the IPv4 allocation pool for VLAN\n"
        },
        "vlanCidrV4": {
          "type": "string",
          "description": "CIDR for VLAN IPv4\n"
        },
        "vlanGatewayIpV4": {
          "type": "string",
          "description": "Gateway IP for VLAN IPv4\n"
        },
        "vlanId": {
          "type": "number",
          "description": "VLAN ID for the network\n"
        },
        "vlanPhysicalInterface": {
          "type": "string",
          "description": "Physical interface for VLAN\n"
        }
      },
      "type": "object",
      "required": [
        "cidrV4",
        "default",
        "label",
        "name",
        "nameserversV4s",
        "networkId",
        "region"
      ],
      "inputProperties": {
        "cidrV4": {
          "type": "string",
          "description": "The CIDR block for the network\n"
        },
        "label": {
          "type": "string",
          "description": "Name for the network\n"
        },
        "nameserversV4s": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of nameservers for the network\n"
        },
        "networkId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "region": {
          "type": "string",
          "description": "The region of the network\n"
        },
        "timeouts": {
          "$ref": "#/types/civo:index%2FNetworkTimeouts:NetworkTimeouts"
        },
        "vlanAllocationPoolV4End": {
          "type": "string",
          "description": "End of the IPv4 allocation pool for VLAN\n"
        },
        "vlanAllocationPoolV4Start": {
          "type": "string",
          "description": "Start of the IPv4 allocation pool for VLAN\n"
        },
        "vlanCidrV4": {
          "type": "string",
          "description": "CIDR for VLAN IPv4\n"
        },
        "vlanGatewayIpV4": {
          "type": "string",
          "description": "Gateway IP for VLAN IPv4\n"
        },
        "vlanId": {
          "type": "number",
          "description": "VLAN ID for the network\n"
        },
        "vlanPhysicalInterface": {
          "type": "string",
          "description": "Physical interface for VLAN\n"
        }
      },
      "requiredInputs": [
        "label"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Network resources.\n",
        "properties": {
          "cidrV4": {
            "type": "string",
            "description": "The CIDR block for the network\n"
          },
          "default": {
            "type": "boolean",
            "description": "If the network is default, this will be `true`\n"
          },
          "label": {
            "type": "string",
            "description": "Name for the network\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the network\n"
          },
          "nameserversV4s": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of nameservers for the network\n"
          },
          "networkId": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "region": {
            "type": "string",
            "description": "The region of the network\n"
          },
          "timeouts": {
            "$ref": "#/types/civo:index%2FNetworkTimeouts:NetworkTimeouts"
          },
          "vlanAllocationPoolV4End": {
            "type": "string",
            "description": "End of the IPv4 allocation pool for VLAN\n"
          },
          "vlanAllocationPoolV4Start": {
            "type": "string",
            "description": "Start of the IPv4 allocation pool for VLAN\n"
          },
          "vlanCidrV4": {
            "type": "string",
            "description": "CIDR for VLAN IPv4\n"
          },
          "vlanGatewayIpV4": {
            "type": "string",
            "description": "Gateway IP for VLAN IPv4\n"
          },
          "vlanId": {
            "type": "number",
            "description": "VLAN ID for the network\n"
          },
          "vlanPhysicalInterface": {
            "type": "string",
            "description": "Physical interface for VLAN\n"
          }
        },
        "type": "object"
      }
    },
    "civo:index/objectStore:ObjectStore": {
      "description": "Provides an Object Store resource. This can be used to create, modify, and delete object stores.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\nconst backupObjectStore = new civo.ObjectStore(\"backupObjectStore\", {\n    maxSizeGb: 500,\n    region: \"LON1\",\n});\nconst backupObjectStoreCredential = civo.getObjectStoreCredentialOutput({\n    id: backupObjectStore.accessKeyId,\n});\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\nbackup_object_store = civo.ObjectStore(\"backupObjectStore\",\n    max_size_gb=500,\n    region=\"LON1\")\nbackup_object_store_credential = civo.get_object_store_credential_output(id=backup_object_store.access_key_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() => \n{\n    var backupObjectStore = new Civo.ObjectStore(\"backupObjectStore\", new()\n    {\n        MaxSizeGb = 500,\n        Region = \"LON1\",\n    });\n\n    var backupObjectStoreCredential = Civo.GetObjectStoreCredential.Invoke(new()\n    {\n        Id = backupObjectStore.AccessKeyId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbackupObjectStore, err := civo.NewObjectStore(ctx, \"backupObjectStore\", &civo.ObjectStoreArgs{\n\t\t\tMaxSizeGb: pulumi.Float64(500),\n\t\t\tRegion:    pulumi.String(\"LON1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = civo.LookupObjectStoreCredentialOutput(ctx, civo.GetObjectStoreCredentialOutputArgs{\n\t\t\tId: backupObjectStore.AccessKeyId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.ObjectStore;\nimport com.pulumi.civo.ObjectStoreArgs;\nimport com.pulumi.civo.CivoFunctions;\nimport com.pulumi.civo.inputs.GetObjectStoreCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var backupObjectStore = new ObjectStore(\"backupObjectStore\", ObjectStoreArgs.builder()\n            .maxSizeGb(500)\n            .region(\"LON1\")\n            .build());\n\n        final var backupObjectStoreCredential = CivoFunctions.getObjectStoreCredential(GetObjectStoreCredentialArgs.builder()\n            .id(backupObjectStore.accessKeyId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  backupObjectStore:\n    type: civo:ObjectStore\n    properties:\n      maxSizeGb: 500\n      region: LON1\nvariables:\n  backupObjectStoreCredential:\n    fn::invoke:\n      function: civo:getObjectStoreCredential\n      arguments:\n        id: ${backupObjectStore.accessKeyId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nusing ID\n\n```sh\n$ pulumi import civo:index/objectStore:ObjectStore custom_object b8ecd2ab-2267-4a5e-8692-cbf1d32583e3\n```\n\n",
      "properties": {
        "accessKeyId": {
          "type": "string",
          "description": "The access key ID from the Object Store credential. If this is not set, a new credential will be created.\n"
        },
        "bucketUrl": {
          "type": "string",
          "description": "The endpoint of the Object Store. It is generated by the provider.\n"
        },
        "maxSizeGb": {
          "type": "number",
          "description": "The maximum size of the Object Store. Default is 500GB.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the Object Store. Must be unique.\n"
        },
        "objectStoreId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "region": {
          "type": "string",
          "description": "The region for the Object Store, if not declared we use the region as declared in the provider (Defaults to LON1)\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the Object Store.\n"
        },
        "timeouts": {
          "$ref": "#/types/civo:index%2FObjectStoreTimeouts:ObjectStoreTimeouts"
        }
      },
      "type": "object",
      "required": [
        "accessKeyId",
        "bucketUrl",
        "name",
        "objectStoreId",
        "region",
        "status"
      ],
      "inputProperties": {
        "accessKeyId": {
          "type": "string",
          "description": "The access key ID from the Object Store credential. If this is not set, a new credential will be created.\n"
        },
        "maxSizeGb": {
          "type": "number",
          "description": "The maximum size of the Object Store. Default is 500GB.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the Object Store. Must be unique.\n"
        },
        "objectStoreId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "region": {
          "type": "string",
          "description": "The region for the Object Store, if not declared we use the region as declared in the provider (Defaults to LON1)\n"
        },
        "timeouts": {
          "$ref": "#/types/civo:index%2FObjectStoreTimeouts:ObjectStoreTimeouts"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ObjectStore resources.\n",
        "properties": {
          "accessKeyId": {
            "type": "string",
            "description": "The access key ID from the Object Store credential. If this is not set, a new credential will be created.\n"
          },
          "bucketUrl": {
            "type": "string",
            "description": "The endpoint of the Object Store. It is generated by the provider.\n"
          },
          "maxSizeGb": {
            "type": "number",
            "description": "The maximum size of the Object Store. Default is 500GB.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the Object Store. Must be unique.\n"
          },
          "objectStoreId": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "region": {
            "type": "string",
            "description": "The region for the Object Store, if not declared we use the region as declared in the provider (Defaults to LON1)\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the Object Store.\n"
          },
          "timeouts": {
            "$ref": "#/types/civo:index%2FObjectStoreTimeouts:ObjectStoreTimeouts"
          }
        },
        "type": "object"
      }
    },
    "civo:index/objectStoreCredential:ObjectStoreCredential": {
      "description": "Provides an Object Store Credential resource. This can be used to create, modify, and delete object stores credential.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\nconst backupObjectStoreCredential = civo.getObjectStoreCredential({\n    name: \"backup-server\",\n});\n// Create a credential for the object store with a specific access key and secret key\nconst backupIndex_objectStoreCredentialObjectStoreCredential = new civo.ObjectStoreCredential(\"backupIndex/objectStoreCredentialObjectStoreCredential\", {\n    accessKeyId: \"my-access-key\",\n    secretAccessKey: \"my-secret-key\",\n});\n// Use the credential to create a bucket\nconst backupObjectStore = new civo.ObjectStore(\"backupObjectStore\", {\n    maxSizeGb: 500,\n    region: \"LON1\",\n    accessKeyId: backupIndex / objectStoreCredentialObjectStoreCredential.accessKeyId,\n});\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\nbackup_object_store_credential = civo.get_object_store_credential(name=\"backup-server\")\n# Create a credential for the object store with a specific access key and secret key\nbackup_index_object_store_credential_object_store_credential = civo.ObjectStoreCredential(\"backupIndex/objectStoreCredentialObjectStoreCredential\",\n    access_key_id=\"my-access-key\",\n    secret_access_key=\"my-secret-key\")\n# Use the credential to create a bucket\nbackup_object_store = civo.ObjectStore(\"backupObjectStore\",\n    max_size_gb=500,\n    region=\"LON1\",\n    access_key_id=backup_index / object_store_credential_object_store_credential[\"accessKeyId\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() => \n{\n    var backupObjectStoreCredential = Civo.GetObjectStoreCredential.Invoke(new()\n    {\n        Name = \"backup-server\",\n    });\n\n    // Create a credential for the object store with a specific access key and secret key\n    var backupIndex_objectStoreCredentialObjectStoreCredential = new Civo.ObjectStoreCredential(\"backupIndex/objectStoreCredentialObjectStoreCredential\", new()\n    {\n        AccessKeyId = \"my-access-key\",\n        SecretAccessKey = \"my-secret-key\",\n    });\n\n    // Use the credential to create a bucket\n    var backupObjectStore = new Civo.ObjectStore(\"backupObjectStore\", new()\n    {\n        MaxSizeGb = 500,\n        Region = \"LON1\",\n        AccessKeyId = backupIndex / objectStoreCredentialObjectStoreCredential.AccessKeyId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := civo.LookupObjectStoreCredential(ctx, &civo.LookupObjectStoreCredentialArgs{\n\t\t\tName: pulumi.StringRef(\"backup-server\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a credential for the object store with a specific access key and secret key\n\t\t_, err = civo.NewObjectStoreCredential(ctx, \"backupIndex/objectStoreCredentialObjectStoreCredential\", &civo.ObjectStoreCredentialArgs{\n\t\t\tAccessKeyId:     pulumi.String(\"my-access-key\"),\n\t\t\tSecretAccessKey: pulumi.String(\"my-secret-key\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Use the credential to create a bucket\n\t\t_, err = civo.NewObjectStore(ctx, \"backupObjectStore\", &civo.ObjectStoreArgs{\n\t\t\tMaxSizeGb:   pulumi.Float64(500),\n\t\t\tRegion:      pulumi.String(\"LON1\"),\n\t\t\tAccessKeyId: pulumi.String(backupIndex / objectStoreCredentialObjectStoreCredential.AccessKeyId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.CivoFunctions;\nimport com.pulumi.civo.inputs.GetObjectStoreCredentialArgs;\nimport com.pulumi.civo.ObjectStoreCredential;\nimport com.pulumi.civo.ObjectStoreCredentialArgs;\nimport com.pulumi.civo.ObjectStore;\nimport com.pulumi.civo.ObjectStoreArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var backupObjectStoreCredential = CivoFunctions.getObjectStoreCredential(GetObjectStoreCredentialArgs.builder()\n            .name(\"backup-server\")\n            .build());\n\n        // Create a credential for the object store with a specific access key and secret key\n        var backupIndex_objectStoreCredentialObjectStoreCredential = new ObjectStoreCredential(\"backupIndex/objectStoreCredentialObjectStoreCredential\", ObjectStoreCredentialArgs.builder()\n            .accessKeyId(\"my-access-key\")\n            .secretAccessKey(\"my-secret-key\")\n            .build());\n\n        // Use the credential to create a bucket\n        var backupObjectStore = new ObjectStore(\"backupObjectStore\", ObjectStoreArgs.builder()\n            .maxSizeGb(500)\n            .region(\"LON1\")\n            .accessKeyId(backupIndex / objectStoreCredentialObjectStoreCredential.accessKeyId())\n            .build());\n\n    }\n}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nusing ID\n\n```sh\n$ pulumi import civo:index/objectStoreCredential:ObjectStoreCredential custom_object b8ecd2ab-2267-4a5e-8692-cbf1d32583e3\n```\n\n",
      "properties": {
        "accessKeyId": {
          "type": "string",
          "description": "The access key id of the Object Store Credential. It is generated by the provider.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the Object Store Credential. Must be unique.\n"
        },
        "objectStoreCredentialId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "region": {
          "type": "string",
          "description": "The region where the Object Store Credential will be created.\n"
        },
        "secretAccessKey": {
          "type": "string",
          "description": "The secret access key of the Object Store Credential. It is generated by the provider.\n"
        },
        "status": {
          "type": "string",
          "description": "The status of the Object Store Credential.\n"
        },
        "timeouts": {
          "$ref": "#/types/civo:index%2FObjectStoreCredentialTimeouts:ObjectStoreCredentialTimeouts"
        }
      },
      "type": "object",
      "required": [
        "accessKeyId",
        "name",
        "objectStoreCredentialId",
        "secretAccessKey",
        "status"
      ],
      "inputProperties": {
        "accessKeyId": {
          "type": "string",
          "description": "The access key id of the Object Store Credential. It is generated by the provider.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the Object Store Credential. Must be unique.\n"
        },
        "objectStoreCredentialId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "region": {
          "type": "string",
          "description": "The region where the Object Store Credential will be created.\n"
        },
        "secretAccessKey": {
          "type": "string",
          "description": "The secret access key of the Object Store Credential. It is generated by the provider.\n"
        },
        "timeouts": {
          "$ref": "#/types/civo:index%2FObjectStoreCredentialTimeouts:ObjectStoreCredentialTimeouts"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ObjectStoreCredential resources.\n",
        "properties": {
          "accessKeyId": {
            "type": "string",
            "description": "The access key id of the Object Store Credential. It is generated by the provider.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the Object Store Credential. Must be unique.\n"
          },
          "objectStoreCredentialId": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "region": {
            "type": "string",
            "description": "The region where the Object Store Credential will be created.\n"
          },
          "secretAccessKey": {
            "type": "string",
            "description": "The secret access key of the Object Store Credential. It is generated by the provider.\n"
          },
          "status": {
            "type": "string",
            "description": "The status of the Object Store Credential.\n"
          },
          "timeouts": {
            "$ref": "#/types/civo:index%2FObjectStoreCredentialTimeouts:ObjectStoreCredentialTimeouts"
          }
        },
        "type": "object"
      }
    },
    "civo:index/reservedIp:ReservedIp": {
      "description": "Provides a Civo reserved IP to represent a publicly-accessible static IP addresses that can be mapped to one of your Instancesor Load Balancer.\n\n## Example Usage\n\nA `civo.ReservedIp` can be assigned to an `civo-instance` either by setting `reserved_ipv4` field for `civo-instance` or using `civo.InstanceReservedIpAssignment` resource.\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\nconst www = new civo.ReservedIp(\"www\", {});\nconst webserver = new civo.Instance(\"webserver\", {reservedIpv4: www.ip});\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\nwww = civo.ReservedIp(\"www\")\nwebserver = civo.Instance(\"webserver\", reserved_ipv4=www.ip)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() => \n{\n    var www = new Civo.ReservedIp(\"www\");\n\n    var webserver = new Civo.Instance(\"webserver\", new()\n    {\n        ReservedIpv4 = www.Ip,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\twww, err := civo.NewReservedIp(ctx, \"www\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = civo.NewInstance(ctx, \"webserver\", &civo.InstanceArgs{\n\t\t\tReservedIpv4: www.Ip,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.ReservedIp;\nimport com.pulumi.civo.Instance;\nimport com.pulumi.civo.InstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var www = new ReservedIp(\"www\");\n\n        var webserver = new Instance(\"webserver\", InstanceArgs.builder()\n            .reservedIpv4(www.ip())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  www:\n    type: civo:ReservedIp\n  webserver:\n    type: civo:Instance\n    properties:\n      # ...  removed for brevity\n      reservedIpv4: ${www.ip}\n```\n<!--End PulumiCodeChooser -->\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\nconst www = new civo.ReservedIp(\"www\", {});\nconst webserver = new civo.Instance(\"webserver\", {});\n// ...  removed for brevity\nconst webserver_www = new civo.InstanceReservedIpAssignment(\"webserver-www\", {\n    instanceId: webserver.instanceId,\n    reservedIpId: www.reservedIpId,\n});\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\nwww = civo.ReservedIp(\"www\")\nwebserver = civo.Instance(\"webserver\")\n# ...  removed for brevity\nwebserver_www = civo.InstanceReservedIpAssignment(\"webserver-www\",\n    instance_id=webserver.instance_id,\n    reserved_ip_id=www.reserved_ip_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() => \n{\n    var www = new Civo.ReservedIp(\"www\");\n\n    var webserver = new Civo.Instance(\"webserver\");\n\n    // ...  removed for brevity\n    var webserver_www = new Civo.InstanceReservedIpAssignment(\"webserver-www\", new()\n    {\n        InstanceId = webserver.InstanceId,\n        ReservedIpId = www.ReservedIpId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\twww, err := civo.NewReservedIp(ctx, \"www\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\twebserver, err := civo.NewInstance(ctx, \"webserver\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = civo.NewInstanceReservedIpAssignment(ctx, \"webserver-www\", &civo.InstanceReservedIpAssignmentArgs{\n\t\t\tInstanceId:   webserver.InstanceId,\n\t\t\tReservedIpId: www.ReservedIpId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.ReservedIp;\nimport com.pulumi.civo.Instance;\nimport com.pulumi.civo.InstanceReservedIpAssignment;\nimport com.pulumi.civo.InstanceReservedIpAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var www = new ReservedIp(\"www\");\n\n        var webserver = new Instance(\"webserver\");\n\n        // ...  removed for brevity\n        var webserver_www = new InstanceReservedIpAssignment(\"webserver-www\", InstanceReservedIpAssignmentArgs.builder()\n            .instanceId(webserver.instanceId())\n            .reservedIpId(www.reservedIpId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  www:\n    type: civo:ReservedIp\n  webserver:\n    type: civo:Instance\n  webserver-www:\n    type: civo:InstanceReservedIpAssignment\n    properties:\n      instanceId: ${webserver.instanceId}\n      reservedIpId: ${www.reservedIpId}\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nterrafom import civo_reserved_ip.www 9f0e86fc-b2c6-46b4-82ed-2f28419f8ae3\n\n",
      "properties": {
        "ip": {
          "type": "string",
          "description": "The IP Address of the resource\n"
        },
        "name": {
          "type": "string",
          "description": "Name for the ip address\n"
        },
        "region": {
          "type": "string",
          "description": "The region of the ip\n"
        },
        "reservedIpId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        }
      },
      "type": "object",
      "required": [
        "ip",
        "name",
        "region",
        "reservedIpId"
      ],
      "inputProperties": {
        "name": {
          "type": "string",
          "description": "Name for the ip address\n"
        },
        "region": {
          "type": "string",
          "description": "The region of the ip\n"
        },
        "reservedIpId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        }
      },
      "stateInputs": {
        "description": "Input properties used for looking up and filtering ReservedIp resources.\n",
        "properties": {
          "ip": {
            "type": "string",
            "description": "The IP Address of the resource\n"
          },
          "name": {
            "type": "string",
            "description": "Name for the ip address\n"
          },
          "region": {
            "type": "string",
            "description": "The region of the ip\n"
          },
          "reservedIpId": {
            "type": "string",
            "description": "The ID of this resource.\n"
          }
        },
        "type": "object"
      }
    },
    "civo:index/sshKey:SshKey": {
      "description": "Provides a Civo SSH key resource to allow you to manage SSH keys for instance access. Keys created with this resource can be referenced in your instance configuration via their ID.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\nimport * as fs from \"fs\";\n\nconst my_user = new civo.SshKey(\"my-user\", {publicKey: fs.readFileSync(\"~/.ssh/id_rsa.pub\", \"utf8\")});\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\nmy_user = civo.SshKey(\"my-user\", public_key=(lambda path: open(path).read())(\"~/.ssh/id_rsa.pub\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() => \n{\n    var my_user = new Civo.SshKey(\"my-user\", new()\n    {\n        PublicKey = File.ReadAllText(\"~/.ssh/id_rsa.pub\"),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"os\"\n\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := os.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := civo.NewSshKey(ctx, \"my-user\", &civo.SshKeyArgs{\n\t\t\tPublicKey: pulumi.String(readFileOrPanic(\"~/.ssh/id_rsa.pub\")),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.SshKey;\nimport com.pulumi.civo.SshKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var my_user = new SshKey(\"my-user\", SshKeyArgs.builder()\n            .publicKey(Files.readString(Paths.get(\"~/.ssh/id_rsa.pub\")))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  my-user:\n    type: civo:SshKey\n    properties:\n      publicKey:\n        fn::readFile: ~/.ssh/id_rsa.pub\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nusing ID\n\n```sh\n$ pulumi import civo:index/sshKey:SshKey mykey 87ca2ee4-57d3-4420-b9b6-411b0b4b2a0e\n```\n\n",
      "properties": {
        "fingerprint": {
          "type": "string",
          "description": "a string containing the SSH finger print.\n"
        },
        "name": {
          "type": "string",
          "description": "a string that will be the reference for the SSH key.\n"
        },
        "publicKey": {
          "type": "string",
          "description": "a string containing the SSH public key.\n"
        },
        "sshKeyId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        }
      },
      "type": "object",
      "required": [
        "fingerprint",
        "name",
        "publicKey",
        "sshKeyId"
      ],
      "inputProperties": {
        "name": {
          "type": "string",
          "description": "a string that will be the reference for the SSH key.\n"
        },
        "publicKey": {
          "type": "string",
          "description": "a string containing the SSH public key.\n"
        },
        "sshKeyId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        }
      },
      "requiredInputs": [
        "publicKey"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering SshKey resources.\n",
        "properties": {
          "fingerprint": {
            "type": "string",
            "description": "a string containing the SSH finger print.\n"
          },
          "name": {
            "type": "string",
            "description": "a string that will be the reference for the SSH key.\n"
          },
          "publicKey": {
            "type": "string",
            "description": "a string containing the SSH public key.\n"
          },
          "sshKeyId": {
            "type": "string",
            "description": "The ID of this resource.\n"
          }
        },
        "type": "object"
      }
    },
    "civo:index/volume:Volume": {
      "description": "Provides a Civo volume which can be attached to an instance in order to provide expanded storage.\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\nconst defaultNetwork = civo.getNetwork({\n    label: \"Default\",\n});\n// Create volume\nconst db = new civo.Volume(\"db\", {\n    sizeGb: 5,\n    networkId: defaultNetwork.then(defaultNetwork => defaultNetwork.id),\n}, {\n    dependsOn: [defaultNetwork],\n});\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\ndefault_network = civo.get_network(label=\"Default\")\n# Create volume\ndb = civo.Volume(\"db\",\n    size_gb=5,\n    network_id=default_network.id,\n    opts = pulumi.ResourceOptions(depends_on=[default_network]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() => \n{\n    var defaultNetwork = Civo.GetNetwork.Invoke(new()\n    {\n        Label = \"Default\",\n    });\n\n    // Create volume\n    var db = new Civo.Volume(\"db\", new()\n    {\n        SizeGb = 5,\n        NetworkId = defaultNetwork.Apply(getNetworkResult => getNetworkResult.Id),\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            defaultNetwork,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdefaultNetwork, err := civo.LookupNetwork(ctx, &civo.LookupNetworkArgs{\n\t\t\tLabel: pulumi.StringRef(\"Default\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create volume\n\t\t_, err = civo.NewVolume(ctx, \"db\", &civo.VolumeArgs{\n\t\t\tSizeGb:    pulumi.Float64(5),\n\t\t\tNetworkId: pulumi.String(defaultNetwork.Id),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tdefaultNetwork,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.CivoFunctions;\nimport com.pulumi.civo.inputs.GetNetworkArgs;\nimport com.pulumi.civo.Volume;\nimport com.pulumi.civo.VolumeArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var defaultNetwork = CivoFunctions.getNetwork(GetNetworkArgs.builder()\n            .label(\"Default\")\n            .build());\n\n        // Create volume\n        var db = new Volume(\"db\", VolumeArgs.builder()\n            .sizeGb(5)\n            .networkId(defaultNetwork.applyValue(getNetworkResult -> getNetworkResult.id()))\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(defaultNetwork.applyValue(getNetworkResult -> getNetworkResult))\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Create volume\n  db:\n    type: civo:Volume\n    properties:\n      sizeGb: 5\n      networkId: ${defaultNetwork.id}\n    options:\n      dependsOn:\n        - ${defaultNetwork}\nvariables:\n  defaultNetwork:\n    fn::invoke:\n      function: civo:getNetwork\n      arguments:\n        label: Default\n```\n<!--End PulumiCodeChooser -->\n\n## Import\n\nusing ID\n\n```sh\n$ pulumi import civo:index/volume:Volume db 506f78a4-e098-11e5-ad9f-000f53306ae1\n```\n\n",
      "properties": {
        "mountPoint": {
          "type": "string",
          "description": "The mount point of the volume (from instance's perspective)\n"
        },
        "name": {
          "type": "string",
          "description": "A name that you wish to use to refer to this volume\n"
        },
        "networkId": {
          "type": "string",
          "description": "The network that the volume belongs to\n"
        },
        "region": {
          "type": "string",
          "description": "The region for the volume, if not declare we use the region in declared in the provider.\n"
        },
        "sizeGb": {
          "type": "number",
          "description": "A minimum of 1 and a maximum of your available disk space from your quota specifies the size of the volume in gigabytes\n"
        },
        "volumeId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "volumeType": {
          "type": "string",
          "description": "The type of the volume\n"
        }
      },
      "type": "object",
      "required": [
        "mountPoint",
        "name",
        "networkId",
        "sizeGb",
        "volumeId"
      ],
      "inputProperties": {
        "name": {
          "type": "string",
          "description": "A name that you wish to use to refer to this volume\n"
        },
        "networkId": {
          "type": "string",
          "description": "The network that the volume belongs to\n"
        },
        "region": {
          "type": "string",
          "description": "The region for the volume, if not declare we use the region in declared in the provider.\n"
        },
        "sizeGb": {
          "type": "number",
          "description": "A minimum of 1 and a maximum of your available disk space from your quota specifies the size of the volume in gigabytes\n"
        },
        "volumeId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "volumeType": {
          "type": "string",
          "description": "The type of the volume\n"
        }
      },
      "requiredInputs": [
        "networkId",
        "sizeGb"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Volume resources.\n",
        "properties": {
          "mountPoint": {
            "type": "string",
            "description": "The mount point of the volume (from instance's perspective)\n"
          },
          "name": {
            "type": "string",
            "description": "A name that you wish to use to refer to this volume\n"
          },
          "networkId": {
            "type": "string",
            "description": "The network that the volume belongs to\n"
          },
          "region": {
            "type": "string",
            "description": "The region for the volume, if not declare we use the region in declared in the provider.\n"
          },
          "sizeGb": {
            "type": "number",
            "description": "A minimum of 1 and a maximum of your available disk space from your quota specifies the size of the volume in gigabytes\n"
          },
          "volumeId": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "volumeType": {
            "type": "string",
            "description": "The type of the volume\n"
          }
        },
        "type": "object"
      }
    },
    "civo:index/volumeAttachment:VolumeAttachment": {
      "description": "Manages volume attachment/detachment to an instance.\n\n",
      "properties": {
        "attachAtBoot": {
          "type": "boolean",
          "description": "Whether to attach the instance to the volume at boot\n"
        },
        "instanceId": {
          "type": "string",
          "description": "The ID of target instance for attachment\n"
        },
        "region": {
          "type": "string",
          "description": "The region for the volume attachment\n"
        },
        "volumeAttachmentId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "volumeId": {
          "type": "string",
          "description": "The ID of target volume for attachment\n"
        }
      },
      "type": "object",
      "required": [
        "instanceId",
        "volumeAttachmentId",
        "volumeId"
      ],
      "inputProperties": {
        "attachAtBoot": {
          "type": "boolean",
          "description": "Whether to attach the instance to the volume at boot\n"
        },
        "instanceId": {
          "type": "string",
          "description": "The ID of target instance for attachment\n"
        },
        "region": {
          "type": "string",
          "description": "The region for the volume attachment\n"
        },
        "volumeAttachmentId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "volumeId": {
          "type": "string",
          "description": "The ID of target volume for attachment\n"
        }
      },
      "requiredInputs": [
        "instanceId",
        "volumeId"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering VolumeAttachment resources.\n",
        "properties": {
          "attachAtBoot": {
            "type": "boolean",
            "description": "Whether to attach the instance to the volume at boot\n"
          },
          "instanceId": {
            "type": "string",
            "description": "The ID of target instance for attachment\n"
          },
          "region": {
            "type": "string",
            "description": "The region for the volume attachment\n"
          },
          "volumeAttachmentId": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "volumeId": {
            "type": "string",
            "description": "The ID of target volume for attachment\n"
          }
        },
        "type": "object"
      }
    }
  },
  "functions": {
    "civo:index/getDatabase:getDatabase": {
      "description": "Get information of an Database for use in other resources. This data source provides all of the Database's properties as configured on your Civo account.\n\nNote: This data source returns a single Database. When specifying a name, an error will be raised if more than one Databases with the same name found.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\nconst test = civo.getDatabase({\n    name: \"test-database\",\n    region: \"LON1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\ntest = civo.get_database(name=\"test-database\",\n    region=\"LON1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Civo.GetDatabase.Invoke(new()\n    {\n        Name = \"test-database\",\n        Region = \"LON1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := civo.LookupDatabase(ctx, \u0026civo.LookupDatabaseArgs{\n\t\t\tName:   pulumi.StringRef(\"test-database\"),\n\t\t\tRegion: pulumi.StringRef(\"LON1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.CivoFunctions;\nimport com.pulumi.civo.inputs.GetDatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = CivoFunctions.getDatabase(GetDatabaseArgs.builder()\n            .name(\"test-database\")\n            .region(\"LON1\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: civo:getDatabase\n      arguments:\n        name: test-database\n        region: LON1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDatabase.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the Database\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the Database\n"
          },
          "region": {
            "type": "string",
            "description": "The region of an existing Database\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDatabase.\n",
        "properties": {
          "dnsEndpoint": {
            "description": "The DNS endpoint of the database\n",
            "type": "string"
          },
          "endpoint": {
            "description": "The endpoint of the database\n",
            "type": "string"
          },
          "engine": {
            "description": "The engine of the database\n",
            "type": "string"
          },
          "firewallId": {
            "description": "The firewall id of the Database\n",
            "type": "string"
          },
          "id": {
            "description": "The ID of the Database\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Database\n",
            "type": "string"
          },
          "networkId": {
            "description": "The network id of the Database\n",
            "type": "string"
          },
          "nodes": {
            "description": "Count of nodes\n",
            "type": "number"
          },
          "password": {
            "description": "The password of the database\n",
            "type": "string"
          },
          "port": {
            "description": "The port of the database\n",
            "type": "number"
          },
          "region": {
            "description": "The region of an existing Database\n",
            "type": "string"
          },
          "size": {
            "description": "Size of the database\n",
            "type": "string"
          },
          "status": {
            "description": "The status of the database\n",
            "type": "string"
          },
          "username": {
            "description": "The username of the database\n",
            "type": "string"
          },
          "version": {
            "description": "The version of the database\n",
            "type": "string"
          }
        },
        "required": [
          "dnsEndpoint",
          "endpoint",
          "engine",
          "firewallId",
          "networkId",
          "nodes",
          "password",
          "port",
          "region",
          "size",
          "status",
          "username",
          "version"
        ],
        "type": "object"
      }
    },
    "civo:index/getDatabaseVersion:getDatabaseVersion": {
      "description": "Retrieves information about the database versions that Civo supports, with the ability to filter the results.\n\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDatabaseVersion.\n",
        "properties": {
          "filters": {
            "type": "array",
            "items": {
              "$ref": "#/types/civo:index%2FgetDatabaseVersionFilter:getDatabaseVersionFilter"
            },
            "description": "One or more key/value pairs on which to filter results\n"
          },
          "id": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "sorts": {
            "type": "array",
            "items": {
              "$ref": "#/types/civo:index%2FgetDatabaseVersionSort:getDatabaseVersionSort"
            },
            "description": "One or more key/direction pairs on which to sort results\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDatabaseVersion.\n",
        "properties": {
          "filters": {
            "description": "One or more key/value pairs on which to filter results\n",
            "items": {
              "$ref": "#/types/civo:index%2FgetDatabaseVersionFilter:getDatabaseVersionFilter"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "sorts": {
            "description": "One or more key/direction pairs on which to sort results\n",
            "items": {
              "$ref": "#/types/civo:index%2FgetDatabaseVersionSort:getDatabaseVersionSort"
            },
            "type": "array"
          },
          "versions": {
            "items": {
              "$ref": "#/types/civo:index%2FgetDatabaseVersionVersion:getDatabaseVersionVersion"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "versions"
        ],
        "type": "object"
      }
    },
    "civo:index/getDiskImage:getDiskImage": {
      "description": "Get information on an disk image for use in other resources (e.g. creating a instance) with the ability to filter the results.\n\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDiskImage.\n",
        "properties": {
          "filters": {
            "type": "array",
            "items": {
              "$ref": "#/types/civo:index%2FgetDiskImageFilter:getDiskImageFilter"
            },
            "description": "One or more key/value pairs on which to filter results\n"
          },
          "id": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "region": {
            "type": "string",
            "description": "If is used, all disk image will be from this region. Required if no region is set in provider.\n"
          },
          "sorts": {
            "type": "array",
            "items": {
              "$ref": "#/types/civo:index%2FgetDiskImageSort:getDiskImageSort"
            },
            "description": "One or more key/direction pairs on which to sort results\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDiskImage.\n",
        "properties": {
          "diskimages": {
            "items": {
              "$ref": "#/types/civo:index%2FgetDiskImageDiskimage:getDiskImageDiskimage"
            },
            "type": "array"
          },
          "filters": {
            "description": "One or more key/value pairs on which to filter results\n",
            "items": {
              "$ref": "#/types/civo:index%2FgetDiskImageFilter:getDiskImageFilter"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "region": {
            "description": "If is used, all disk image will be from this region. Required if no region is set in provider.\n",
            "type": "string"
          },
          "sorts": {
            "description": "One or more key/direction pairs on which to sort results\n",
            "items": {
              "$ref": "#/types/civo:index%2FgetDiskImageSort:getDiskImageSort"
            },
            "type": "array"
          }
        },
        "required": [
          "diskimages",
          "id"
        ],
        "type": "object"
      }
    },
    "civo:index/getDnsDomainName:getDnsDomainName": {
      "description": "Get information on a domain. This data source provides the name and the id.\n\nAn error will be raised if the provided domain name is not in your Civo account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\nconst domain = civo.getDnsDomainName({\n    name: \"domain.com\",\n});\nexport const domainOutput = domain.then(domain =\u003e domain.name);\nexport const domainIdOutput = domain.then(domain =\u003e domain.id);\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\ndomain = civo.get_dns_domain_name(name=\"domain.com\")\npulumi.export(\"domainOutput\", domain.name)\npulumi.export(\"domainIdOutput\", domain.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var domain = Civo.GetDnsDomainName.Invoke(new()\n    {\n        Name = \"domain.com\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"domainOutput\"] = domain.Apply(getDnsDomainNameResult =\u003e getDnsDomainNameResult.Name),\n        [\"domainIdOutput\"] = domain.Apply(getDnsDomainNameResult =\u003e getDnsDomainNameResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdomain, err := civo.LookupDnsDomainName(ctx, \u0026civo.LookupDnsDomainNameArgs{\n\t\t\tName: pulumi.StringRef(\"domain.com\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"domainOutput\", domain.Name)\n\t\tctx.Export(\"domainIdOutput\", domain.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.CivoFunctions;\nimport com.pulumi.civo.inputs.GetDnsDomainNameArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var domain = CivoFunctions.getDnsDomainName(GetDnsDomainNameArgs.builder()\n            .name(\"domain.com\")\n            .build());\n\n        ctx.export(\"domainOutput\", domain.applyValue(getDnsDomainNameResult -\u003e getDnsDomainNameResult.name()));\n        ctx.export(\"domainIdOutput\", domain.applyValue(getDnsDomainNameResult -\u003e getDnsDomainNameResult.id()));\n    }\n}\n```\n```yaml\nvariables:\n  domain:\n    fn::invoke:\n      function: civo:getDnsDomainName\n      arguments:\n        name: domain.com\noutputs:\n  domainOutput: ${domain.name}\n  domainIdOutput: ${domain.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDnsDomainName.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the domain\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getDnsDomainName.\n",
        "properties": {
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the domain\n",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "civo:index/getDnsDomainRecord:getDnsDomainRecord": {
      "description": "Get information on a DNS record. This data source provides the name, TTL, and zone file as configured on your Civo account.\n\nAn error will be raised if the provided domain name or record are not in your Civo account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\nconst domain = civo.getDnsDomainName({\n    name: \"domain.com\",\n});\nconst www = domain.then(domain =\u003e civo.getDnsDomainRecord({\n    domainId: domain.id,\n    name: \"www\",\n}));\nexport const recordType = www.then(www =\u003e www.type);\nexport const recordTtl = www.then(www =\u003e www.ttl);\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\ndomain = civo.get_dns_domain_name(name=\"domain.com\")\nwww = civo.get_dns_domain_record(domain_id=domain.id,\n    name=\"www\")\npulumi.export(\"recordType\", www.type)\npulumi.export(\"recordTtl\", www.ttl)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var domain = Civo.GetDnsDomainName.Invoke(new()\n    {\n        Name = \"domain.com\",\n    });\n\n    var www = Civo.GetDnsDomainRecord.Invoke(new()\n    {\n        DomainId = domain.Apply(getDnsDomainNameResult =\u003e getDnsDomainNameResult.Id),\n        Name = \"www\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"recordType\"] = www.Apply(getDnsDomainRecordResult =\u003e getDnsDomainRecordResult.Type),\n        [\"recordTtl\"] = www.Apply(getDnsDomainRecordResult =\u003e getDnsDomainRecordResult.Ttl),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdomain, err := civo.LookupDnsDomainName(ctx, \u0026civo.LookupDnsDomainNameArgs{\n\t\t\tName: pulumi.StringRef(\"domain.com\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\twww, err := civo.LookupDnsDomainRecord(ctx, \u0026civo.LookupDnsDomainRecordArgs{\n\t\t\tDomainId: domain.Id,\n\t\t\tName:     \"www\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"recordType\", www.Type)\n\t\tctx.Export(\"recordTtl\", www.Ttl)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.CivoFunctions;\nimport com.pulumi.civo.inputs.GetDnsDomainNameArgs;\nimport com.pulumi.civo.inputs.GetDnsDomainRecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var domain = CivoFunctions.getDnsDomainName(GetDnsDomainNameArgs.builder()\n            .name(\"domain.com\")\n            .build());\n\n        final var www = CivoFunctions.getDnsDomainRecord(GetDnsDomainRecordArgs.builder()\n            .domainId(domain.applyValue(getDnsDomainNameResult -\u003e getDnsDomainNameResult.id()))\n            .name(\"www\")\n            .build());\n\n        ctx.export(\"recordType\", www.applyValue(getDnsDomainRecordResult -\u003e getDnsDomainRecordResult.type()));\n        ctx.export(\"recordTtl\", www.applyValue(getDnsDomainRecordResult -\u003e getDnsDomainRecordResult.ttl()));\n    }\n}\n```\n```yaml\nvariables:\n  domain:\n    fn::invoke:\n      function: civo:getDnsDomainName\n      arguments:\n        name: domain.com\n  www:\n    fn::invoke:\n      function: civo:getDnsDomainRecord\n      arguments:\n        domainId: ${domain.id}\n        name: www\noutputs:\n  recordType: ${www.type}\n  recordTtl: ${www.ttl}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getDnsDomainRecord.\n",
        "properties": {
          "domainId": {
            "type": "string",
            "description": "The ID of the domain\n"
          },
          "id": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the record\n"
          }
        },
        "type": "object",
        "required": [
          "domainId",
          "name"
        ]
      },
      "outputs": {
        "description": "A collection of values returned by getDnsDomainRecord.\n",
        "properties": {
          "accountId": {
            "description": "The ID account of the domain\n",
            "type": "string"
          },
          "createdAt": {
            "description": "The date when it was created in UTC format\n",
            "type": "string"
          },
          "domainId": {
            "description": "The ID of the domain\n",
            "type": "string"
          },
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the record\n",
            "type": "string"
          },
          "priority": {
            "description": "The priority of the record\n",
            "type": "number"
          },
          "ttl": {
            "description": "How long caching DNS servers should cache this record\n",
            "type": "number"
          },
          "type": {
            "description": "The choice of record type from A, CNAME, MX, SRV or TXT\n",
            "type": "string"
          },
          "updatedAt": {
            "description": "The date when it was updated in UTC format\n",
            "type": "string"
          },
          "value": {
            "description": "The IP address (A or MX), hostname (CNAME or MX) or text value (TXT) to serve for this record\n",
            "type": "string"
          }
        },
        "required": [
          "accountId",
          "createdAt",
          "domainId",
          "id",
          "name",
          "priority",
          "ttl",
          "type",
          "updatedAt",
          "value"
        ],
        "type": "object"
      }
    },
    "civo:index/getFirewall:getFirewall": {
      "description": "Retrieve information about a firewall for use in other resources.\n\nThis data source provides all of the firewall's properties as configured on your Civo account.\n\nFirewalls may be looked up by id or name, and you can optionally pass region if you want to make a lookup for a specific firewall inside that region.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\nconst test = civo.getFirewall({\n    name: \"test-firewall\",\n    region: \"LON1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\ntest = civo.get_firewall(name=\"test-firewall\",\n    region=\"LON1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Civo.GetFirewall.Invoke(new()\n    {\n        Name = \"test-firewall\",\n        Region = \"LON1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := civo.LookupFirewall(ctx, \u0026civo.LookupFirewallArgs{\n\t\t\tName:   pulumi.StringRef(\"test-firewall\"),\n\t\t\tRegion: pulumi.StringRef(\"LON1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.CivoFunctions;\nimport com.pulumi.civo.inputs.GetFirewallArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = CivoFunctions.getFirewall(GetFirewallArgs.builder()\n            .name(\"test-firewall\")\n            .region(\"LON1\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: civo:getFirewall\n      arguments:\n        name: test-firewall\n        region: LON1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getFirewall.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the firewall\n"
          },
          "region": {
            "type": "string",
            "description": "The region where the firewall is\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getFirewall.\n",
        "properties": {
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the firewall\n",
            "type": "string"
          },
          "networkId": {
            "description": "The id of the associated network\n",
            "type": "string"
          },
          "region": {
            "description": "The region where the firewall is\n",
            "type": "string"
          }
        },
        "required": [
          "networkId"
        ],
        "type": "object"
      }
    },
    "civo:index/getInstance:getInstance": {
      "description": "Get information on an instance for use in other resources. This data source provides all of the instance's properties as configured on your Civo account.\n\nNote: This data source returns a single instance. When specifying a hostname, an error will be raised if more than one instances found.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\nconst myhostaname = civo.getInstance({\n    hostname: \"myhostname.com\",\n});\nexport const instanceOutput = myhostaname.then(myhostaname =\u003e myhostaname.publicIp);\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\nmyhostaname = civo.get_instance(hostname=\"myhostname.com\")\npulumi.export(\"instanceOutput\", myhostaname.public_ip)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myhostaname = Civo.GetInstance.Invoke(new()\n    {\n        Hostname = \"myhostname.com\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"instanceOutput\"] = myhostaname.Apply(getInstanceResult =\u003e getInstanceResult.PublicIp),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyhostaname, err := civo.LookupInstance(ctx, \u0026civo.LookupInstanceArgs{\n\t\t\tHostname: pulumi.StringRef(\"myhostname.com\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"instanceOutput\", myhostaname.PublicIp)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.CivoFunctions;\nimport com.pulumi.civo.inputs.GetInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myhostaname = CivoFunctions.getInstance(GetInstanceArgs.builder()\n            .hostname(\"myhostname.com\")\n            .build());\n\n        ctx.export(\"instanceOutput\", myhostaname.applyValue(getInstanceResult -\u003e getInstanceResult.publicIp()));\n    }\n}\n```\n```yaml\nvariables:\n  myhostaname:\n    fn::invoke:\n      function: civo:getInstance\n      arguments:\n        hostname: myhostname.com\noutputs:\n  instanceOutput: ${myhostaname.publicIp}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getInstance.\n",
        "properties": {
          "hostname": {
            "type": "string",
            "description": "The hostname of the Instance\n"
          },
          "id": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "region": {
            "type": "string",
            "description": "The region of an existing Instance\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getInstance.\n",
        "properties": {
          "cpuCores": {
            "description": "Total cpu of the instance\n",
            "type": "number"
          },
          "createdAt": {
            "description": "The date of creation of the instance\n",
            "type": "string"
          },
          "diskGb": {
            "description": "The size of the disk\n",
            "type": "number"
          },
          "firewallId": {
            "description": "The ID of the firewall used\n",
            "type": "string"
          },
          "hostname": {
            "description": "The hostname of the Instance\n",
            "type": "string"
          },
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "initialPassword": {
            "description": "Instance initial password\n",
            "type": "string"
          },
          "initialUser": {
            "description": "The name of the initial user created on the server\n",
            "type": "string"
          },
          "networkId": {
            "description": "his will be the ID of the network\n",
            "type": "string"
          },
          "notes": {
            "description": "The notes of the instance\n",
            "type": "string"
          },
          "privateIp": {
            "description": "The private IP\n",
            "type": "string"
          },
          "pseudoIp": {
            "description": "Is the ip that is used to route the public ip from the internet to the instance using NAT\n",
            "type": "string"
          },
          "publicIp": {
            "description": "The public IP\n",
            "type": "string"
          },
          "ramMb": {
            "description": "Total ram of the instance\n",
            "type": "number"
          },
          "region": {
            "description": "The region of an existing Instance\n",
            "type": "string"
          },
          "reverseDns": {
            "description": "A fully qualified domain name\n",
            "type": "string"
          },
          "script": {
            "description": "The contents of a script uploaded\n",
            "type": "string"
          },
          "size": {
            "description": "The name of the size\n",
            "type": "string"
          },
          "sshkeyId": {
            "description": "The ID SSH key\n",
            "type": "string"
          },
          "status": {
            "description": "The status of the instance\n",
            "type": "string"
          },
          "tags": {
            "description": "An optional list of tags\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "template": {
            "description": "The ID for the disk image/template to used to build the instance\n",
            "type": "string"
          }
        },
        "required": [
          "cpuCores",
          "createdAt",
          "diskGb",
          "firewallId",
          "initialPassword",
          "initialUser",
          "networkId",
          "notes",
          "privateIp",
          "pseudoIp",
          "publicIp",
          "ramMb",
          "reverseDns",
          "script",
          "size",
          "sshkeyId",
          "status",
          "tags",
          "template"
        ],
        "type": "object"
      }
    },
    "civo:index/getInstances:getInstances": {
      "description": "Get information on instances for use in other resources, with the ability to filter and sort the results. If no filters are specified, all instances will be returned.\n\nNote: You can use the `civo.Instance` data source to obtain metadata about a single instance if you already know the id, unique hostname, or unique tag to retrieve.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\nconst small_size = civo.getInstances({\n    region: \"LON1\",\n    filters: [{\n        key: \"size\",\n        values: [g3.small],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\nsmall_size = civo.get_instances(region=\"LON1\",\n    filters=[{\n        \"key\": \"size\",\n        \"values\": [g3[\"small\"]],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var small_size = Civo.GetInstances.Invoke(new()\n    {\n        Region = \"LON1\",\n        Filters = new[]\n        {\n            new Civo.Inputs.GetInstancesFilterInputArgs\n            {\n                Key = \"size\",\n                Values = new[]\n                {\n                    g3.Small,\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\n_, err := civo.GetInstances(ctx, \u0026civo.GetInstancesArgs{\nRegion: pulumi.StringRef(\"LON1\"),\nFilters: []civo.GetInstancesFilter{\n{\nKey: \"size\",\nValues: interface{}{\ng3.Small,\n},\n},\n},\n}, nil);\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.CivoFunctions;\nimport com.pulumi.civo.inputs.GetInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var small-size = CivoFunctions.getInstances(GetInstancesArgs.builder()\n            .region(\"LON1\")\n            .filters(GetInstancesFilterArgs.builder()\n                .key(\"size\")\n                .values(g3.small())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  small-size:\n    fn::invoke:\n      function: civo:getInstances\n      arguments:\n        region: LON1\n        filters:\n          - key: size\n            values:\n              - ${g3.small}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getInstances.\n",
        "properties": {
          "filters": {
            "type": "array",
            "items": {
              "$ref": "#/types/civo:index%2FgetInstancesFilter:getInstancesFilter"
            },
            "description": "One or more key/value pairs on which to filter results\n"
          },
          "id": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "region": {
            "type": "string",
            "description": "If used, all instances will be from the provided region\n"
          },
          "sorts": {
            "type": "array",
            "items": {
              "$ref": "#/types/civo:index%2FgetInstancesSort:getInstancesSort"
            },
            "description": "One or more key/direction pairs on which to sort results\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getInstances.\n",
        "properties": {
          "filters": {
            "description": "One or more key/value pairs on which to filter results\n",
            "items": {
              "$ref": "#/types/civo:index%2FgetInstancesFilter:getInstancesFilter"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "instances": {
            "items": {
              "$ref": "#/types/civo:index%2FgetInstancesInstance:getInstancesInstance"
            },
            "type": "array"
          },
          "region": {
            "description": "If used, all instances will be from the provided region\n",
            "type": "string"
          },
          "sorts": {
            "description": "One or more key/direction pairs on which to sort results\n",
            "items": {
              "$ref": "#/types/civo:index%2FgetInstancesSort:getInstancesSort"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "instances"
        ],
        "type": "object"
      }
    },
    "civo:index/getKubernetesCluster:getKubernetesCluster": {
      "description": "Provides a Civo Kubernetes cluster data source.\n\nNote: This data source returns a single Kubernetes cluster. When specifying a name, an error will be raised if more than one Kubernetes cluster found.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\nconst my_cluster = civo.getKubernetesCluster({\n    name: \"my-super-cluster\",\n});\nexport const kubernetesClusterOutput = my_cluster.then(my_cluster =\u003e my_cluster.masterIp);\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\nmy_cluster = civo.get_kubernetes_cluster(name=\"my-super-cluster\")\npulumi.export(\"kubernetesClusterOutput\", my_cluster.master_ip)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var my_cluster = Civo.GetKubernetesCluster.Invoke(new()\n    {\n        Name = \"my-super-cluster\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"kubernetesClusterOutput\"] = my_cluster.Apply(my_cluster =\u003e my_cluster.Apply(getKubernetesClusterResult =\u003e getKubernetesClusterResult.MasterIp)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmy_cluster, err := civo.LookupKubernetesCluster(ctx, \u0026civo.LookupKubernetesClusterArgs{\n\t\t\tName: pulumi.StringRef(\"my-super-cluster\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"kubernetesClusterOutput\", my_cluster.MasterIp)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.CivoFunctions;\nimport com.pulumi.civo.inputs.GetKubernetesClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var my-cluster = CivoFunctions.getKubernetesCluster(GetKubernetesClusterArgs.builder()\n            .name(\"my-super-cluster\")\n            .build());\n\n        ctx.export(\"kubernetesClusterOutput\", my_cluster.masterIp());\n    }\n}\n```\n```yaml\nvariables:\n  my-cluster:\n    fn::invoke:\n      function: civo:getKubernetesCluster\n      arguments:\n        name: my-super-cluster\noutputs:\n  kubernetesClusterOutput: ${[\"my-cluster\"].masterIp}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getKubernetesCluster.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the Kubernetes Cluster\n"
          },
          "region": {
            "type": "string",
            "description": "The region where cluster is running\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getKubernetesCluster.\n",
        "properties": {
          "apiEndpoint": {
            "description": "The base URL of the API server on the Kubernetes master node\n",
            "type": "string"
          },
          "applications": {
            "description": "A list of application installed\n",
            "type": "string"
          },
          "cni": {
            "description": "The cni for the k3s to install (the default is `flannel`) valid options are `cilium` or `flannel`\n",
            "type": "string"
          },
          "createdAt": {
            "description": "The date where the Kubernetes cluster was create\n",
            "type": "string"
          },
          "dnsEntry": {
            "description": "The unique dns entry for the cluster in this case point to the master\n",
            "type": "string"
          },
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "installedApplications": {
            "items": {
              "$ref": "#/types/civo:index%2FgetKubernetesClusterInstalledApplication:getKubernetesClusterInstalledApplication"
            },
            "type": "array"
          },
          "kubeconfig": {
            "description": "A representation of the Kubernetes cluster's kubeconfig in yaml format\n",
            "type": "string"
          },
          "kubernetesVersion": {
            "description": "The version of Kubernetes\n",
            "type": "string"
          },
          "masterIp": {
            "description": "The IP of the Kubernetes master node\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Kubernetes Cluster\n",
            "type": "string"
          },
          "numTargetNodes": {
            "deprecationMessage": "Deprecated",
            "description": "The size of the Kubernetes cluster\n",
            "type": "number"
          },
          "pools": {
            "items": {
              "$ref": "#/types/civo:index%2FgetKubernetesClusterPool:getKubernetesClusterPool"
            },
            "type": "array"
          },
          "ready": {
            "description": "If the Kubernetes cluster is ready\n",
            "type": "boolean"
          },
          "region": {
            "description": "The region where cluster is running\n",
            "type": "string"
          },
          "status": {
            "description": "The status of Kubernetes cluster\n",
            "type": "string"
          },
          "tags": {
            "description": "A list of tags\n",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "targetNodesSize": {
            "deprecationMessage": "Deprecated",
            "description": "The size of each node\n",
            "type": "string"
          },
          "volumeType": {
            "type": "string"
          }
        },
        "required": [
          "apiEndpoint",
          "applications",
          "cni",
          "createdAt",
          "dnsEntry",
          "installedApplications",
          "kubeconfig",
          "kubernetesVersion",
          "masterIp",
          "numTargetNodes",
          "pools",
          "ready",
          "status",
          "tags",
          "targetNodesSize",
          "volumeType"
        ],
        "type": "object"
      }
    },
    "civo:index/getKubernetesVersion:getKubernetesVersion": {
      "description": "Provides access to the available Civo Kubernetes versions, with the ability to filter the results.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\nconst talos = civo.getKubernetesVersion({\n    filters: [{\n        key: \"type\",\n        values: [\"talos\"],\n    }],\n});\nconst k3s = civo.getKubernetesVersion({\n    filters: [{\n        key: \"type\",\n        values: [\"k3s\"],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\ntalos = civo.get_kubernetes_version(filters=[{\n    \"key\": \"type\",\n    \"values\": [\"talos\"],\n}])\nk3s = civo.get_kubernetes_version(filters=[{\n    \"key\": \"type\",\n    \"values\": [\"k3s\"],\n}])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var talos = Civo.GetKubernetesVersion.Invoke(new()\n    {\n        Filters = new[]\n        {\n            new Civo.Inputs.GetKubernetesVersionFilterInputArgs\n            {\n                Key = \"type\",\n                Values = new[]\n                {\n                    \"talos\",\n                },\n            },\n        },\n    });\n\n    var k3s = Civo.GetKubernetesVersion.Invoke(new()\n    {\n        Filters = new[]\n        {\n            new Civo.Inputs.GetKubernetesVersionFilterInputArgs\n            {\n                Key = \"type\",\n                Values = new[]\n                {\n                    \"k3s\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := civo.GetKubernetesVersion(ctx, \u0026civo.GetKubernetesVersionArgs{\n\t\t\tFilters: []civo.GetKubernetesVersionFilter{\n\t\t\t\t{\n\t\t\t\t\tKey: \"type\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"talos\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = civo.GetKubernetesVersion(ctx, \u0026civo.GetKubernetesVersionArgs{\n\t\t\tFilters: []civo.GetKubernetesVersionFilter{\n\t\t\t\t{\n\t\t\t\t\tKey: \"type\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"k3s\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.CivoFunctions;\nimport com.pulumi.civo.inputs.GetKubernetesVersionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var talos = CivoFunctions.getKubernetesVersion(GetKubernetesVersionArgs.builder()\n            .filters(GetKubernetesVersionFilterArgs.builder()\n                .key(\"type\")\n                .values(\"talos\")\n                .build())\n            .build());\n\n        final var k3s = CivoFunctions.getKubernetesVersion(GetKubernetesVersionArgs.builder()\n            .filters(GetKubernetesVersionFilterArgs.builder()\n                .key(\"type\")\n                .values(\"k3s\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  talos:\n    fn::invoke:\n      function: civo:getKubernetesVersion\n      arguments:\n        filters:\n          - key: type\n            values:\n              - talos\n  k3s:\n    fn::invoke:\n      function: civo:getKubernetesVersion\n      arguments:\n        filters:\n          - key: type\n            values:\n              - k3s\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getKubernetesVersion.\n",
        "properties": {
          "filters": {
            "type": "array",
            "items": {
              "$ref": "#/types/civo:index%2FgetKubernetesVersionFilter:getKubernetesVersionFilter"
            },
            "description": "One or more key/value pairs on which to filter results\n"
          },
          "id": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "sorts": {
            "type": "array",
            "items": {
              "$ref": "#/types/civo:index%2FgetKubernetesVersionSort:getKubernetesVersionSort"
            },
            "description": "One or more key/direction pairs on which to sort results\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getKubernetesVersion.\n",
        "properties": {
          "filters": {
            "description": "One or more key/value pairs on which to filter results\n",
            "items": {
              "$ref": "#/types/civo:index%2FgetKubernetesVersionFilter:getKubernetesVersionFilter"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "sorts": {
            "description": "One or more key/direction pairs on which to sort results\n",
            "items": {
              "$ref": "#/types/civo:index%2FgetKubernetesVersionSort:getKubernetesVersionSort"
            },
            "type": "array"
          },
          "versions": {
            "items": {
              "$ref": "#/types/civo:index%2FgetKubernetesVersionVersion:getKubernetesVersionVersion"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "versions"
        ],
        "type": "object"
      }
    },
    "civo:index/getLoadbalancer:getLoadbalancer": {
      "description": "Get information on a load balancer for use in other resources. This data source provides all of the load balancers properties as configured on your Civo account.\n\nAn error will be raised if the provided load balancer name does not exist in your Civo account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\nconst my_lb = civo.getLoadbalancer({\n    name: \"lb-name\",\n    region: \"LON1\",\n});\nexport const civoLoadbalancerOutput = my_lb.then(my_lb =\u003e my_lb.publicIp);\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\nmy_lb = civo.get_loadbalancer(name=\"lb-name\",\n    region=\"LON1\")\npulumi.export(\"civoLoadbalancerOutput\", my_lb.public_ip)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var my_lb = Civo.GetLoadbalancer.Invoke(new()\n    {\n        Name = \"lb-name\",\n        Region = \"LON1\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"civoLoadbalancerOutput\"] = my_lb.Apply(my_lb =\u003e my_lb.Apply(getLoadbalancerResult =\u003e getLoadbalancerResult.PublicIp)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmy_lb, err := civo.GetLoadbalancer(ctx, \u0026civo.GetLoadbalancerArgs{\n\t\t\tName:   pulumi.StringRef(\"lb-name\"),\n\t\t\tRegion: pulumi.StringRef(\"LON1\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"civoLoadbalancerOutput\", my_lb.PublicIp)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.CivoFunctions;\nimport com.pulumi.civo.inputs.GetLoadbalancerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var my-lb = CivoFunctions.getLoadbalancer(GetLoadbalancerArgs.builder()\n            .name(\"lb-name\")\n            .region(\"LON1\")\n            .build());\n\n        ctx.export(\"civoLoadbalancerOutput\", my_lb.publicIp());\n    }\n}\n```\n```yaml\nvariables:\n  my-lb:\n    fn::invoke:\n      function: civo:getLoadbalancer\n      arguments:\n        name: lb-name\n        region: LON1\noutputs:\n  civoLoadbalancerOutput: ${[\"my-lb\"].publicIp}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getLoadbalancer.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the load balancer to retrieve (You can find this id from service annotations 'kubernetes.civo.com/loadbalancer-id')\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the load balancer (You can find this name from service annotations 'kubernetes.civo.com/loadbalancer-name')\n"
          },
          "region": {
            "type": "string",
            "description": "The region of the load balancer, if you declare this field, the datasource will use this value instead of the one defined in the provider\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getLoadbalancer.\n",
        "properties": {
          "algorithm": {
            "description": "The algorithm used by the load balancer\n",
            "type": "string"
          },
          "backends": {
            "items": {
              "$ref": "#/types/civo:index%2FgetLoadbalancerBackend:getLoadbalancerBackend"
            },
            "type": "array"
          },
          "clusterId": {
            "description": "The cluster id of the load balancer\n",
            "type": "string"
          },
          "enableProxyProtocol": {
            "description": "The enabled proxy protocol of the load balancer\n",
            "type": "string"
          },
          "externalTrafficPolicy": {
            "description": "The external traffic policy of the load balancer\n",
            "type": "string"
          },
          "firewallId": {
            "description": "The firewall id of the load balancer\n",
            "type": "string"
          },
          "id": {
            "description": "The id of the load balancer to retrieve (You can find this id from service annotations 'kubernetes.civo.com/loadbalancer-id')\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the load balancer (You can find this name from service annotations 'kubernetes.civo.com/loadbalancer-name')\n",
            "type": "string"
          },
          "privateIp": {
            "description": "The private ip of the load balancer\n",
            "type": "string"
          },
          "publicIp": {
            "description": "The public ip of the load balancer\n",
            "type": "string"
          },
          "region": {
            "description": "The region of the load balancer, if you declare this field, the datasource will use this value instead of the one defined in the provider\n",
            "type": "string"
          },
          "sessionAffinity": {
            "description": "The session affinity of the load balancer\n",
            "type": "string"
          },
          "sessionAffinityConfigTimeout": {
            "description": "The session affinity config timeout of the load balancer\n",
            "type": "number"
          },
          "state": {
            "description": "The state of the load balancer\n",
            "type": "string"
          }
        },
        "required": [
          "algorithm",
          "backends",
          "clusterId",
          "enableProxyProtocol",
          "externalTrafficPolicy",
          "firewallId",
          "privateIp",
          "publicIp",
          "sessionAffinity",
          "sessionAffinityConfigTimeout",
          "state"
        ],
        "type": "object"
      }
    },
    "civo:index/getNetwork:getNetwork": {
      "description": "Retrieve information about a network for use in other resources.\n\nThis data source provides all of the network's properties as configured on your Civo account.\n\nNetworks may be looked up by id or label, and you can optionally pass region if you want to make a lookup for a specific network inside that region.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.CivoFunctions;\nimport com.pulumi.civo.inputs.GetNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = CivoFunctions.getNetwork(GetNetworkArgs.builder()\n            .cidrV4(\"10.0.0.0/24\")\n            .label(\"test-network\")\n            .nameserversV4(            \n                \"8.8.8.8\",\n                \"8.8.4.4\",\n                \"1.1.1.1\")\n            .region(\"LON1\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: civo:getNetwork\n      arguments:\n        cidrV4: 10.0.0.0/24\n        label: test-network\n        nameserversV4:\n          - 8.8.8.8\n          - 8.8.4.4\n          - 1.1.1.1\n        region: LON1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getNetwork.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "label": {
            "type": "string",
            "description": "The label of an existing network\n"
          },
          "region": {
            "type": "string",
            "description": "The region of an existing network\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getNetwork.\n",
        "properties": {
          "default": {
            "description": "If is the default network\n",
            "type": "boolean"
          },
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "label": {
            "description": "The label of an existing network\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the network\n",
            "type": "string"
          },
          "region": {
            "description": "The region of an existing network\n",
            "type": "string"
          }
        },
        "required": [
          "default",
          "name"
        ],
        "type": "object"
      }
    },
    "civo:index/getObjectStore:getObjectStore": {
      "description": "Get information of an Object Store for use in other resources. This data source provides all of the Object Store's properties as configured on your Civo account.\n\nNote: This data source returns a single Object Store. When specifying a name, an error will be raised if more than one Object Stores with the same name found.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\nconst backup = civo.getObjectStore({\n    name: \"backup-server\",\n});\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\nbackup = civo.get_object_store(name=\"backup-server\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var backup = Civo.GetObjectStore.Invoke(new()\n    {\n        Name = \"backup-server\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := civo.LookupObjectStore(ctx, \u0026civo.LookupObjectStoreArgs{\n\t\t\tName: pulumi.StringRef(\"backup-server\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.CivoFunctions;\nimport com.pulumi.civo.inputs.GetObjectStoreArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var backup = CivoFunctions.getObjectStore(GetObjectStoreArgs.builder()\n            .name(\"backup-server\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  backup:\n    fn::invoke:\n      function: civo:getObjectStore\n      arguments:\n        name: backup-server\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getObjectStore.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the Object Store\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the Object Store\n"
          },
          "region": {
            "type": "string",
            "description": "The region of an existing Object Store\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getObjectStore.\n",
        "properties": {
          "accessKeyId": {
            "description": "The access key ID from the Object Store credential. If this is not set, a new credential will be created.\n",
            "type": "string"
          },
          "bucketUrl": {
            "description": "The endpoint of the Object Store\n",
            "type": "string"
          },
          "id": {
            "description": "The ID of the Object Store\n",
            "type": "string"
          },
          "maxSizeGb": {
            "description": "The maximum size of the Object Store\n",
            "type": "number"
          },
          "name": {
            "description": "The name of the Object Store\n",
            "type": "string"
          },
          "region": {
            "description": "The region of an existing Object Store\n",
            "type": "string"
          },
          "status": {
            "description": "The status of the Object Store\n",
            "type": "string"
          }
        },
        "required": [
          "accessKeyId",
          "bucketUrl",
          "maxSizeGb",
          "status"
        ],
        "type": "object"
      }
    },
    "civo:index/getObjectStoreCredential:getObjectStoreCredential": {
      "description": "Get information of an Object Store Credential for use in other resources. This data source provides all of the Object Store Credential's properties as configured on your Civo account.\n\nNote: This data source returns a single Object Store Credential. When specifying a name, an error will be raised if more than one Object Store Credentials with the same name found.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\nconst backupObjectStoreCredential = civo.getObjectStoreCredential({\n    name: \"backup-server\",\n});\n// Use the credential to create a bucket\nconst backupObjectStore = new civo.ObjectStore(\"backupObjectStore\", {\n    maxSizeGb: 500,\n    region: \"LON1\",\n    accessKeyId: backupObjectStoreCredential.then(backupObjectStoreCredential =\u003e backupObjectStoreCredential.accessKeyId),\n});\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\nbackup_object_store_credential = civo.get_object_store_credential(name=\"backup-server\")\n# Use the credential to create a bucket\nbackup_object_store = civo.ObjectStore(\"backupObjectStore\",\n    max_size_gb=500,\n    region=\"LON1\",\n    access_key_id=backup_object_store_credential.access_key_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var backupObjectStoreCredential = Civo.GetObjectStoreCredential.Invoke(new()\n    {\n        Name = \"backup-server\",\n    });\n\n    // Use the credential to create a bucket\n    var backupObjectStore = new Civo.ObjectStore(\"backupObjectStore\", new()\n    {\n        MaxSizeGb = 500,\n        Region = \"LON1\",\n        AccessKeyId = backupObjectStoreCredential.Apply(getObjectStoreCredentialResult =\u003e getObjectStoreCredentialResult.AccessKeyId),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbackupObjectStoreCredential, err := civo.LookupObjectStoreCredential(ctx, \u0026civo.LookupObjectStoreCredentialArgs{\n\t\t\tName: pulumi.StringRef(\"backup-server\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Use the credential to create a bucket\n\t\t_, err = civo.NewObjectStore(ctx, \"backupObjectStore\", \u0026civo.ObjectStoreArgs{\n\t\t\tMaxSizeGb:   pulumi.Float64(500),\n\t\t\tRegion:      pulumi.String(\"LON1\"),\n\t\t\tAccessKeyId: pulumi.String(backupObjectStoreCredential.AccessKeyId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.CivoFunctions;\nimport com.pulumi.civo.inputs.GetObjectStoreCredentialArgs;\nimport com.pulumi.civo.ObjectStore;\nimport com.pulumi.civo.ObjectStoreArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var backupObjectStoreCredential = CivoFunctions.getObjectStoreCredential(GetObjectStoreCredentialArgs.builder()\n            .name(\"backup-server\")\n            .build());\n\n        // Use the credential to create a bucket\n        var backupObjectStore = new ObjectStore(\"backupObjectStore\", ObjectStoreArgs.builder()\n            .maxSizeGb(500)\n            .region(\"LON1\")\n            .accessKeyId(backupObjectStoreCredential.applyValue(getObjectStoreCredentialResult -\u003e getObjectStoreCredentialResult.accessKeyId()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Use the credential to create a bucket\n  backupObjectStore:\n    type: civo:ObjectStore\n    properties:\n      maxSizeGb: 500\n      region: LON1\n      accessKeyId: ${backupObjectStoreCredential.accessKeyId}\nvariables:\n  backupObjectStoreCredential:\n    fn::invoke:\n      function: civo:getObjectStoreCredential\n      arguments:\n        name: backup-server\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getObjectStoreCredential.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the Object Store Credential\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the Object Store Credential\n"
          },
          "region": {
            "type": "string",
            "description": "The region of an existing Object Store\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getObjectStoreCredential.\n",
        "properties": {
          "accessKeyId": {
            "description": "The access key id of the Object Store Credential\n",
            "type": "string"
          },
          "id": {
            "description": "The ID of the Object Store Credential\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the Object Store Credential\n",
            "type": "string"
          },
          "region": {
            "description": "The region of an existing Object Store\n",
            "type": "string"
          },
          "secretAccessKey": {
            "description": "The secret access key of the Object Store Credential\n",
            "type": "string"
          },
          "status": {
            "description": "The status of the Object Store Credential\n",
            "type": "string"
          }
        },
        "required": [
          "accessKeyId",
          "secretAccessKey",
          "status"
        ],
        "type": "object"
      }
    },
    "civo:index/getRegion:getRegion": {
      "description": "Retrieves information about the region that Civo supports, with the ability to filter the results.\n\n",
      "inputs": {
        "description": "A collection of arguments for invoking getRegion.\n",
        "properties": {
          "filters": {
            "type": "array",
            "items": {
              "$ref": "#/types/civo:index%2FgetRegionFilter:getRegionFilter"
            },
            "description": "One or more key/value pairs on which to filter results\n"
          },
          "id": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "sorts": {
            "type": "array",
            "items": {
              "$ref": "#/types/civo:index%2FgetRegionSort:getRegionSort"
            },
            "description": "One or more key/direction pairs on which to sort results\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getRegion.\n",
        "properties": {
          "filters": {
            "description": "One or more key/value pairs on which to filter results\n",
            "items": {
              "$ref": "#/types/civo:index%2FgetRegionFilter:getRegionFilter"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "regions": {
            "items": {
              "$ref": "#/types/civo:index%2FgetRegionRegion:getRegionRegion"
            },
            "type": "array"
          },
          "sorts": {
            "description": "One or more key/direction pairs on which to sort results\n",
            "items": {
              "$ref": "#/types/civo:index%2FgetRegionSort:getRegionSort"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "regions"
        ],
        "type": "object"
      }
    },
    "civo:index/getReservedIp:getReservedIp": {
      "inputs": {
        "description": "A collection of arguments for invoking getReservedIp.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "ID for the ip address\n"
          },
          "name": {
            "type": "string",
            "description": "Name for the ip address\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getReservedIp.\n",
        "properties": {
          "id": {
            "description": "ID for the ip address\n",
            "type": "string"
          },
          "instanceId": {
            "description": "The ID of the instance the IP is attached to\n",
            "type": "string"
          },
          "instanceName": {
            "description": "The name of the instance the IP is attached to\n",
            "type": "string"
          },
          "ip": {
            "description": "The IP Address requested\n",
            "type": "string"
          },
          "name": {
            "description": "Name for the ip address\n",
            "type": "string"
          },
          "region": {
            "description": "The region the ip address is in\n",
            "type": "string"
          }
        },
        "required": [
          "instanceId",
          "instanceName",
          "ip",
          "region"
        ],
        "type": "object"
      }
    },
    "civo:index/getSize:getSize": {
      "description": "Retrieves information about the sizes that Civo supports, with the ability to filter the results.\n\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSize.\n",
        "properties": {
          "filters": {
            "type": "array",
            "items": {
              "$ref": "#/types/civo:index%2FgetSizeFilter:getSizeFilter"
            },
            "description": "One or more key/value pairs on which to filter results\n"
          },
          "id": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "sorts": {
            "type": "array",
            "items": {
              "$ref": "#/types/civo:index%2FgetSizeSort:getSizeSort"
            },
            "description": "One or more key/direction pairs on which to sort results\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSize.\n",
        "properties": {
          "filters": {
            "description": "One or more key/value pairs on which to filter results\n",
            "items": {
              "$ref": "#/types/civo:index%2FgetSizeFilter:getSizeFilter"
            },
            "type": "array"
          },
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "sizes": {
            "items": {
              "$ref": "#/types/civo:index%2FgetSizeSize:getSizeSize"
            },
            "type": "array"
          },
          "sorts": {
            "description": "One or more key/direction pairs on which to sort results\n",
            "items": {
              "$ref": "#/types/civo:index%2FgetSizeSort:getSizeSort"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "sizes"
        ],
        "type": "object"
      }
    },
    "civo:index/getSshKey:getSshKey": {
      "description": "Get information on a SSH key. This data source provides the name, and fingerprint as configured on your Civo account.\n\nAn error will be raised if the provided SSH key name does not exist in your Civo account.\n\n",
      "inputs": {
        "description": "A collection of arguments for invoking getSshKey.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the SSH key\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getSshKey.\n",
        "properties": {
          "fingerprint": {
            "description": "The fingerprint of the public key of the SSH key\n",
            "type": "string"
          },
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the SSH key\n",
            "type": "string"
          }
        },
        "required": [
          "fingerprint"
        ],
        "type": "object"
      }
    },
    "civo:index/getVolume:getVolume": {
      "description": "Get information on a volume for use in other resources. This data source provides all of the volumes properties as configured on your Civo account.\n\nAn error will be raised if the provided volume name does not exist in your Civo account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as civo from \"@pulumi/civo\";\n\nconst myvolume = civo.getVolume({\n    name: \"test-volume-name\",\n});\nexport const volumeOutput = myvolume;\n```\n```python\nimport pulumi\nimport pulumi_civo as civo\n\nmyvolume = civo.get_volume(name=\"test-volume-name\")\npulumi.export(\"volumeOutput\", myvolume)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Civo = Pulumi.Civo;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myvolume = Civo.GetVolume.Invoke(new()\n    {\n        Name = \"test-volume-name\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"volumeOutput\"] = myvolume,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/civo/civo\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyvolume, err := civo.LookupVolume(ctx, \u0026civo.LookupVolumeArgs{\n\t\t\tName: pulumi.StringRef(\"test-volume-name\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"volumeOutput\", myvolume)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.civo.CivoFunctions;\nimport com.pulumi.civo.inputs.GetVolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var myvolume = CivoFunctions.getVolume(GetVolumeArgs.builder()\n            .name(\"test-volume-name\")\n            .build());\n\n        ctx.export(\"volumeOutput\", myvolume.applyValue(getVolumeResult -\u003e getVolumeResult));\n    }\n}\n```\n```yaml\nvariables:\n  myvolume:\n    fn::invoke:\n      function: civo:getVolume\n      arguments:\n        name: test-volume-name\noutputs:\n  volumeOutput: ${myvolume}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
      "inputs": {
        "description": "A collection of arguments for invoking getVolume.\n",
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of this resource.\n"
          },
          "name": {
            "type": "string",
            "description": "The name of the volume\n"
          },
          "region": {
            "type": "string",
            "description": "The region where volume is running\n"
          }
        },
        "type": "object"
      },
      "outputs": {
        "description": "A collection of values returned by getVolume.\n",
        "properties": {
          "createdAt": {
            "description": "The date of the creation of the volume\n",
            "type": "string"
          },
          "id": {
            "description": "The ID of this resource.\n",
            "type": "string"
          },
          "mountPoint": {
            "description": "The mount point of the volume\n",
            "type": "string"
          },
          "name": {
            "description": "The name of the volume\n",
            "type": "string"
          },
          "region": {
            "description": "The region where volume is running\n",
            "type": "string"
          },
          "sizeGb": {
            "description": "The size of the volume (in GB)\n",
            "type": "number"
          },
          "volumeType": {
            "type": "string"
          }
        },
        "required": [
          "createdAt",
          "mountPoint",
          "sizeGb",
          "volumeType"
        ],
        "type": "object"
      }
    }
  },
  "parameterization": {
    "baseProvider": {
      "name": "terraform-provider",
      "version": "0.10.0"
    },
    "parameter": "eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL2Npdm8vY2l2byIsInZlcnNpb24iOiIxLjEuNyJ9fQ=="
  }
}
